iptablesはトラフィックを転送しません

iptablesはトラフィックを転送しません

ポート9750(ポートチャットサーバー)に着信するすべてのトラフィックを同じサブネット上の別のシステムにリダイレクトする必要があります。ポートクライアント - 動的。

iptables -t nat -A PREROUTING -p tcp -d x.x.x.a --dport 9750 -j DNAT --to-destination x.x.x.b:9750
iptables -t nat -A POSTROUTING -p tcp --dport 9750 -j MASQUERADE

ただし、host x.x.x.aポート 9750 は開かれません。クライアントがサーバーに接続されていません。

cat /etc/sysctl.conf |grep forward
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
#net.ipv6.conf.all.forwarding=1

ベストアンサー1

x.x.x.aあなたの意図が何であるかよくわかりませんx.x.x.b。 PREROUTINGルールの場合は、外部インターフェイスと内部コンピュータのIP:ポートを指定する必要があります。

ポート転送の場合、MASQUERADE ルールは必要ありません。ただし、FORWARD チェーンのトラフィックを許可するにはルールが必要です。

iptables -A PREROUTING -t nat -i [external_iface] -p [proto] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p [proto] -d [internal_ip] --dport [internal_port] -j ACCEPT

おすすめ記事