我正在运行 Dovecot,以便人们在我的服务器上访问他们的电子邮件。不幸的是,有些人所在的网络无法连接到正常的 IMAP 端口,所以我正在尝试更改它。我更改了配置以包含:
protocol imap {
listen = *.1433 *.143
...
然后 dovecot 重启失败:
Fatal: listen: Can't resolve address *.1433: Name or service not known
正确的做法是什么?如果可能的话,我更愿意让它监听两个端口。
答案1
在我的 FC10 系统上运行的dovecot-1.1.10-1.fc10
语法是:
protocol imap {
listen = *:9999 *:143
....
}
查看报告的错误。如果配置确实正确,则最有可能的是“地址已在使用中”,这意味着其他进程已在监听端口 9999。
编辑 - 我看到您修改了问题。错误在于您使用“.”而不是“:”作为端口分隔符。
答案2
我做了一些研究,根据常问问题
是否可以让 Dovecot imap/pop 守护进程监听多个端口?
不,在当前稳定版本中没有。但是有解决方法,例如使用防火墙将传入流量重定向到给定端口。
您可以简单地使用 iptables 将连接重定向到 9999 到 143,命令如下。
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 9999 -j REDIRECT --to-ports 143
答案3
使用当前 (2015) Dovecot 版本,不同端口或多个端口的配置现在有所不同。您可以inet_listener ... {}
为每个端口添加一个部分。在我的 Debian 8 (Jessie) 系统上,它位于/etc/dovecot/conf.d/10-master.conf
:
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imap_9143 {
port = 9143
}
inet_listener imap_whatever {
port = 54321
}
}
如果它位于系统中的另一个文件中,您可以使用 找到它grep -r -l 'inet_listener imap' /etc
。