iptables 端口转发到具有不同端口的服务器

iptables 端口转发到具有不同端口的服务器

我正在尝试将端口从一台服务器转发到另一台服务器。我尝试了多个 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

相关内容