如何在一个IP上将25端口的smtp端口redirect到另一个外部mail.domain.com上的2525端口?

如何将smtp端口从一个ip的25端口redirect到另一个外部mail.domain.com上的端口2525?

例如:我的ip为xxx.xx.xx.xxx,侦听端口为25,用于smtp,现在我想将此端口上的请求转发或redirect到域mx1.somefreehosting.com上的端口2525。

是否有可能使用像networking服务器的nginx呢,还是我需要使用iptables? 我想确保群发邮件或垃圾邮件被照顾。 我提到这个问题 ,但没有评论,因为我的名誉点较less。

动机是在我的诺基亚Lumia上设置电子邮件帐户,该帐户没有通过smtp发送电子邮件(可能是由于端口)。

编辑:(请参阅评论与尼尔斯)我想创build一个中间机器,简单地转发到某些外部MTA的SMTP连接。 我不是专家,所以可能无法写出技术上正确的话。

我的vps将监听myip:25并将其redirect到外部IP:2525。 不知道它有多可行吗?

Postfix可以很容易地configuration,但在其他邮件服务器,我不知道。 根据我的经验,大多数人的灵活性并不是很好。

基于iptables的解决scheme非常简单,类似于我们在这个问题中可以读到的:

 iptables -t nat -A OUTPUT -d ip.of.target.mx -p tcp --dport 25 -j DNAT --to-destination ip.of.target.mx:2525 

这个解决scheme的缺点是它redirect到这个端口的所有stream量,而不仅仅是你的mx发出的stream量。

如果存在的话,也许有人会提供一个基于mx-config的直接解决scheme。


networking提供商很高兴地过滤掉stream出的tcp端口25的stream量。他们这样做是因为它们主要用于恶意机器的垃圾邮件。 如果您希望将出站stream量传送到端口25,则需要使用networking提供商的MX,该networking提供商的MXconfiguration并不总是很好(例如,不能通过邮件向需要身份validation的邮件服务器发送邮件)。

在我遇到的问题中,我通常会在另一个端口上设置我的post(例如,在端口24上)。 有了后缀,这是非常简单的。

如果你想这样做,但使用iptables,你需要redirect传入的stream量,而不是你的传出。 如果你想在内部将传入的TCP端口2525redirect到25,你可以阅读这个问题 :

 iptables -A PREROUTING -t nat -i -p tcp --dport 2525 -j REDIRECT --to-port 25 

从您的意见“ 一个简单地转发SMTP连接到一些外部MTA的中间机器 ”和“ 我的vps将监听myip:25并将其redirect到外部ip:2525 ”我认为这是你需要做的SMTP转发中间机器:

 iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination IP_OF_EXTERNAL_MTA:2525 iptables -t nat -A POSTROUTING -p tcp -d IP_OF_EXTERNAL_MTA --dport 2525 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 

第一个是端口转发本身,第二个是确保到外部MTA的连接被伪装成源IP,如果你的VPS,最后一个是启用IP数据包转发一般。

我在这里假设没有其他iptables规则已经build立,例如通过像“firewalld”或“ufw”这样的一些防火墙框架。

但我有点怀疑,这真的是你想要的。 你确定这不是相反的,你的VPN应该监听2525(以防止端口阻止),并且外部MTA监听25?

同样,绕过25端口的简单方法是使用465 / SMTPS或587 /提交