我想使用iptables使CentOS成为端口转发NAT机器。 这是我第一次尝试这个,我想我可能需要一点帮助。
这是我试图实现的configuration。 我试图通过端口5500上的CentOS机器build立一个远程桌面连接,并让CentOS连接到端口3389上的服务器。

192.168.21.11是通过连接到端口5500上的192.168.21.10(CentOS)连接到192.168.9.120上的端口3389的客户端。
我到目前为止所尝试的是:
在/etc/sysctl.conf中启用IPv4转发
/etc/sysctl.conf net.ipv4.ip_forward = 1
运行下面的iptables命令
iptables -t nat -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389 iptables -A INPUT -i eth1 -p tcp --dport 5500 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 5500 -m state --state ESTABLISHED -j ACCEPT service iptables save
保存这个configuration后,我无法做出我试图实现的远程桌面连接,那么我的iptables规则有什么问题吗? 还是有什么我可能会失踪?
在-A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389之后,尝试将此规则添加到/ etc / sysconfig / iptables
-A POSTROUTING -d 192.168.9.120 -j MASQUERADE
其次检查net.ipv4.ip_forward是否通过执行'sysctl -a |设置为1 grep net.ipv4.ip_forward`
如果它仍然设置为0,则执行:
sysctl -w net.ipv4.ip_forward=1
尝试添加:
iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -o eth1 -j ACCEPT
您应该了解iptables -A和iptables -I之间的区别,并查看系统上的默认规则。 看起来很可能你的INPUT规则至less不会起作用,因为有所不同。
在/etc/sysctl.conf中设置一个值不会在正在运行的内核中设置它。 sysctl(8)手册页是你的朋友。
不要只是禁用SELinux – 它在那里帮助保护你。