iptables 埠轉發到具有不同埠的伺服器
我正在嘗試從一台伺服器埠轉發到另一台伺服器。我嘗試了許多 iptables 命令,但它們不起作用。難道我做錯了什麼?
這是我的設置:
VPS1:1.1.1.1
- SMTP 埠:25
- UFW:關閉
- iptables 政策:接受所有
- 主機名:郵箱.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 字節目標 prot opt in out source destination 19 1088 DNAT tcp – * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 to:2.2.2.2:15324
Chain POSTROUTING (policy ACCEPT 2 packet, 120 bytes) pkts bytes target prot opt in out source destination 39 2603 MASQUERADE all – * eth0 0.0.0.0/0 0.0.0.0/0
在外部 IP 上執行 telnet 到埠 25 後,我得到了這個。數據包計數發生變化,因此它得到了一些東西,但我不知道為什麼它沒有通過 PREROUTING
鏈 PREROUTING(策略接受 469 個數據包,18178 字節)pkts 字節目標 prot opt in out source destination 19 1088 DNAT tcp – * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 to:2.2.2.2:15324
Chain POSTROUTING (policy ACCEPT 3 packet, 180 bytes) pkts bytes target prot opt in out source destination 42 2812 MASQUERADE all – * eth0 0.0.0.0/0 0.0.0.0/0
嘗試 telnet 向我展示了這一點。
telnet 2.2.2.2 15324 Trying 2.2.2.2… 連接到 2.2.2.2。轉義字元是 ‘^]’。220 郵箱.xxxxxx.com ESMTP 嗨,我是郵箱郵箱(Ubuntu/Postfix;見https://mailinabox.email/)
telnet mailbox.xxxxxx.com 25 Trying 1.1.1.1… telnet:無法連接到遠端主機:連接被拒絕
該死的。我在發布後一分鐘就修復了它。解決方案:
echo 1 > /proc/sys/net/ipv4/ip_forward