CH-J Server Managerpengurusan pelayan melalui SSH
Menu
Semua panduan dan artikel →

Pelayan dalam talian tetapi port SSH 22 tidak memberikan respons

Semak klien, rangkaian, firewall dan sshd mengikut turutan untuk mencari sebab pelayan menjawab tetapi SSH tidak.

Uji port itu sendiri

Balasan ping atau laman web yang berfungsi tidak menunjukkan keadaan SSH, kerana setiap satunya menggunakan protokol atau port yang berbeza. Uji port TCP terus daripada klien. Connection refused bermakna ada yang menjawab tetapi tiada perkhidmatan menerima sambungan. Timeout bermakna tiada jawapan, yang biasanya menunjukkan masalah firewall, penghalaan atau mesin yang terlebih beban.

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

Connection refused: semak sshd melalui konsol

Gunakan konsol penyedia atau hipervisor, bukan SSH. Semak sama ada perkhidmatan berjalan, alamat dan port yang didengarnya, serta sama ada konfigurasi itu sah. Pada keluaran Ubuntu terkini, SSH bermula melalui ssh.socket, jadi semak juga unit soket itu. Edaran lain mungkin menamakan perkhidmatan itu 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: semak firewall

Lihat firewall pada pelayan dan juga sebarang penapis di luarnya, seperti kumpulan keselamatan awan, penghala atau panel penyedia. Untuk melihat sama ada paket tiba, jalankan tcpdump pada pelayan semasa percubaan sambungan. Jika tiada apa-apa muncul, sekatan berlaku sebelum pelayan. Jika paket tiba tetapi tiada balasan keluar, semak pada pelayan.

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

Disekat oleh fail2ban atau perubahan port

Selepas log masuk gagal, fail2ban mungkin telah menyekat alamat anda, yang kelihatan seperti timeout atau sambungan ditolak hanya daripada alamat anda. Ujian daripada rangkaian lain dapat menunjukkan perkara ini dengan cepat. Semak juga sama ada port telah ditukar dengan Port atau dihadkan kepada satu alamat dengan ListenAddress dalam sshd_config atau fail di bawah /etc/ssh/sshd_config.d.

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

Port bersambung tetapi log masuk tergantung

Jika sambungan TCP berjaya tetapi sepanduk SSH tidak pernah tiba, sshd hanya berfungsi sebahagiannya atau sistem terlebih beban. Lihat memori, ruang cakera dan beban melalui konsol. Cakera penuh atau kehabisan memori boleh menghalang sesi baharu sementara perkhidmatan sedia ada masih menjawab.

uptime
free -h
df -h

Menyemaknya dengan CH-J Server Manager

Server Diagnostics boleh menguji ping, sambungan TCP dan rentetan pengenalan SSH tanpa log masuk, untuk IPv4 dan IPv6, supaya anda dapat melihat peringkat yang gagal. Ia hanya berfungsi dari komputer anda. Ia tidak dapat melihat bahagian dalaman pelayan atau mengenal pasti firewall yang menggugurkan paket, jadi anda masih memerlukan konsol untuk semakan di atas.

Dokumentasi terperinci

OpenSSH: sshd →

man: ss →

Buka kunci biometrik dan keselamatan →