Skip to content

iptables

В Linux блок iptables включает управление со стороны mihomo правилами межсетевого экрана, которые делают прозрачное проксирование (tproxy-port / redir-port) действительно прозрачным. Вне Linux блок игнорируется.

Параметры

ПолеТипПо умолчаниюДопустимые значенияОписание
enableboolfalsetrue | falseПоручить mihomo установку (и удаление) правил iptables, необходимых для прозрачного проксирования в Linux.
inbound-interfacestring(unset)<interface>Ограничить правила прозрачного прокси трафиком, приходящим на этот интерфейс (например, `eth0`). Пустое значение — все интерфейсы.
bypass[]string[]<CIDR>CIDR источников, которые пропускаются — трафик из этих источников не проксируется прозрачно.
dns-redirectboolfalsetrue | falseПерехватывать весь исходящий DNS (UDP/53) и отвечать на него локально. Обязательно при работе в роли маршрутизатора; для настольного использования по умолчанию выключено.

Исходный код: config/config.go:344-349 · зафиксировано на v1.19.29 (e26714a)

Пример

yaml
tproxy-port: 7895

iptables:
  enable: true
  inbound-interface: eth0
  bypass:
    - 192.168.1.0/24
    - 10.0.0.0/8
  dns-redirect: true

Примечания

  • Для успешного управления iptables mihomo должен работать от root (или с CAP_NET_ADMIN).
  • Устанавливаемые правила описаны в исходном коде mihomo в каталоге listener/sing_tun/ — создаются собственная цепочка и маршрутная метка.
  • При корректном завершении mihomo удаляет свои правила. После сбоя они остаются; удалите их командой iptables -t mangle -F MIHOMO (и очистите соответствующую цепочку NAT).

Исходный код: config/config.go:344-349 · v1.19.29 (e26714a)

Core Tutorial от Argsment