使用 iptables 将端口转发到另一台服务器

使用 iptables 将端口转发到另一台服务器

我有一台配置为阻止任何端口的服务器,并且例外情况配置如下(针对 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

这只不过是从上面的评论中写出来的(带有完整的命令)。

相关内容