Коротко — причины обычно в трёх местах: 1) на клиенте / в сети клиента (блокировка исходящего трафика), 2) на пути (провайдер, сетевые ACL/маршрутизатор), 3) на самом сервере (sshd не слушает/фаервол/ban). Поскольку проблема повторяется для нескольких серверов и переустановка серверов не помогла, первыми надо проверять сеть/клиента/путь. Ниже пошагово что проверить и как исправить.
1) Быстрая проверка с клиентской машины
- Пинг и трассировка:
- ping <IP>
- traceroute <IP> (Linux/macOS) / tracert <IP> (Windows)
Это покажет, доходит ли трафик до провайдера/хоста или обрывается на каком-то узле.
- Проверка порта 22:
- Linux: nc -vz <IP> 22 или nmap -Pn -p22 <IP>
- Windows PowerShell: Test-NetConnection -ComputerName <IP> -Port 22
- Или telnet <IP> 22
Вывод: “succeeded” / “open” — порт доступен; “timed out” — нет ответа; “refused/reset” — пакеты доходят, но удалённый хост сбрасывает.
- Запуск ssh в отладочном режиме:
- ssh -vvv root@<IP>
Это покажет на каком этапе зависает/сбрасывается соединение.
Если с вашего компьютера все сервера недоступны, попробуйте подключиться с другого соединения (мобильный хот‑спот, VPN, другая сеть). Если с другого соединения всё работает — проблема у вас/у провайдера.
2) Если есть доступ к консоли сервера (панель провайдера / KVM)
- Убедиться, что sshd запущен и слушает:
- systemctl status sshd
- ss -tlnp | grep :22 или netstat -tlnp | grep :22
- проверьте порт в /etc/ssh/sshd_config (Port, ListenAddress)
- Посмотреть логи sshd:
- journalctl -u sshd -n 200
- tail -n 200 /var/log/auth.log (или /var/log/secure)
Там будут сообщения об ошибках, попытках подключений, блокировках.
- Проверить фаервол/правила:
- iptables -L -n -v или nft list ruleset
- ufw status verbose
- firewalld: firewall-cmd --list-all
Ищите правила, блокирующие 22 или конкретный IP вашего клиента.
- Проверить fail2ban / hosts.deny:
- fail2ban-client status sshd
- cat /etc/hosts.deny /etc/hosts.allow
Возможно ваш IP попал в бан.
- Перезапустить sshd после правок:
- systemctl restart sshd
3) Диагностика сети на низком уровне (если есть доступ к обеим сторонам)
- Снять трафик на сервере при попытке подключения:
- sudo tcpdump -n -s0 -vvv host <клиентский_IP> and port 22
По пакетам увидите SYN/SYN-ACK/RESET: если SYN от клиента достигает сервера — проблема на сервере (или приложение отбрасывает). Если сервер не получает SYN — проблема на пути/у клиента.
4) Особые случаи
- Провайдер/облачный сервис: у многих облаков есть security group / firewall в панели — проверьте, разрешён ли вход на 22 для вашего IP/всех.
- Блокировка ISP: некоторые провайдеры блокируют порт 22. Попробуйте подключиться через VPN или поставить sshd на альтернативный порт (например 2222) и проверить.
- TCP Wrappers / Fail2ban / автокоррекция: иногда скрипты банят слишком агрессивно.
- SSHD падает при попытке с определённых клиентов (редко) — см. логи sshd и dmesg.
5) Что делать прямо сейчас (резюме шагов)
1. На клиенте: ssh -vvv root@IP, nc -vz IP 22, traceroute, Test‑NetConnection.
2. Попробовать другое соединение (мобильный интернет или VPN).
3. Если есть панель провайдера — открыть консоль и проверить systemctl status sshd, логи и фаервол.
4. Если нет доступа к консоли — связаться с техподдержкой хостера (описать, что несколько серверов одновременно недоступны).
5. Пришлите сюда вывод ssh -vvv и результаты nc/traceroute/tcpdump — помогу проанализировать.
Если пришлёте конкретные выводы (ssh -vvv, nc/nmap, traceroute, или лог sshd), я подскажу дальнейшие конкретные шаги и объясню, где именно обрывается соединение.