packet_write_wait Pipa yang rusak bahkan meninggalkan top running?

26

Kesalahan berdarah ini membuat sakit kepala saya semakin hari semakin besar. Saya tidak pernah bertemu dengan situasi yang sama seperti saat ini.

Nah, setelah saya berhasil mengotentikasi SSH, melakukan beberapa hal kemudian koneksi SSH saya tiba-tiba terjatuh !!?

Ini pesan kesalahan saya: packet_write_wait: Connection to XXX.XX.XX.XXX: Broken pipe

Saya berharap pesan kesalahan saya terlihat seperti ini: Write Failed: broken pipebanyak, percayalah!

Saya mencoba banyak resolusi di Internet seperti menambahkan ServerAliveInterval, ServerAliveCountMax, ClientAlive ....

Seseorang berkata: Ubah TCPKeepAlive Anda menjadi tidak, tambah ServerAlive bllah blah idiot. Saya melakukan kesalahan itu juga tapi masih sama.

Tidak ada keberuntungan bagi saya sampai saat ini.

Bantuan apa pun akan dihargai.

Toan Nguyen
sumber
2
Jika Anda berada di lingkungan perusahaan, periksa dengan admin firewall Anda dan lihat apakah mereka memperbarui aturan dan / atau me-restart firewall setelah semacam perubahan ketika ini terjadi. Jika itu terjadi pada server pribadi Anda, Anda perlu memberikan informasi lebih lanjut tentang apa yang Anda lakukan di sisi server sshd, ketika ini terjadi. Broken pipeumumnya berarti ada putuskan jaringan karena suatu alasan.
MelBurslan
Saya baru saja pindah dan ini terjadi terus-menerus dengan koneksi baru saya. Kabel Cox adalah ISP saya, dan saya punya modem kabel Netgear C6300BD yang berjalan pada pengaturan default dari instalasi. Ini dulu terjadi di lokasi lama saya dan saya tidak pernah bisa menyelesaikannya. Itu berlangsung selama berbulan-bulan dan akhirnya berhenti terjadi. Saya lupa betapa menyedihkan dan tidak terpecahkannya sampai hari ini.
T. Brian Jones
Aku merasakan sakitmu. Saya datang ke sini sebagai pilihan terakhir sebelum saya akan menampar semua perangkat keras saya menjadi potongan-potongan kecil. Bukankah ini seharusnya protokol yang cukup sederhana?
DerpyNerd
Saya memiliki kesalahan yang sama pada Virtualized Linux, masalah diselesaikan mengubah adaptor ethernet untuk dijembatani
Abel Barrios

Jawaban:

8

Para pembaca dan pembaca 2018 yang terhormat,

Biarkan saya menunjukkan komentar kepada Anda dari MelBurslan,

Jika Anda berada di lingkungan perusahaan, periksa dengan admin firewall Anda dan lihat apakah mereka memperbarui aturan dan / atau me-restart firewall setelah semacam perubahan ketika ini terjadi. Jika itu terjadi pada server pribadi Anda, Anda perlu memberikan informasi lebih lanjut tentang apa yang Anda lakukan di sisi server sshd, ketika ini terjadi. Pipa yang rusak umumnya berarti ada pemutusan jaringan karena suatu alasan.

Jadi pada dasarnya, jika Anda mencoba menggunakan ssh [email protected]VPN (lingkungan perusahaan). Maka kesalahan ini harus ada di sana bersama Anda berulang kali.

Satu-satunya solusi yang saya temukan sejauh ini adalah mobile-shell . Terima kasih siapa yang membuatnya.

