Подключение к порту TCP с использованием действительного IP-адреса
Я установил Apache James
и я включил SMTP-сервер на порт 25. Я могу подключиться к порту 25 внутри сервера с помощью:
telnet localhost 25
но я не могу подключиться извне сервера, с помощью этой команды:
telnet validip 25
Внутри сервера у меня есть этот вывод для netstat -a -n
:
tcp6 0 0 :::25 :::* LISTEN
Как я могу подключиться к серверу smtp через порт 25 извне сервера, используя действительный IP-адрес?
PS: порт разрешен в брандмауэре и открыт в сети.
$ nmap validip
PORT STATE SERVICE
25/tcp open smtp
и внутри сервера:
# ufw status
Status: active
To Action From
-- ------ ----
25/tcp ALLOW Anywhere
25 ALLOW Anywhere
25/tcp (v6) ALLOW Anywhere (v6)
25 (v6) ALLOW Anywhere (v6)
2 ответа
Попробуйте подключиться к IPv6, который должен быть виден снаружи, не требуя переадресации портов. IPv4, вероятно, потребует настройки переадресации портов на вашем маршрутизаторе.
Если вы намереваетесь отправлять почту на серверы, которые вы не контролируете, вы должны получить статический IP-адрес. Интернет-провайдеры часто блокируют трафик порта 25 на динамических IP-адресах для предотвращения работы спам-ботов.
Попробуйте настроить сервер для прослушивания через порт 587 (Submission). Это с меньшей вероятностью будет заблокировано, но может потребоваться пересылка на маршрутизаторе.
Серьезно подумайте об использовании сервера ретрансляции для исходящей электронной почты. Вероятно, у вашего интернет-провайдера есть тот, который вы можете использовать.
Попробуйте подключиться локально, используя IP-адрес, а не localhost
, Ваш вывод netstat предполагает, что ваш SMTP-сервер не прослушивает ipV4, только на V6. Проверьте свою конфигурацию (включив V4) или убедитесь, что у вас есть полное подключение V6 и V6 включен на других хостах в вашей сети.