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

我试图从一台服务器转移到另一台服务器。 我已经尝试了无数的iptables命令,但他们不工作。 难道我做错了什么?

这是我的设置:

  • VPS1:1.1.1.1
    • SMTP端口:25
    • UFW:OFF
    • 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字节目标protselect输出源目标19 1088 DNAT tcp – * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 to:2.2.2.2:15324

链POSTROUTING(策略ACCEPT 2个数据包,120个字节)pkts字节目标protselect输出源目的地39 2603 MASQUERADE all – * eth0 0.0.0.0/0 0.0.0.0/0

运行一个telnet到外部IP上的端口25后,我得到这个。 数据包数量变化,所以它是得到的东西,但我不知道为什么它不经过PREROUTING

链PREROUTING(策略接受469个数据包,18178字节)pkts字节目标protselect输出源目标19 1088 DNAT tcp – * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25到:2.2.2.2:15324

链POSTROUTING(策略ACCEPT 3个数据包,180字节)pkts字节目标protselect输出源42 2812 MASQUERADE all – * 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嗨,我是一个邮箱(Ubuntu / Postfix;请参阅https://mailinabox.email/ )

telnet mailbox.xxxxxx.com 25尝试1.1.1.1 … telnet:无法连接到远程主机:连接被拒绝

该死的。 发布之后,我将其修复为一分钟。 解:

 echo 1 > /proc/sys/net/ipv4/ip_forward