.png)
Я уже слишком долго пытаюсь настроить почтовый сервер с помощью PostFix и DoveCot на Ubuntu 14.04, и теперь я на финишной прямой — все работает.
Я использую виртуальную машину с Ubuntu, у меня настроена переадресация портов на мою виртуальную машину на всех портах для imap/pop (110,143,993,995).
Если я выполню команду «telent localhost» на любом из перечисленных выше портов, я смогу подключиться.
root@ubuntu:/# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
root@ubuntu:/# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot (Ubuntu) ready.
a1 login < username > < password >
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in
root@ubuntu:/# telnet localhost 993
Trying ::1...
Connected to localhost.
Escape character is '^]'.
root@ubuntu:/# telnet localhost 995
Trying ::1...
Connected to localhost.
Escape character is '^]'.
как только я пытаюсь сделать это через публичный IP, происходит сбой:
root@ubuntu:/# telnet < my domain > 110
Trying < ip of my computer that has port forwarding to my vm >...
telnet: Unable to connect to remote host: Connection refused
Если я выполню команду «netstat», чтобы выяснить, что происходит на каких портах, вы можете сказать, что я слушаю на правильных портах.
root@ubuntu:/# netstat -nl4
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:15674 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:47580 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9312 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:61613 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:15670 0.0.0.0:* LISTEN
#...
#... theres a few more ip's in here that I believe to be irrelevant
и наконец, просто чтобы убедиться, что это действительно Dovecot слушает...
root@ubuntu:/# netstat -antup|grep dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 104305/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 104305/dovecot
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 104305/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 104305/dovecot
tcp6 0 0 :::993 :::* LISTEN 104305/dovecot
tcp6 0 0 :::995 :::* LISTEN 104305/dovecot
tcp6 0 0 :::110 :::* LISTEN 104305/dovecot
tcp6 0 0 :::143 :::* LISTEN 104305/dovecot
Переадресация портов была включена на всех ранее упомянутых портах - мой брандмауэр полностью отключен, и я пытаюсь подключиться к своей машине через telnet, поэтому распространенная ошибка "Компьютер, к которому вы пытаетесь подключиться через telnet, не имеет установленного telnet" не должна относиться ко мне. А если бы и относилась - на моем macintosh также установлен telnet - так что это действительно не относится ко мне.
На данный момент у меня сложилось впечатление, что в моем маршрутизаторе есть настройка, которая не позволяет мне подключиться к моему компьютеру через публичный IP-адрес.
Любая помощь или понимание будут высоко оценены. Это моя первая установка почтового сервера, поэтому мои знания в этой области не являются героическими.
решение1
Вас останавливает отсутствие NAT loopback. Возможно, вы сможете включить его на своем маршрутизаторе.
решение2
Розничные модемы в США блокируют порт 25 (по закону), как и большинство домашних интернет-провайдеров. Для других служб Dovecot по умолчанию запрещает вход в систему открытым текстом (telnet) — вам необходимо изменить их: