我正在尝试将端口从一台服务器转发到另一台服务器。我尝试了多个 iptables 命令,但都不起作用。我做错了什么吗?
这是我的设置:
- VPS1:1.1.1.1
- SMTP 端口:25
- UFW:关闭
- iptables 策略:全部接受
- 主机名:mailbox.xxxxxx.com
- 操作系统:Ubuntu 14.04
- 邮件服务器:2.2.2.2
- SMTP NAT 端口:15324
我已经尝试过以下命令:
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 2.2.2.2:15324
iptables -A FORWARD -d 2.2.2.2 -p tcp --dport 15324 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -nvL
链 PREROUTING(策略接受 459 个数据包,17802 字节)pkts 字节目标协议选择加入源目标 19 1088 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 到:2.2.2.2:15324
链 POSTROUTING(策略接受 2 个数据包,120 字节)pkts 字节目标协议选择加入退出源目标 39 2603 MASQUERADE 全部 -- * eth0 0.0.0.0/0 0.0.0.0/0
在外部 IP 上运行 telnet 到端口 25 后,我得到了这个。数据包数量发生了变化,所以它得到了一些东西,但我不知道为什么它没有通过 PREROUTING
链 PREROUTING(策略接受 469 个数据包,18178 字节)pkts 字节目标协议选择加入源目标 19 1088 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 到:2.2.2.2:15324
链 POSTROUTING(策略接受 3 个数据包,180 字节)pkts 字节目标协议选择加入退出源目标 42 2812 MASQUERADE 全部 -- * eth0 0.0.0.0/0 0.0.0.0/0
尝试 telnet 时显示了此信息。
telnet 2.2.2.2 15324 正在尝试 2.2.2.2... 已连接到 2.2.2.2。转义字符为 '^]'。220 mailbox.xxxxxx.com ESMTP 你好,我是 Mail-in-a-Box(Ubuntu/Postfix;请参阅https://mailinabox.email/)
telnet mailbox.xxxxxx.com 25 尝试 1.1.1.1... telnet:无法连接到远程主机:连接被拒绝
答案1
该死。我发完这个帖子后一分钟就修好了。解决方案:
echo 1 > /proc/sys/net/ipv4/ip_forward