Назад | Перейти на главную страницу

Изменение порта IMAP для Dovecot

Я использую 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.