Skip to content

مبانی

این صفحه کلیدهای صاف سطح بالای سند YAML را پوشش می‌دهد — پورت‌های شنونده، کنترل دسترسی، پرچم‌های شبکه و انتخاب حالت مسیریابی. همهٔ این‌ها مستقیماً روی RawConfig قرار دارند و در config/config.go به زمان اجرا متصل می‌شوند.

گزینه‌ها

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
portint00 | <port>پورت گوش دادن پراکسی HTTP. مقدار 0 آن را غیرفعال می‌کند.
socks-portint00 | <port>پورت گوش دادن SOCKS5. مقدار 0 آن را غیرفعال می‌کند.
redir-portint00 | <port>پورت ورودی Linux REDIRECT (iptables NAT). مقدار 0 آن را غیرفعال می‌کند.
tproxy-portint00 | <port>پورت ورودی Linux TPROXY (iptables mangle). مقدار 0 آن را غیرفعال می‌کند.
mixed-portint00 | <port>پورت مالتی‌پلکس‌شده که HTTP و SOCKS5 را روی یک شنونده ارائه می‌دهد. مقدار 0 آن را غیرفعال می‌کند.
inbound-tfoboolfalsetrue | falseفعال‌سازی TCP Fast Open روی شنونده‌های ورودی (فقط لینوکس).
inbound-mptcpboolfalsetrue | 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-lanboolfalsetrue | falseمقیّد کردن شنونده‌ها به 0.0.0.0 / :: به جای 127.0.0.1.
bind-addressstring** | <address>بازنویسی آدرس bind؛ * مطابق با انتخاب allow-lan عمل می‌کند.
modeT.TunnelModerulerule | global | directسیاست تصمیم‌گیری تونل. `rule` از فهرست قواعد استفاده می‌کند؛ `global` همه چیز را از طریق GLOBAL ارسال می‌کند؛ `direct` به‌طور کامل از پراکسی‌ها رد می‌شود.
unified-delayboolfalsetrue | falseزمان دست‌دهی TLS را از تأخیر آزمون URL کم می‌کند تا مقایسهٔ تأخیر بین پراکسی‌ها منصفانه باشد.
ipv6boolfalsetrue | falseسوییچ اصلی IPv6. وقتی false باشد، رکوردهای AAAA فیلتر و مسیریابی IPv6 غیرفعال می‌شود.
interface-namestring(auto)<interface>مقیّد کردن همهٔ شماره‌گیری‌های خروجی به این رابط (مثلاً eth0).
routing-markint0<uint32>Linux SO_MARK اعمال‌شده روی سوکت‌های خروجی. مقدار 0 آن را غیرفعال می‌کند.
tcp-concurrentboolfalsetrue | falseبرای هر اتصال، شماره‌گیری A و AAAA را به‌صورت همزمان اجرا کن و از هرکدام که اول وصل شد استفاده کن (سبک Happy Eyeballs).
find-process-modeprocess.FindProcessModestrictstrict | always | offمیزان شدّت جست‌وجوی فرایند مبدأ برای مسیریابی (قواعد `PROCESS-NAME`).
global-client-fingerprintstring(unset)<utls fingerprint>اثرانگشت پیش‌فرض uTLS که روی خروجی‌هایی اعمال می‌شود که اثرانگشت خاص خود را تنظیم نکرده‌اند.
global-uastringclash.meta/<version><string>User-Agent پیش‌فرض برای دانلود اشتراک و دارایی‌ها.
etag-supportbooltruetrue | falseهنگام واکشی مجدد URLهای اشتراک به هدر ETag احترام بگذار.
keep-alive-idleint0<seconds>زمان بی‌کاری keepalive در TCP. مقدار 0 به پیش‌فرض سیستم‌عامل برمی‌گردد.
keep-alive-intervalint0<seconds>بازهٔ پروب keepalive در TCP. مقدار 0 به پیش‌فرض سیستم‌عامل برمی‌گردد.
disable-keep-aliveboolfalsetrue | falseغیرفعال‌سازی کامل keepalive در TCP.

منبع: config/config.go:392-459 · ثابت‌شده در v1.19.24 (a847246)

مثال

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 حیاتی باشند.

منبع: config/config.go:392-459 · v1.19.24 (a847246)

Core Tutorial اثر Argsment