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.ax.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

相关内容