Обновить: Это определенно мой порт 25, блокирующий мой интернет-провайдер. Я сказал Exim'у прослушивать нестандартный порт, а затем проверил с удаленного компьютера на этот порт, и все прошло нормально.
Итак, я думаю, у меня новый вопрос. Есть ли хороший способ обойти это?
Я нет, я не могу указать порт в записи MX (почему никто не подумал об этом, когда придумывал DNS?), Но служба, которая может пересылать почту на сервер через нестандартный порт, будет работать .
Я видел, что на no-ip.com есть такая служба под названием Reflector. Это не очень дорого, но если есть другие, более дешевые методы, я бы хотел о них услышать.
Я все еще не понимаю, почему он только сегодня перестал работать.
Исходный вопрос
Ненавижу спрашивать об этом, но я уже погуглил все, что мог придумать, безрезультатно, но это кажется такой простой вещью, поэтому я не знаю, почему я не могу это понять. Но все равно здесь.
У меня есть домашний сервер с Apache для HTTP и Exim для SMTP. Мне нужно принимать почту прямо на домашний компьютер. До сегодняшнего дня у меня не было проблем. Не думаю, что я что-то изменил на своей стороне, но внезапно я не получаю никакого электронного письма.
Я проверил настройки MX в DNS, и они в порядке. Я проверил переадресацию портов на своем маршрутизаторе, и все выглядит нормально (и внешние подключения к Apache все еще идут).
Итак, я проверяю, что exim работает правильно. С localhost я могу подключиться к Exim по telnet, и он отлично работает. Кроме того, я могу подключиться к Exim по telnet с других компьютеров в сети, и он отлично работает. Однако, если я попытаюсь подключиться по telnet извне, я получу Unable to connect to remote host: Connection timed out
.
Итак, я попытался сделать dpkg-reconfigure exim4-config
(Я, кстати, использую Ubuntu 12.10), и убедитесь, что там все правильно настроено. Без проблем. Я смотрю в свой конфиг и нахожу это:
# listen on all all interfaces?
.ifdef MAIN_LOCAL_INTERFACES
local_interfaces = MAIN_LOCAL_INTERFACES
.endif
Некоторые поисковые запросы приводят меня к мысли, что local_interfaces
контролирует, что exim будет слушать. Поэтому я пытаюсь изменить это в соответствии с документация exim, и сделайте это:
# listen on all all interfaces?
#.ifdef MAIN_LOCAL_INTERFACES
#local_interfaces = MAIN_LOCAL_INTERFACES
#.endif
local_interfaces = <; ::0 ; 0.0.0.0
Я перезапускаю exim, но ничего не меняется.
Итак, вот где я сейчас нахожусь. Очень важно, чтобы я исправил это в ближайшее время, поэтому любые идеи, что еще я мог бы проверить, были бы оценены.
P.S. Поскольку комментирование не дает правильного форматирования, я отвечаю здесь:
lsof -i:25
: Я не совсем уверен, что ищу, но вот результат:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
exim4 12386 Debian-exim 3u IPv6 24476126 0t0 TCP *:smtp (LISTEN)
exim4 12386 Debian-exim 4u IPv4 24476127 0t0 TCP *:smtp (LISTEN)
P.P.S. В соответствии с эта страница, мой интернет-провайдер блокирует входящий (и исходящий) порт 25. Но эта страница была написана несколько месяцев назад, и проблема появилась только сегодня (или, может быть, вчера), так что есть ли способ проверить, в этом ли проблема?
Я все еще не понимаю, почему он только сегодня перестал работать.
Может быть, у вашего почтового сервера вчера был напряженный день, поэтому провайдер заметил ваше злоупотребление ToS?
Обратите внимание, что отправка почты на другой порт, вероятно, все еще будет противоречить условиям вашего интернет-провайдера, если бы она работала на каком-то нестандартном порту, поэтому я не буду давать явный советовать или рекомендовать вам.
Я, например, сделал получить один раз предупреждение от моего интернет-провайдера относительно "чрезмерного" количества входящей и исходящей почты.
Обсуждение легитимации этого правила - дело другое.
Однако вы можете установить где-нибудь дешевый VPS для обработки почты.
Ваша задача - оценить, как обрабатывать эту почту (прямо на VPS или дома).
Ваш удаленный узел не обязательно должен иметь собственный почтовый сервер. Используя почтовый прокси, например nginx - или даже простое TCP-проксирование - тоже подойдет.