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

答え2

パケット転送設定を提供していないので、見逃したことを願っています。一時的に有効にすることができます:-

 echo 1 >/proc/sys/net/ipv4/ip_forward

永久に作成するには、/etc/sysctl.confを開き、次のパラメータを指定します。 -

net.ipv4.ip_forward=1

関連情報