Вопрос или проблема
У меня установлена Ubuntu 14.04 (Trusty Tahr) на AWS, и я не могу подключиться к SMTP-сервису GMail через:
SSL(465):
## $ telnet smtp.gmail.com 465 ##
Попытка 74.125.28.109...
Попытка 74.125.28.108...
Попытка 2607:f8b0:400e:c04::6c...
telnet: Не удалось подключиться к удаленному хосту: Сеть недоступна
TLS(587):
## $ telnet smtp.gmail.com 587 ##
Попытка 74.125.28.108...
Попытка 74.125.28.109...
Попытка 2607:f8b0:400e:c04::6c...
telnet: Не удалось подключиться к удаленному хосту: Сеть недоступна
Мои открытые порты:
## $ sudo netstat -tlnp ##
Активные интернет-соединения (только серверы)
Протокол Recv-Q Send-Q Локальный адрес Дальностный адрес Состояние PID/Имя программы
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1069/mysqld
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1050/redis-server 1
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 959/sshd
tcp6 0 0 :::80 :::* LISTEN 7716/apache2
tcp6 0 0 :::22 :::* LISTEN 959/sshd
Брандмауэр UFW неактивен
## $ sudo ufw status verbose ##
Статус: неактивен
Я уже сохранил правила брандмауэра с помощью:
$ sudo iptables -A INPUT -p tcp --dport 587 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 587 -m conntrack --ctstate ESTABLISHED -j ACCEPT
$ sudo iptables-save
У меня была похожая проблема, VPS-машина без брандмауэра и с той же ошибкой, что вы указали. Я связался с поддержкой провайдера VPS, и оказалось, что у них был еще один брандмауэр, который защищал мою машину. Поэтому они включили порт 587 на этом брандмауэре, и все заработало нормально.
Это может быть проблема с брандмауэром. Я столкнулся с похожей проблемой в Ubuntu (сервер Digital Ocean). Я пытался решить эту проблему в течение 3 дней. Я также пробовал использовать auth2 и, наконец, проверил панель администратора Digital Ocean и создал брандмауэр для дроплета.
Проблема была решена включением TCP-входящего и исходящего трафика в настройках брандмауэра.
Ответ или решение
Проблема с подключением к SMTP-серверу Gmail на портах 465 и 587 может быть вызвана несколькими факторами, включая настройки сети, правила брандмауэра или ограничения со стороны провайдера. В данном ответе мы рассмотрим основные причины и предложим возможные решения.
1. Проверка Сетевого Соединения
Ваша попытка подключиться к smtp.gmail.com
через Telnet на порты 465 и 587 возвращает ошибку "Unable to connect to remote host: Network is unreachable". Это может указывать на проблемы с сетевым подключением. Для начала удостоверьтесь, что у вашего экземпляра Ubuntu установлен доступ к интернету. Попробуйте выполнить команду:
ping google.com
Если команды ping
не удается выполнить, необходимо проверить настройки сети вашего экземпляра AWS, особенно маршрутизацию и сетевые ACL.
2. Проверка Настроек Брандмауэра AWS
Несмотря на то что UFW отключен на вашем сервере, провайдер облачных услуг, такой как AWS, имеет свои собственные настройки брандмауэра, известные как группы безопасности (Security Groups). Убедитесь, что порты 465 и 587 открыты в настройках группы безопасности вашего экземпляра. Для этого выполните следующие шаги в консоли AWS:
- Перейдите в раздел EC2 в консоли управления.
- Найдите ваш экземпляр и обратите внимание на соответствующую группу безопасности.
- Убедитесь, что правила входящего и исходящего трафика для TCP на портах 465 и 587 разрешены.
3. Проверка Правил iptables
Вы упомянули, что настроили iptables для разрешения трафика на порту 587. Убедитесь, что аналогичные правила установлены для порта 465. Вам следует использовать следующие команды:
sudo iptables -A INPUT -p tcp --dport 465 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 465 -m conntrack --ctstate ESTABLISHED -j ACCEPT
После добавления правил, сохраните изменения:
sudo iptables-save
4. Проверка Блокировок со Стороны Провайдера
Как упоминалось в вашем примере, проблемы могут также быть связаны с блокировками со стороны VPS-провайдера. Свяжитесь с поддержкой вашего провайдера, чтобы уточнить, не заблокированы ли SMTP-порты на их стороне. Некоторые облачные провайдеры могут иметь жесткие ограничения на использование SMTP-сервисов, чтобы предотвратить спам.
5. Использование Альтернативных Портов
Если доступ к адресам smtp.gmail.com по стандартным портам 465 и 587 по-прежнему невозможен, вы можете попробовать использовать другие порты, такие как:
- Порт 25: Хотя он часто также блокируется, это стандартный SMTP-порт, который может быть доступен.
- Использование
STARTTLS
на порту 587 вместо SMTPS на порту 465.
Заключение
Проблема с подключением к SMTP-серверу Gmail на портах 465 и 587 может быть связана с множеством причин. Начните с проверки сетевого соединения, затем проверьте настройки брандмауэра AWS и iptables, и, наконец, проконсультируйтесь с вашим провайдером хостинга о возможных блокировках. Эти шаги помогут вам определить и устранить источник проблемы, обеспечив успешное подключение к SMTP-серверу Gmail.