我正在 Debian 12 上设置新的 Postifx 服务器。我已经安装了 Debian 软件包并确认 Postfix 正在运行,并且正在侦听端口25
、465
和587
。
Postfix 正在运行,日志中没有错误。我禁用了监狱,master.cf
并且该服务器没有运行软件防火墙。
Postifx 绑定到所有接口,如下netstat
:
netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 8417/master
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 8417/master
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 8417/master
tcp6 0 0 :::587 :::* LISTEN 8417/master
tcp6 0 0 :::465 :::* LISTEN 8417/master
tcp6 0 0 :::25 :::* LISTEN 8417/master
我可以在服务器本身上远程登录并通过其公共 IP 连接到 Postfix:
telnet xx.xx.xx.xx 587
Trying xx.xx.xx.xx...
Connected to xx.xx.xx.xx.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix
但如果我从服务器外部尝试此操作,它将无法连接:
telnet mydomain.com 587
Trying xx.xx.xx.xx...
Trying xxxx:xxxx::xxxx:xxxx:xxxx:xxxx...
telnet: Unable to connect to remote host: Network is unreachable
我已经确认从客户端的角度来看 DNS 可以正确解析到服务器。
我工作/家里的 ISP 不会阻止传出端口,因为我可以从家里远程登录到 Gmail 的 SMTP 服务器并访问EHLO
.
服务器托管公司声称没有端口被阻止。
我可以从我的家庭客户端访问服务器,traceroute -I
但不能没有该-I
选项。
老实说,我不知道还能尝试什么。当我尝试 telnet 时,我应该从 Postfix 得到一些东西。大多数阻止邮件的选项都出现在 后EHLO
,但我们还没有做到这一点。
服务器上的哪些可能的设置会阻止 Postifx 在外部接口上侦听或响应,当netstat
显示它已绑定时,日志中没有错误,并且当从服务器本身进行 telnet 时,Postfix 响应服务器外部 IP 上的 telnet?
inet_interfaces = all
已设置。
inet_protocols = all
已设置。
是否有任何配置设置会导致 Postfix 默默地丢弃连接请求而根本没有任何输出?
我还可以检查或尝试什么?Postfix 中的哪些设置会丢弃或不接受初始连接请求?
iptables
希望这对其他人有帮助:显然除了和之外还有许多不同的防火墙ucf
。我发现这篇有用的帖子:https://surgemail.com/knowledge-base/disable-your-firewall/,其中列出了所有需要寻找的可能性。就我而言,是
nft
。以下是要禁用或检查的防火墙的完整列表: