我正在嘗試讓 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 命令的輸出中看到這一點。127.0.0.1:587
IPv4 環回、::1:587
IPv6 環回各使用連接埠 587。
看一下設定檔/etc/postfix/main.cf
有一個名為 的參數inet_interfaces
。您的此參數值似乎是127.0.0.1, ::1
(或類似)您可以將其變更為
inet_interfaces = all
重新啟動後,postfix 守護程式將偵聽所有介面。