OpenSMTPD 在重新啟動時無法運作

OpenSMTPD 在重新啟動時無法運作

我剛剛在我的 arch linux 機器上安裝了 OpenSMTPD 伺服器。當我自己啟動時它工作正常,但當我重新啟動機器時它無法啟動。

這是journalctl -f _SYSTEMD_UNIT=smtpd.service輸出:

-- Reboot --
Oct 05 15:14:29 campbell-kelly smtpd[260]: info: startup
Oct 05 15:14:29 campbell-kelly smtpd[265]: fatal: smtpd: bind: Cannot assign requested address
Oct 05 15:14:29 campbell-kelly smtpd[260]: warn: lost child: pony express exited abnormally
Oct 05 15:14:29 campbell-kelly smtpd[262]: info: control process exiting
Oct 05 15:14:29 campbell-kelly smtpd[263]: info: lookup agent exiting
Oct 05 15:14:29 campbell-kelly smtpd[266]: warn: ca -> control: pipe closed
Oct 05 15:14:29 campbell-kelly smtpd[264]: warn: scheduler -> control: pipe closed

我不知道它從哪裡來。根據我在網路上的研究,問題可能出在我的網路介面上。

這是ip link重新啟動後的輸出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:11:8a:b3 brd ff:ff:ff:ff:ff:ff

這是我的/etc/hosts

127.0.0.1   localhost
51.XXX.XXX.159  campbell-kelly.XXX.XX   campbell-kelly

感謝您嘗試幫助我!


編輯:

我的/etc/smtpd/smtpd.conf文件:

pki mail.XXX.XX certificate  "/etc/smtpd/tls/smtpd.crt"
pki mail.XXX.XX key          "/etc/smtpd/tls/smtpd.key"

table creds                    "/etc/smtpd/creds"
table vdoms                    "/etc/smtpd/vdoms"
table vusers                   "/etc/smtpd/vusers"

listen on eth0 tls pki mail.XXX.XX
listen on eth0 port 587 tls-require pki mail.XXX.XX auth <creds>

accept from any for domain <vdoms> virtual <vusers> deliver to mbox
accept for any relay

我的/etc/smtpd/creds。密碼已透過以下方式取得echo test | smtpctl encrypt

niols   $6$FgkfVn10xLZbDU4O$17y6Wc5YlYMGAzekSxsjZALWnCeLAH3oS4vk8VeUpe5c7l.uGxE3q.27FwXhXA/.EUz/KRVqRedaNX8.AsJw20

我的/etc/smtpd/vdoms

XXX.XX
XXX.YY
ZZZ.XX

我的/etc/smtpd/vusers

[email protected]        niols
[email protected]    niols

我的問題確實只在重新啟動時發生。smtpd -v當我手動啟動它時,即使 a 似乎也沒有顯示出任何問題。

答案1

盡量不要監聽 eth0,監聽 0.0.0.0 可能是個更好的主意。

listen on 0.0.0.0 port 587 tls-require pki mail.XXX.XX auth <creds>

依此類推..將另一行相應地更改為 eth0 。

這樣做的優點是能夠使用 127.0.0.1 發送郵件,並且即使網路介面尚未獲得任何 IPv4 或 IPv6 位址,也應該可以工作。

相關內容