我有一台配置为阻止任何端口的服务器,并且例外情况配置如下(针对 mongo):
iptables -A INPUT -p tcp --dport 27017 -s 10.20.1.0/8 -j ACCEPT
现在我想向公众公开一个端口,但也将其转发到另一台服务器(Team Fortress 服务器)
我尝试过这个:
iptables -t nat -A PREROUTING -p tcp -i modem --dport 27015 -j DNAT --to-destination 10.20.1.133:27015
iptables -A FORWARD -p tcp -d 10.20.1.133 --dport 27015 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
但我仍然收到connection refused
消息。
我猜转发已设置,但外部连接仍被阻止。有什么办法可以解决这个问题吗?
答案1
下面必然会有一些多余的步骤。它们只是为了更加安全,例如系好安全带和吊帶。
# enable ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# create a port redirection rule
iptables -t nat -A PREROUTING -p tcp --dport 27017 \
-j DNAT --to-destination 192.168.0.69:27015
# create a masquerade rule in order to return packets
iptables -t nat -A POSTROUTING -p tcp --dport 27015 -j MASQUERADE
这只不过是从上面的评论中写出来的(带有完整的命令)。