我最近尝试在家庭实验室的 Proxmox 服务器上运行 Ubuntu 20.04 的容器上安装 iRedMail。除了端口 25 之外,一切都运行良好(更新、远程连接、远程访问……)。安装成功,但我注意到出站端口 25 超时。以下是我尝试使用 Telnet 连接到端口 25 上的 gmail-smtp-in.l.google.com 的输出:
$ telnet gmail-smtp-in.l.google.com 25
Trying 172.217.218.27...
Connection failed: Connection timed out
Trying 2a00:1450:4013:c14::1a...
telnet: Unable to connect to remote host: Network is unreachable
我怀疑这可能是我的 ISP 的问题,所以我联系了他们,他们确认他们已经解锁了出站端口 25。我还尝试在同一网络内的另一台服务器上运行相同的 Telnet 命令,并且它有效,所以它看起来像一个 Proxmox 问题:
$ telnet gmail-smtp-in.l.google.com 25
Trying 2a00:1450:400c:c06::1b...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP q15-20020adff78f000000b0031421b48312si60007wrp.637 - gsmtp
为了进一步调查,我检查了是否启用了任何防火墙规则,但 GUI 和 iptables 命令都显示没有设置防火墙规则(在主机和容器上):
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我还验证了 DNS 配置,它似乎运行正常:
$ nslookup gmail-smtp-in.l.google.com
Server: 192.168.1.254
Address: 192.168.1.254#53
Non-authoritative answer:
Name: gmail-smtp-in.l.google.com
Address: 172.217.218.27
Name: gmail-smtp-in.l.google.com
Address: 2a00:1450:4013:c08::1b
这里还有一个补充网络捕获端口 25(如果有用的话)。
如果您需要任何其他信息,请告诉我。谢谢您的帮助!
答案1
如果您提供的所有信息均正确,那么不太可能是 PVE 主机的问题。
我还尝试在同一网络内的另一台服务器上运行相同的 Telnet 命令,并且它有效
我认为你的意思是你从另一位主机尝试过。如果使用与 Proxmox 相同的上行链路,则足以排除 ISP 的任何问题。您是否尝试过在 Proxmox 主机上运行的 shell?或者来自另一个虚拟机?
除了端口 25 之外,一切都工作正常
您是否比较了受影响虚拟机与控制主机(即连接的主机)上的路由表?
您是否还使用受影响的虚拟机 shell 中的 telnet 测试了这些?例如,HTTP 访问可能通过代理进行路由。
在没有其他信息的情况下,我的猜测是您一端有防火墙,其规则允许从控制主机而不是虚拟机进行访问。
问题似乎已经自行解决,看起来 Proxmox 必须等待一段时间才能意识到端口 25 已打开
不太可能。