مبانی
این صفحه کلیدهای صاف سطح بالای سند YAML را پوشش میدهد — پورتهای شنونده، کنترل دسترسی، پرچمهای شبکه و انتخاب حالت مسیریابی. همهٔ اینها مستقیماً روی RawConfig قرار دارند و در config/config.go به زمان اجرا متصل میشوند.
گزینهها
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
port | int | 0 | 0 | <port> | پورت گوش دادن پراکسی HTTP. مقدار 0 آن را غیرفعال میکند. |
socks-port | int | 0 | 0 | <port> | پورت گوش دادن SOCKS5. مقدار 0 آن را غیرفعال میکند. |
redir-port | int | 0 | 0 | <port> | پورت ورودی Linux REDIRECT (iptables NAT). مقدار 0 آن را غیرفعال میکند. |
tproxy-port | int | 0 | 0 | <port> | پورت ورودی Linux TPROXY (iptables mangle). مقدار 0 آن را غیرفعال میکند. |
mixed-port | int | 0 | 0 | <port> | پورت مالتیپلکسشده که HTTP و SOCKS5 را روی یک شنونده ارائه میدهد. مقدار 0 آن را غیرفعال میکند. |
inbound-tfo | bool | false | true | false | فعالسازی TCP Fast Open روی شنوندههای ورودی (فقط لینوکس). |
inbound-mptcp | bool | false | true | false | فعالسازی Multipath TCP روی شنوندههای ورودی (فقط لینوکس). |
authentication | []string | [] | <user:pass> | فهرست مجاز اعتبارنامههای احراز هویت HTTP/SOCKS. خالی یعنی احراز هویت غیرفعال است. |
skip-auth-prefixes | []netip.Prefix | [] | <CIDR> | پیشوندهای IP مبدأ که از احراز هویت عبور میکنند. |
lan-allowed-ips | []netip.Prefix | [] | <CIDR> | وقتی allow-lan فعال است، دسترسی را به این پیشوندهای IP مبدأ محدود میکند. |
lan-disallowed-ips | []netip.Prefix | [] | <CIDR> | وقتی allow-lan فعال است، دسترسی از این پیشوندهای IP مبدأ را رد میکند. |
allow-lan | bool | false | true | false | مقیّد کردن شنوندهها به 0.0.0.0 / :: به جای 127.0.0.1. |
bind-address | string | * | * | <address> | بازنویسی آدرس bind؛ * مطابق با انتخاب allow-lan عمل میکند. |
mode | T.TunnelMode | rule | rule | global | direct | سیاست تصمیمگیری تونل. `rule` از فهرست قواعد استفاده میکند؛ `global` همه چیز را از طریق GLOBAL ارسال میکند؛ `direct` بهطور کامل از پراکسیها رد میشود. |
unified-delay | bool | false | true | false | زمان دستدهی TLS را از تأخیر آزمون URL کم میکند تا مقایسهٔ تأخیر بین پراکسیها منصفانه باشد. |
ipv6 | bool | false | true | false | سوییچ اصلی IPv6. وقتی false باشد، رکوردهای AAAA فیلتر و مسیریابی IPv6 غیرفعال میشود. |
interface-name | string | (auto) | <interface> | مقیّد کردن همهٔ شمارهگیریهای خروجی به این رابط (مثلاً eth0). |
routing-mark | int | 0 | <uint32> | Linux SO_MARK اعمالشده روی سوکتهای خروجی. مقدار 0 آن را غیرفعال میکند. |
tcp-concurrent | bool | false | true | false | برای هر اتصال، شمارهگیری A و AAAA را بهصورت همزمان اجرا کن و از هرکدام که اول وصل شد استفاده کن (سبک Happy Eyeballs). |
find-process-mode | process.FindProcessMode | strict | strict | always | off | میزان شدّت جستوجوی فرایند مبدأ برای مسیریابی (قواعد `PROCESS-NAME`). |
global-client-fingerprint | string | (removed) | <utls fingerprint> | حذفشده و نادیده گرفته میشود. بهجای آن `client-fingerprint` را مستقیماً روی هر پراکسی تنظیم کنید. |
global-ua | string | clash.meta/<version> | <string> | User-Agent پیشفرض برای دانلود اشتراک و داراییها. |
etag-support | bool | true | true | false | هنگام واکشی مجدد URLهای اشتراک به هدر ETag احترام بگذار. |
keep-alive-idle | int | 0 | <seconds> | زمان بیکاری keepalive در TCP. مقدار 0 به پیشفرض سیستمعامل برمیگردد. |
keep-alive-interval | int | 0 | <seconds> | بازهٔ پروب keepalive در TCP. مقدار 0 به پیشفرض سیستمعامل برمیگردد. |
disable-keep-alive | bool | false | true | false | غیرفعالسازی کامل keepalive در TCP. |
منبع: config/config.go:399-467 · ثابتشده در v1.19.29 (e26714a)
مثال
yaml
mode: rule
mixed-port: 7890
allow-lan: false
bind-address: '*'
ipv6: false
unified-delay: true
tcp-concurrent: true
find-process-mode: strict
global-ua: my-mihomo/1.0
keep-alive-idle: 600
keep-alive-interval: 30نکات
port/socks-port/mixed-portبا هم سازگارند — میتوانید هر سه را در دسترس قرار دهید، ولی دوبرابر کردن نقش HTTP رویportوmixed-portهمزمان، یک شنونده را هدر میدهد.- مقدار
*درbind-addressحالت ویژه دارد: یعنی «از انتخاب فعلیallow-lanاستفاده کن» (0.0.0.0اگر true باشد،127.0.0.1اگر false باشد). find-process-mode: alwaysباعث میشود مسیریاب در هر اتصال فراخوانی سیستمی جستوجوی فرایند مخصوص پلتفرم را اجرا کند، که در سیستمهای پرترافیک macOS / Windows هزینهبر است. ترجیحاً ازstrict(پیشفرض) استفاده کنید مگر اینکه قواعد PROCESS-NAME حیاتی باشند.global-client-fingerprintحذف شده است: اکنون تجزیه میشود ولی نادیده گرفته میشود. بهجای آنclient-fingerprintرا مستقیماً روی هر ورودی پراکسی تنظیم کنید.- فایل پیکربندی ممکن است با age رمزنگاریشده باشد. mihomo پیش از تجزیهٔ YAML تلاش میکند فایل را با
ageرمزگشایی کند؛ اگر رمزنگاریشده باشد، بهصورت شفاف هنگام بارگذاری رمزگشایی شده و YAML متنساده مثل همیشه تجزیه میشود. فایلهای پیکربندی ساده (رمزنگارینشده) بدون تغییر بارگذاری میشوند.
منبع: config/config.go:399-467 · v1.19.29 (e26714a)
