我迷路了...如能得到任何帮助我将非常感激:)
我有一台邮件服务器。不幸的是,提供商拒绝 smtp 25。我不想使用 ESMTP 或 vpn。
因此,项目如下:我在网络上有一个具有公共 IP 的专用服务器。
SMTP 入站部分
在此服务器上我制定了以下规则:
/sbin/iptables -t nat -I PREROUTING 1 -p tcp --dport 25 -j DNAT --to-destination $IP
/sbin/iptables -t nat -I POSTROUTING 1 -p tcp --dport 25 -d $IP -j MASQUERADE
注意:因为我有一个动态 IP @home,所以 $IP 是 curl 脚本的结果。
它允许外部的 SMTP 流量重新路由到我的邮件服务器,它可以起作用。
SMTP 出站部分:
在我的邮件服务器上,我制定了以下规则:
iptables --table nat --append OUTPUT --out-interface eth0 --protocol tcp \
--dport 25 --jump DNAT --to-destination dedicatedip:2500
成功将 smtp 流转发至专用。
问题是...我在专用网络上找不到正确的规则来将此流量转发到网络。我的意思是,我需要将端口重新转发到 25,并将这些数据包转发到未知的 smtp 服务器。
我在专用的上尝试过这个:
iptables -nat -A PREROUTING -p tcp --dport 2500 --jump SNAT --to 25:37.59.121.101
但是当端口再次更改为 25 时,数据包将发送到 @home(由于第一条规则)。有没有办法正确地做到这一点?
答案1
对于外发电子邮件,请尝试在提交端口 (587) 上使用智能主机传输。您的 ISP 应该允许这样做。这可以连接到具有专用 IP 地址的服务器上的最小服务器。
尝试使用 NAT 规则来隧道传输流量不太可能实现您想要的效果。
如果您有一台具有专用 IP 的服务器,请考虑将其用作您的服务器。您仍然可以将电子邮件转发回您的主服务器。您可以使用多种方法,包括ETRN
。