Tunnel — mihomo
mihomo دو روش معادل برای اعلام یک port-forwarder ایستا ارائه میدهد: بلوک سطح بالای tunnels: (قدیمی، شکل رشتهٔ فشرده را پشتیبانی میکند) یا ورودی تحت listeners: با type: tunnel.
شکل شنونده
ورودی تحت listeners: با type: tunnel. BaseOption را جاسازی میکند (listen، port).
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
network | []string | (required) | tcp | udp | ترابردهایی که پذیرفته شوند. هر دو را بهصورت `[tcp, udp]` بدهید تا همان فوروارد روی هر دو نمایان شود. |
target | string | (required) | <host:port> | مقصد اتصالات فوروارد شده. |
منبع: listener/inbound/tunnel.go:13-17 · ثابتشده در v1.19.24 (a847246)
بلوک سطح بالای tunnels:
شکل سطح بالا مختصر است و قبل از مدل یکپارچهٔ listeners وجود داشت. هر ورودی یا یک شیء است یا یک رشتهٔ فشرده:
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
network | []string | (required) | tcp | udp | ترابردهایی که پذیرفته شوند. شکل شیء فهرست میگیرد. |
address | string | (required) | <host:port> | آدرس شنود. |
target | string | (required) | <host:port> | مقصد. |
proxy | string | (routing default) | <proxy or group name> | اجبار به عبور ترافیک این تونل از یک پراکسی یا گروه نامگذاریشدهٔ مشخص. فهرست قواعد را دور میزند. |
منبع: listener/config/tunnel.go:11-16 · ثابتشده در v1.19.24 (a847246)
شکل رشتهٔ فشرده network,address,target[,proxy] است — که network یکی از tcp، udp، یا tcp/udp است:
tunnels:
- tcp,127.0.0.1:5353,1.1.1.1:53 # TCP only
- udp,127.0.0.1:5353,1.1.1.1:53 # UDP only
- tcp/udp,127.0.0.1:5353,1.1.1.1:53 # both
- tcp,0.0.0.0:8080,10.0.0.10:80,VPN # forced through proxy "VPN"شکل شیء همان چیز است که کلیدها از هم جدا شدهاند:
tunnels:
- network: [tcp, udp]
address: 127.0.0.1:5353
target: 1.1.1.1:53
proxy: VPNمثالها
فورواردر DNS به شکل شنونده:
listeners:
- name: dns-fwd
type: tunnel
listen: 0.0.0.0
port: 5353
network: [tcp, udp]
target: 1.1.1.1:53شکل سطح بالا: فوروارد HTTP به یک میزبان داخلی از طریق یک پراکسی نامگذاریشده:
proxies:
- name: VPN
type: trojan
server: vpn.example.com
port: 443
password: <password>
tunnels:
- network: [tcp]
address: 0.0.0.0:8080
target: 10.0.0.10:80
proxy: VPNنکات
addressوtargetدر شکل رشتهٔ فشرده در زمان تجزیه هر دو بهعنوان لفظیhost:portراستیآزمایی میشوند (listener/config/tunnel.go:53-58). فقدان پورت یک خطای واضح تولید میکند.- مقادیر ناشناخته در
networkدر زمان راهاندازی با یک هشدار بهصورت بیصدا رد میشوند (listener/inbound/tunnel.go:96-99). فقطtcpوudpپذیرفته میشوند. - فیلد
proxyفهرست قواعد را دور میزند — ترافیک تونل بدون توجه بهmodeیا هر ورودی تطبیقشدهٔrules:از طریق پراکسی نامگذاریشده میرود. زمانی از این استفاده کنید که یک مسیر ثابت مستقل از مسیریابی معمولی میخواهید. - شکل شنونده و شکل
tunnels:میتوانند در همان پیکربندی همزمان وجود داشته باشند — مستقل هستند.
نکات بینهستهای
- Xray-core از پروتکل
dokodemo-doorبا فیلدportMapبرای فوروارد چندپورت در یک ورودی استفاده میکند. به Dokodemo — Xray-core مراجعه کنید. - sing-box نوع tunnel اختصاصی ندارد — از ورودی Direct با
override_addressوoverride_portاستفاده کنید.
منبع: listener/inbound/tunnel.go:13-17 · v1.19.24 (a847246)
