CH-J Server Managerуправление на сървъри над SSH
Меню
Всички ръководства и статии →

Сървърът е онлайн, но SSH порт 22 не отговаря

Проверете последователно клиента, мрежата, защитната стена и sshd, за да установите защо сървърът отговаря, а SSH — не.

Тествайте самия порт

Отговор на ping или работещ уебсайт не показва нищо за SSH, защото всяко от тях използва различен протокол или порт. Тествайте TCP порта директно от клиента. Connection refused означава, че нещо е отговорило, но никоя услуга не е приела връзката. Timeout означава, че нищо не е отговорило, което обикновено насочва към защитна стена, маршрутизация или претоварена машина.

nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.example

Connection refused: проверете sshd през конзолата

Използвайте конзолата на доставчика или хипервайзора, а не SSH. Проверете дали услугата работи, на кой адрес и порт слуша и дали конфигурацията е валидна. В по-новите версии на Ubuntu SSH се стартира чрез ssh.socket, затова проверете и socket модула. В други дистрибуции услугата може да се нарича sshd.

sudo systemctl status ssh.service ssh.socket
sudo ss -lntp | grep -E ':22\b|sshd'
sudo sshd -t
sudo journalctl -u ssh -n 50 --no-pager

Timeout: проверете защитните стени

Проверете защитната стена на сървъра и всички филтри извън него, например облачна група за сигурност, маршрутизатора или панела на доставчика. За да видите дали изобщо пристигат пакети, стартирайте tcpdump на сървъра по време на опит за свързване. Ако нищо не се появи, блокирането е преди сървъра. Ако пакетите пристигат, но не излиза отговор, търсете причината на сървъра.

sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22

Блокиране от fail2ban или променен порт

След неуспешни влизания fail2ban може да е блокирал адреса ви, което изглежда като timeout или отказана връзка само от вашия адрес. Тест от друга мрежа бързо показва това. Проверете също дали портът не е променен с Port или слушането не е ограничено до един адрес с ListenAddress в sshd_config или във файл под /etc/ssh/sshd_config.d.

sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) '

Връзката към порта се установява, но входът блокира

Ако TCP връзката се установи, но началният идентификационен низ на SSH така и не пристигне, sshd работи само частично или системата е претоварена. Проверете паметта, дисковото пространство и натоварването през конзолата. Пълен диск или изчерпана памет могат да попречат на нови сесии, докато съществуващите услуги все още отговарят.

uptime
free -h
df -h

Проверка с CH-J Server Manager

Server Diagnostics може да тества ping, TCP връзка и идентификационния низ на SSH без влизане, за IPv4 и IPv6, така че да видите на кой етап възниква проблемът. Тестовете се изпълняват само от вашия компютър. Модулът не може да види какво става вътре в сървъра или да определи коя защитна стена е отхвърлила пакет, затова за горните проверки все още ви е нужна конзолата.

Подробна документация

OpenSSH: sshd →

man: ss →

Биометрични отключване и сигурност →