我正在尝试让 postfix 在 Ubuntu Server 22.04 上运行,仅用于发送。
当我尝试使用 telnet mydomain.com 587 测试服务器时,我收到以下信息
Trying 192.168.107.11...
telnet: Unable to connect to remote host: Connection refused
但是当使用 telnet localhost 587 或 telnet 127.0.0.1 587 时我得到
Trying 127.0.0.1...
Connected to localhost. Escape character is '^]'.
Connection closed by foreign host.
运行 netstat -plntu 我得到(注意这是最新的 netstat)
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:22 0.0.0.0:* LISTEN 730/sshd: /usr/sbin
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 652/inetd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 633/systemd-resolve
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 2126/master
tcp6 0 0 :::22 :::* LISTEN 730/sshd: /usr/sbin
tcp6 0 0 :::587 :::* LISTEN 2126/master
udp 0 0 127.0.0.53:53 0.0.0.0:* 633/systemd-resolve
udp 0 0 0.0.0.0:50550 0.0.0.0:* 654/meshagent
udp6 0 0 fe80::214:22ff:fe7c:546 :::* 620/systemd-network
sudo iptables -L INPUT -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
22 1914 ufw-before-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0
22 1914 ufw-before-input all -- * * 0.0.0.0/0 0.0.0.0/0
14 1338 ufw-after-input all -- * * 0.0.0.0/0 0.0.0.0/0
1 96 ufw-after-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0
1 96 ufw-reject-input all -- * * 0.0.0.0/0 0.0.0.0/0
1 96 ufw-track-input all -- * * 0.0.0.0/0 0.0.0.0/0
sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
587 ALLOW Anywhere
Postfix ALLOW Anywhere
25 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
587 (v6) ALLOW Anywhere (v6)
Postfix (v6) ALLOW Anywhere (v6)
25 (v6) ALLOW Anywhere (v6)
我目前已禁用防火墙以进行测试。一旦解决这个问题,我将重新启用防火墙。
有谁知道问题可能是什么,或者知道我可以采取什么行动。
感谢您的所有帮助。
答案1
64 您的 postfix 仅在环回接口上侦听。您可以在 netstat 命令的输出中看到这一点。IPv4127.0.0.1:587
环回、::1:587
IPv6 环回各有端口 587。
查看配置文件/etc/postfix/main.cf
有一个名为 的参数inet_interfaces
。此参数的值似乎是127.0.0.1, ::1
(或类似)您可以将其更改为
inet_interfaces = all
重新启动后,postfix 守护进程将监听所有接口。