更改Dovecot的IMAP端口

我运行Dovecot让人们访问我的服务器上的电子邮件。 不幸的是,有些networking无法连接正常的IMAP端口,所以我试图改变它。 我改变了configuration包含:

protocol imap { listen = *.1433 *.143 ... 

然后dovecot无法重新启动:

 Fatal: listen: Can't resolve address *.1433: Name or service not known 

什么是这样做的正确方法? 如果可能的话,我宁愿在两个端口上都听。

在运行dovecot-1.1.10-1.fc10的FC10系统上,语法是:

 protocol imap { listen = *:9999 *:143 .... } 

看看是什么错误报告。 如果configuration实际上是正确的,那么最有可能的是“地址已被使用”,这意味着其他一些进程已经在端口9999上进行侦听。

编辑 – 我看你已经修改了这个问题。 错误是你正在使用'。' 而不是“:”作为端口分隔符。

我做了一些研究,赞成常见问题解答

Dovecot imap / pop守护进程可以在多个端口上侦听吗?

不,不在目前的稳定版本。 但有一些解决方法,例如使用防火墙将传入stream量redirect到给定的端口。

你可以简单地使用iptables来将连接redirect到9999到143,如下所示。

 /sbin/iptables -t nat -A PREROUTING -p tcp --dport 9999 -j REDIRECT --to-ports 143 

使用当前(2015)Dovecot版本,不同端口或多个端口的configuration现在有所不同。 为每个端口添加一个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来find它。