我的电子邮件服务器使用 dovecot 运行正常。我关闭了 IPv6,并在系统日志中遇到以下错误:
systemd[1]: [/lib/systemd/system/dovecot.socket:8] \
Failed to parse address value, ignoring: [::]:143
我注释掉了 out 中的所有 IPv6 设置dovecot.service
,执行了 a systemctl daemon-reload
,现在文件如下所示:
[Unit]
Description=Dovecot IMAP/POP3 email server activation socket
[Socket]
#dovecot expects separate IPv4 and IPv6 sockets
#BindIPv6Only=ipv6-only
ListenStream=0.0.0.0:143
#ListenStream=[::]:143
ListenStream=0.0.0.0:993
#ListenStream=[::]:993
KeepAlive=true
[Install]
WantedBy=sockets.target
目前的状态dovecot.service
是Active: inactive (dead)
:
● dovecot.socket - Dovecot IMAP/POP3 email server activation socket
Loaded: loaded (/lib/systemd/system/dovecot.socket; enabled)
Active: inactive (dead) since Sun 2018-08-12 14:39:42 CEST; 14min ago
Listen: 0.0.0.0:143 (Stream)
0.0.0.0:993 (Stream)
但是,当我尝试启动该服务时,收到以下错误消息:
systemd[1]: Starting Dovecot IMAP/POP3 email server activation socket.
systemd[1]: Socket service dovecot.service already active, refusing.
systemd[1]: Failed to listen on Dovecot IMAP/POP3 email server activation socket.
一切正常,dovecot 监听所有需要的端口。有人能给我解释一下吗:
- 为何我无法启动
dovecot.socket
? - 我
dovecot.socket
到底需不需要这个?
答案1
Dovecot 可能已在套接字中监听,这是 dovecot 的常见配置。尝试此命令进行验证。
ss -ntpl | grep -e :143 -e :993
如果 dovecot 已监听这些端口,则 systemd 无法监听这些端口。如果 dovecot 已监听,则无需dovecot.socket
。