Skip to content

Redirect و TProxy — mihomo

mihomo دو روش برای اعلان ورودی‌های پراکسی شفاف Linux ارائه می‌دهد: کلیدهای میان‌بر سطح بالا (redir-port و tproxy-port)، یا فرم یکپارچهٔ listeners: (type: redir, type: tproxy).

میان‌برهای سطح بالا

روی سند ریشه تنظیم می‌شوند؛ ساده‌ترین فرم:

yaml
redir-port: 7892      # TCP only (iptables REDIRECT mode)
tproxy-port: 7893     # TCP + UDP (iptables/nftables TPROXY mode)

هر دو به‌طور مفصل در صفحهٔ Basics مستند شده‌اند.

فرم شنونده

برای چند نمونه یا کنترل بیشتر، زیر listeners: اعلان کنید:

type: redir

yaml
listeners:
  - name: redir-in
    type: redir
    listen: 127.0.0.1
    port: 7892

RedirOption فقط BaseOption به ارث‌بری‌شده (listen, port, name) را حمل می‌کند.

type: tproxy

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
udpboolfalsetrue | falseگوش دادن به بسته‌های UDP نیز. TPROXY تنها راه پراکسی شفاف UDP در Linux است.

منبع: listener/inbound/tproxy.go:13-16 · ثابت‌شده در v1.19.24 (a847246)

yaml
listeners:
  - name: tproxy-in
    type: tproxy
    listen: 0.0.0.0
    port: 7893
    udp: true

پیکربندی iptables

REDIRECT (فقط TCP):

sh
iptables -t nat -N MIHOMO
iptables -t nat -A MIHOMO -d 192.168.0.0/16 -j RETURN
iptables -t nat -A MIHOMO -d 10.0.0.0/8 -j RETURN
iptables -t nat -A MIHOMO -p tcp -j REDIRECT --to-ports 7892
iptables -t nat -A OUTPUT -p tcp -j MIHOMO

TPROXY (TCP + UDP):

sh
iptables -t mangle -N MIHOMO
iptables -t mangle -A MIHOMO -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A MIHOMO -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -p tcp -j TPROXY --on-port 7893 --tproxy-mark 0x1
iptables -t mangle -A MIHOMO -p udp -j TPROXY --on-port 7893 --tproxy-mark 0x1
iptables -t mangle -A PREROUTING -j MIHOMO

ip rule add fwmark 0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

برای یک پیکربندی iptables پاکیزه و مدیریت‌شده توسط mihomo، بلوک سطح بالای iptables: را ترجیح دهید — mihomo قواعد را خودش نصب و حذف می‌کند.

نکات

  • میان‌بر سطح بالا (tproxy-port) و فرم شنونده (type: tproxy) می‌توانند هم‌زمان وجود داشته باشند. وقتی نیاز دارید چند آدرس bind داشته باشید یا پراکسی شفاف را با دیگر انواع ورودی روی یک daemon مخلوط کنید، از فرم شنونده استفاده کنید.
  • redir-port و شنوندهٔ type: redir فقط TCP هستند. برای UDP شفاف، از tproxy-port یا type: tproxy با udp: true استفاده کنید.
  • بلوک iptables: در mihomo (به iptables مراجعه کنید) پیکربندی قاعدهٔ الگوی استاندارد را خودکار می‌کند — iptables.enable: true را تنظیم کنید و mihomo قواعد را خودش مدیریت می‌کند.
  • TPROXY فقط در Linux است. در macOS/Windows از TUN استفاده کنید.

نکات بین‌هسته‌ای

  • Xray-core از ورودی Dokodemo-door با streamSettings.sockopt.tproxy برای هر دو حالت استفاده می‌کند. به Redirect/TProxy — Xray-core مراجعه کنید.
  • sing-box انواع ورودی اختصاصی redirect و tproxy را با نام‌های snake_case و همان الزامات سمت iptables ارسال می‌کند. به Redirect/TProxy — sing-box مراجعه کنید.

منبع: listener/inbound/tproxy.go:13-16 · v1.19.24 (a847246)

Core Tutorial اثر Argsment