Я использую Dovecot, чтобы люди могли получать доступ к своей электронной почте на моем сервере. К сожалению, некоторые из них находятся в сетях, где они не могут подключиться к обычному порту IMAP, поэтому я пытаюсь его изменить. Я изменил конфигурацию, чтобы она содержала:
protocol imap {
listen = *.1433 *.143
...
Затем dovecot не перезапускается:
Fatal: listen: Can't resolve address *.1433: Name or service not known
Как правильно это сделать? Если возможно, я бы предпочел, чтобы он прослушивал оба порта.
Я провел небольшое исследование в соответствии с Вопросы-Ответы
Возможно ли, чтобы демоны Dovecot imap / pop прослушивали несколько портов?
Нет, не в текущей стабильной версии. Но есть обходные пути, например, использование брандмауэра для перенаправления входящего трафика на заданный порт.
Вы можете просто использовать iptables для перенаправления соединений с 9999 на 143 с помощью команды, как показано ниже.
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 9999 -j REDIRECT --to-ports 143
На моей системе FC10 работает dovecot-1.1.10-1.fc10
синтаксис:
protocol imap {
listen = *:9999 *:143
....
}
Посмотрите, о какой ошибке сообщается. Если конфигурация действительно правильная, то, скорее всего, это «Адрес уже используется», что означает, что какой-то другой процесс уже прослушивает порт 9999.
РЕДАКТИРОВАТЬ - я вижу, вы изменили вопрос. Ошибка в том, что вы используете "." вместо ":" в качестве разделителя портов.
В текущей (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
.