Anda perlu menginstal mosh-serverdi target Anda (server yang ingin Anda ssh'ed) dan mosh-clientdi mesin host Anda.

Ini akan terhubung kembali secara otomatis ketika paket Anda hilang, itu cukup keren dan sesuai dengan semua kebutuhan kita, saya pikir.

Senang ssh'ing!

Toan Nguyen
sumber
3

Saya menemukan itu adalah masalah opsi IPQoS pada pengaturan VMware Guest saya. Pada VM saya mengatur nilai ~ / .ssh / config untuk IPQoS dari default "IPQoS af21 cs1" menjadi data latensi rendah untuk upaya interaktif pertama dan lebih rendah untuk upaya non-interaktif untuk yang kedua. Menetapkan nilai baru untuk af21 adalah solusi saya:

Host *
     IPQoS throughput

Bekerja untuk saya, jika tidak ya MoSH juga berfungsi, tetapi mosh tidak menangani pengaturan Proxy saya dengan cara yang mudah jadi saya tetap menggunakan perintah ProxyJump di

rupert160
sumber
Asyik, itu bekerja di baris perintah (seperti yang Anda jelaskan di posting Anda di ubuntu) tetapi tidak di file konfigurasi 8-D
aurelien
1

Pertama, pastikan masalah Anda tidak terkait dengan yang ini .

Jika tidak dan masalahnya masih ada, baca terus.

Saya mengalami masalah ini juga dan menghabiskan beberapa hari mencoba untuk membagi dua.

Seperti ditentukan, bermain dengan parameter SSH KeepAlive atau parameter kernel TCP (TCPKeepAlive aktif / nonaktif) tidak menyelesaikan masalah.

Setelah bermain dengan usb ke driver ethernet dan dump TCP, saya menyadari masalah ini karena kernel 4.8. Saya mengalihkan sumber (sisi pengiriman) ke 4.4 LTS dan masalahnya hilang (rsync, scp bekerja dengan baik lagi). Sisi tujuan dapat tetap pada 4,8 jika Anda mau, dalam kasus penggunaan saya ini berfungsi (diuji).

Di sisi teknis, kita bisa mempersempit sedikit masalah berkat wireshark dump di bawah ini yang saya buat. Kita dapat melihat saluran TCP dari protokol SSHv2 sedang direset (bendera RST dari TCP diatur ke 1) menyebabkan koneksi dibatalkan. Saya belum tahu penyebab RST. Saya perlu membagi dua dari 4.8.1 ke 4.8.11 untuk itu.masukkan deskripsi gambar di sini

Saya tidak mengatakan masalah Anda secara khusus disebabkan oleh kernel 4.8, tetapi wrt. saat Anda memposting pertanyaan / pesan, Anda mungkin telah menggunakan versi kernel yang sebenarnya bermasalah.

Dijawab pada mulanya di StackOverflow .

wget
sumber
Kernel bukan masalah, karena saya menggunakan 4.4 LTS sepanjang waktu. Masalah sebenarnya di sini dijawab oleh @MelBursan dalam komentar pertanyaan. Koneksi internet saya menggunakan VPN, itu sebabnya. Solusi: mosh.org
Toan Nguyen
@ToanNguyen Ok. Dengan begitu, bisakah Anda memberikan komentarnya sebagai jawaban atas pertanyaan Anda dan menandainya sebagai sudah diperbaiki? :-) Jika Anda telah menemukan alasan teknis mengapa Anda membutuhkan mosh, harap tambahkan juga :-). Di pihak saya, saya memiliki koneksi VPN juga dan ini berfungsi dengan sempurna tanpa mosh.
wget
Saya kembali tentang ini. Masalahnya bukan karena kernel buggy, tetapi karena driver buggy, terutama bagian yang didedikasikan untuk hardware checksum offload. Lihat utas ini untuk info lebih lanjut .
wget
Apakah itu menyelesaikan masalah Anda?
Toan Nguyen
@ToanNguyen Sebenarnya terakhir kali saya mengalami masalah ini, saya hanya menurunkan versi kernel dan berfungsi lagi. Sekarang, saya cukup menonaktifkan checksum hw, tanpa menurunkan versi apa pun dan itu menyelesaikan masalah, ya.
wget
1

ssh -o IPQoS=throughput user@{ip}

vicky penkova
sumber
Tidak ada indikasi bahwa pengguna menggunakan macOS atau bahwa mereka mencoba masuk sebagai root.
Kusalananda
Anda benar! Namun, saya menguji perintah dengan pengguna yang berbeda dari 'root' dan di windows. Masih bekerja!
vicky penkova
0

Buka file ssh.config di server target dengan perintah di bawah ini:

sudo nano /etc/ssh/ssh.config

Tambahkan baris di bawah ini di akhir file itu

ClientAliveInterval 300

ClientAliveCountMax 2

tekan Ctrl + o dan masuk.

sudo reboot

Ini benar-benar bekerja untuk saya. Saya berada dalam situasi yang sama. Mencoba ini dan itu tetapi ikuti saja langkah-langkah ini. Hanya ini. Saya harap ini juga akan berhasil untuk Anda.

DonFeraRRi
sumber