Цепочка Coustom работает хорошо, но не отображается с `iptables -L`

Цепочка Coustom работает хорошо, но не отображается с `iptables -L`

Для выполнения некоторых задач пересылки я использую скрипт для добавления пользовательской цепочки. Часть кода здесь (запустить как root):

iptables -t nat -N v2ray_forwarder
iptables -t nat -I OUTPUT -j v2ray_forwarder
iptables -t nat -A v2ray_forwarder -p tcp -m set --match-set srv_ip dst -j RETURN
iptables -t nat -A v2ray_forwarder -d 0.0.0.0/8 -j RETURN
iptables -t nat -A v2ray_forwarder -d 10.0.0.0/8 -j RETURN
iptables -t nat -A v2ray_forwarder -d 127.0.0.0/8 -j RETURN
iptables -t nat -A v2ray_forwarder -d 192.168.0.0/16 -j RETURN
iptables -t nat -A v2ray_forwarder -p tcp -m set --match-set gfw_ip dst -j REDIRECT --to-port 1081
iptables -t nat -A v2ray_forwarder -p tcp -m set ! --match-set chn_ip dst -j REDIRECT --to-port 1081

Код работает отлично, и я уверен, что пакеты были правильно переданы. Но после того, как я нажимаю sudo iptables -L, выводится:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

На моем роутере (OpenWRT) iptables -Lвсегда показывает, что все цепи существуют, но на моем ноутбуке это не работает. Может кто-нибудь сказать мне, почему?

Спасибо!

решение1

Пользовательские цепочки привязаны к таблице. Это означает, что вы не можете использовать цепочку, которая была создана в mangleтаблице, в правилах filterили natтаблицах.

Команда iptables -Lпоказывает только filterцепочки таблиц. Проверьте вывод iptables -t nat -L. Но лучше использовать iptables-save -cкоманду для вывода полного набора правил со счетчиками.

Связанный контент