我试过让端口转发在机器上工作。我在这里读过许多关于那个问题的题目,但我无法使它起作用。计划是将端口5000上的ppp0上的所有传入流量转发到eth0上的设备。下面是我尝试过的规则(从这个站点收集):
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 5000 -j DNAT --to-destination 192.168.5.242:5000
iptables -A FORWARD -p tcp -d 192.168.5.242 --dport 5000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE -o ppp0那不管用。下一次尝试如下:
iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 5000 -j DNAT --to 192.168.5.242:5000
iptables -A INPUT -p tcp -m state --state NEW --dport 5000 -i ppp0 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE -o ppp0在访问该端口上的机器时,如果没有这些规则,就会有一个连接被拒绝,并且连接超时。所以有些东西在起作用,但不是按照预期的方式。
我怎么才能检查我做错了什么?
发布于 2011-12-22 12:27:33
首先,只允许NEW连接是不够的。所以,你必须使用这样的规则:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT您可能需要启用IPv4路由。/proc/sys/net/ipv4/ip_forward的值应该是1。尝试使用echo 1 > /proc/sys/net/ipv4/ip_forward作为超级用户。
https://serverfault.com/questions/343434
复制相似问题