iptables
В Linux блок iptables включает управление со стороны mihomo правилами межсетевого экрана, которые делают прозрачное проксирование (tproxy-port / redir-port) действительно прозрачным. Вне Linux блок игнорируется.
Параметры
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enable | bool | false | true | false | Поручить mihomo установку (и удаление) правил iptables, необходимых для прозрачного проксирования в Linux. |
inbound-interface | string | (unset) | <interface> | Ограничить правила прозрачного прокси трафиком, приходящим на этот интерфейс (например, `eth0`). Пустое значение — все интерфейсы. |
bypass | []string | [] | <CIDR> | CIDR источников, которые пропускаются — трафик из этих источников не проксируется прозрачно. |
dns-redirect | bool | false | true | 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)
