
いくつかの転送ジョブを実行するために、スクリプトを使用してカスタム チェーンを追加します。コードの一部を以下に示します (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
カウンターを含む完全なルール セットを一覧表示するには、 コマンドを使用する方が適切です。