Mengapa me-reboot server yang menjalankan Ubuntu 14.04 memberi saya kesalahan 'Sambungan ditolak'?
Saya melihat ssh: connect to host <IP-address-here> port 22: Connection refused
tetapi hanya untuk 14,04 dan hanya setelah reboot. Saya menggunakan Desktop 12,04 di rumah. Bagaimana saya memecahkan masalah ini?
Untuk membuat pertanyaan lebih jelas, inilah yang berfungsi atau tidak untuk saya:
- SSH menjadi instalasi baru 12,04> logout> SSH dalam lagi> berfungsi
- SSH menjadi instalasi baru 12,04> reboot> SSH dalam lagi> berfungsi
- SSH menjadi instalasi baru 14,04> logout> SSH dalam lagi> berfungsi
- SSH menjadi instalasi baru 14,04> reboot> SSH masuk lagi> Sambungan ditolak
Masalah yang saya alami adalah unik untuk 14,04, dan hanya terjadi setelah reboot. Saya memiliki beberapa server yang menjalankan 12,04 sebelum ini dan semuanya masih berfungsi dengan baik. Saya punya server baru yang ingin saya gunakan 14.04 dan saya ingin mengerti apa yang salah. Ada saran?
Inilah yang saya coba sejauh ini:
sudo traceroute -p 22 -T <IP-address-here>
Traceroute berfungsi dengan baik, saya mendapat respons dari server pada port SSH 22.
initctl list
...
ssh start/running, process 23371
...
Sepertinya ssh pada server 14.04 diatur untuk mulai saat boot (seperti yang diharapkan).
tom@Desktop:~$ ssh -vvv root@<IP-address-here>
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to <IP-address-here> [<IP-address-here>] port 22.
debug1: connect to address <IP-address-here> port 22: Connection refused
ssh: connect to host <IP-address-here> port 22: Connection refused
Sunting: Berikut adalah keseluruhan syslog dari mesin yang baru dibuat . Saya membuatnya, SSH akan & mengeluarkan reboot now
perintah, kemudian mendapat koneksi menolak kesalahan setelah menunggu untuk reboot dan mencoba untuk SSH di kedua kalinya. Hard reboot via hosting control panel dan sekarang koneksi SSH berfungsi lagi.
Jawaban:
Jawaban cepat:
SSH bukan masalahnya. Perintah yang Anda gunakan untuk reboot adalah masalahnya: jangan lakukan
reboot now
, lakukan,reboot
ataushutdown -r now
reboot sistem Anda.Sintaks perintah ( sejak 13.04 ) adalah:
Yang
REBOOTCOMMAND
tidak pernah ada sebelumnya. Dalam 12,04, Andanow
baru saja diabaikan tetapi sekarang sedang digunakan ... Dan itu menghancurkan segalanya.Jawaban panjang, dengan hasil dan penjelasan tes saya:
Saya memiliki masalah yang sama dengan beberapa server yang menjalankan 14,04 DAN di VPS (di-host di penyedia OVH Prancis - menjalankan OpenVZ) DAN ketika melakukan
reboot now
di dalam server itu sendiri.Seperti Anda, saya sudah mengeluarkan perintah
reboot now
dari konsol (masuk menggunakan SSH). Beberapa detik setelah saya tekan RETURN, sesi saya terputus secara otomatis. Seperti Anda, saya tidak pernah dapat terhubung kembali ke server melalui SSH setelah mengeluarkan perintah ini.Jadi, saya memutuskan untuk membuka konsol KVM yang disediakan oleh OVH. (meniru akses langsung menggunakan keyboard dan layar pada server fisik untuk server virtual semacam ini).
Saya dapat terhubung ke mesin saya dan saya melihat bahwa dia masuk ke Mode Pengguna Tunggal, menunggu saya untuk menekan CTRL+ Duntuk melanjutkan atau untuk memasukkan kata sandi root untuk masuk ke mode pemeliharaan. Saya menekan kombinasi tombol untuk membiarkan proses berlanjut dan kemudian dapat SSH ke sistem saya lagi. Apa yang saya duga, setelah berlari
uptime
, bahwa waktu aktifnya bukan 2 atau 3 menit tetapi banyak hari:reboot now
dijalankan di dalam Ubuntu 14,04 VPS tidak benar-benar me-reboot tetapi hanya meminta untuk masuk ke mode Pengguna Tunggal!Dari ini, saya telah belajar untuk tidak pernah meminta reboot dari dalam VPS saya tetapi untuk memintanya dari perintah yang disediakan pada antarmuka manajemen hoster.
Dengan demikian tidak ada masalah dengan instalasi SSH Anda. Masalahnya adalah saat Anda mengetik
reboot now
. Bahkan, saya mengujinya setelah itu juga, jika Anda mengetikreboot
(hanya kata, tidak ada pilihan), itu akan melakukan apa yang ingin Anda lakukan: reboot server.Menggunakan
reboot
dengan argumen (dari halaman manual) panggilan perintahshutdown
dengan argumen yang diberikan. Dan memang, jika saya mengeksekusishutdown now
, saya memiliki perilaku yang sama: sistem tidak di-reboot, itu masuk ke mode pengguna tunggal.Komentar: sepertinya itu adalah perilaku yang dimaksudkan sebagai pesan yang muncul di layar setelah menekan menjalankan perintah ini mengatakan sesuatu seperti:
Mode pemeliharaan atau mode pengguna tunggal, ini mewakili yang sama, runlevel dengan mencatat lebih dari shell, tidak ada jaringan, tidak ada proses jaringan, ...
Ini mungkin membingungkan, tetapi perhatikan bahwa penggunaan yang benar
shutdown
adalah, misalnya:shutdown -h now
untuk menghentikan sistem sekarang ataushutdown -r now
untuk mem-boot ulang sekarang. Saya tidak sadar bahwashutdown now
hanya akan membawa sistem ke mode pengguna tunggal. Saya biasanya lakukaninit S
untuk mencapai ini.sumber
sudo reboot now
berfungsi dengan baik dalam 12,04 danuptime
sesuai dengan terakhir kali saya melakukannya. Perubahan yang sangat menarik untuk 14,04 sekalipun.sudo reboot --single-user
mendapatkan fungsionalitas itu ???Saya mungkin terlambat, dan mungkin sudah jelas, tetapi yang berhasil bagi saya adalah memeriksa file konfigurasi
/etc/ssh/sshd_config
: menjalankan daemon dengan/etc/init.d/ssh start
atau kombinasi lain menunjukkan bahwa layanan berjalan meskipun tidak, tetapi jika saya meluncurkan executable dengan jalur absolutnya (dalam kasus saya/usr/sbin/sshd
) saya melihat bahwa ada "0B" ditambahkan di akhir file konfigurasi yang menyebabkan kesalahan ketika memulai, menghapusnya memecahkan masalah.sumber
Penyebab potensial lainnya adalah
ufw
kehilangan konfigurasi aturan port SSH. Ini terjadi pada saya setidaknya satu atau dua kali, di mana setelah menerapkan pembaruan dan reboot, konfigurasi firewall menghalangi saya untuk mendapatkan akses ke server. Menggunakan fasilitas konsol VPS penyedia hosting saya memungkinkan saya untuk masuk ke mesin dan mendiagnosis masalahnya. Contoh di bawah ini menunjukkan masalah (mis. Tidak ada entri untuk port 22):Mengaktifkan kembali port sebagai berikut akan melakukan trik:
sumber
Untuk sistem saya masalahnya adalah bahwa skrip init ssh
/etc/init.d/ssh
adalah satu-satunya yang memeriksa keberadaan versi pemula init.Jadi
/etc/init.d/ssh
tidak memulaissh,
karena percaya itu akan dimulai olehupstart
.Dalam kasus saya, pemula tidak memulai karena konfigurasi khusus saya:
Ada konfigurasi yang benar
/etc/init/ssh.conf
, tetapi ada juga/etc/init/ssh.override
file yang mengandungmanual
, yang berartissh
diharapkan akan dimulai secara manual.File ini dibuat oleh
get-remnux.sh
skrip instalasi.Mulai secara manual, atau menghapus
/etc/init/ssh.override
file memecahkan masalah.sumber