我需要将端口 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