La cadena personalizada funciona bien pero no se muestra con `iptables -L`

La cadena personalizada funciona bien pero no se muestra con `iptables -L`

Para realizar algunos trabajos de reenvío, utilizo un script para agregar una cadena personalizada. Parte del código está aquí (ejecutarlo como 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

El código funciona bien y estoy seguro de que los paquetes se han transmitido correctamente. Pero, después de tocar sudo iptables -L, sale:

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 

En mi enrutador (OpenWRT), iptables -Lsiempre muestra que existen todas las cadenas, pero no funciona en mi computadora portátil. ¿Alguien podría decirme por qué?

¡Gracias!

Respuesta1

Las cadenas personalizadas están vinculadas a una mesa. Significa que no puede usar una cadena que haya sido creada en la mangletabla, en las reglas de filtero las nattablas.

El iptables -Lcomando muestra solo las filtercadenas de tablas. Verifique la salida de iptables -t nat -L. Pero es mejor utilizar el iptables-save -ccomando para enumerar el conjunto completo de reglas con contadores.

información relacionada