初始情况:我有一个共享的 cpanel 托管帐户(网站 + 电子邮件)。我们将其命名为 mydomain.com,ip 为:abcd
DNS 记录如下:
mydomain.com A a.b.c.d
mail.mydomain.com A a.b.c.d
mydomain.com MX 0:mydomain.com
mail.mydomain.com MX 10:mydomain.com
一切正常。
然后,我们用 Python 重建了我们的网站,并将其托管在 DigitalOcean(IP:efgh)上,并更新了 DNS 记录,如下所示:
mydomain.com A e.f.g.h
mail.mydomain.com A a.b.c.d
mydomain.com MX 0:mail.mydomain.com
mail.mydomain.com MX 10:mail.mydomain.com
现在电子邮件只能在 mail.mydomain.com 域上使用,并且由于技术原因(数百台发送每月页面索引的打印机已配置为使用 mydomain.com(而不是 mail.mydomain.com)发送电子邮件,所以我们也绝对需要让 mydomain.com 正常工作)。
为此,我们使用 iptables 将电子邮件流量从 digitalocean droplet 转发到 cpanel 服务器,使用以下规则(端口:110、143、993、25、465、587):
iptables -t nat -A PREROUTING -p tcp --dport <port> -j DNAT --to-destination a.b.c.d:<port>
iptables -t nat -A POSTROUTING -p tcp --dport <port> -j MASQUERADE
/etc/sysctl.conf:
net.ipv4.ip_forward = 1 # is enabled
现在一切都运行正常,直到昨天 droplet 重新启动,因为我不知道 iptables 设置不是持久的,所以我必须保存它们。
现在我尝试使用相同的设置,但重定向不再起作用。我尝试刷新 iptables 并再次添加规则。我使用了多个电子邮件客户端,如果我使用 mail.mydomain.com,电子邮件可以正常工作,但如果使用 mydomain.com 作为邮件服务器,则显示设置不正确。
然后我使用以下命令清除了所有 iptables 设置:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
并安装了 rinetd。这是我的 rinetd 配置文件:
# bindadress bindport connectaddress connectport
# SMTP
0.0.0.0 25 a.b.c.d 25
# Secure SMTP
0.0.0.0 465 a.b.c.d 465
# POP3
0.0.0.0 110 a.b.c.d 110
# IMAP
0.0.0.0 143 a.b.c.d 143
# STARSSL
0.0.0.0 587 a.b.c.d 587
# IMAP over TLS
0.0.0.0 993 a.b.c.d 993
# POP3 over TLS
0.0.0.0 995 a.b.c.d 995
这是我尝试使用 thunderbird 连接电子邮件时的日志:
25/Apr/2020:08:14:30 x.x.x.x 0.0.0.0 993 a.b.c.d 993 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 143 a.b.c.d 143 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 143 a.b.c.d 143 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 587 a.b.c.d 587 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 25 a.b.c.d 25 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 587 a.b.c.d 587 0 0 opened
25/Apr/2020:08:14:37 x.x.x.x 0.0.0.0 25 a.b.c.d 25 0 0 opened
Thunderbird 仍然说找不到任何设置。
然后我尝试使用 rinetd 将端口 80 上的 http 流量重定向到另一个网站,它工作正常,因此 rinetd 正在工作。我认为只有电子邮件流量被卡在某个地方。
编辑:已解决,谢谢帮助。转发成功,但 CPANEL 托管公司将我的 IP(efgh)列入黑名单,原因是流量太大。他们现在将其列入白名单。