pack_write_wait Đường ống bị hỏng thậm chí còn chạy đầu?


26

Lỗi máu này làm cho cơn đau đầu của tôi ngày càng lớn hơn mỗi ngày. Tôi chưa bao giờ gặp một tình huống tương tự như lần này.

Chà, sau khi tôi xác thực thành công SSH, thực hiện vài thứ thì kết nối SSH của tôi bị ngắt đột ngột !!?

Đây là thông báo lỗi của tôi: packet_write_wait: Connection to XXX.XX.XX.XXX: Broken pipe

Tôi muốn thông báo lỗi của tôi trông như thế này: Write Failed: broken piperất nhiều, tin tôi!

Tôi đã thử rất nhiều độ phân giải trên Internet như đã thêm ServerAliveInterval, ServerAliveCountMax, ClientAlive ....

Có người nói: Biến TCPKeepAlive của bạn thành không, thêm thằng ngốc ServerAlive blishima blah. Tôi cũng làm vậy nhưng vẫn mắc lỗi.

Không có may mắn cho tôi cho đến thời điểm này.

Bất kỳ trợ giúp sẽ được đánh giá cao.


2
Nếu bạn ở trong môi trường công ty, hãy kiểm tra với quản trị viên tường lửa của bạn và xem liệu họ có đang cập nhật các quy tắc và / hoặc khởi động lại tường lửa sau khi có một số thay đổi khi điều này xảy ra. Nếu nó đang xảy ra với một máy chủ cá nhân của bạn, bạn cần cung cấp thêm thông tin về những gì bạn đã làm ở phía máy chủ sshd, khi điều này xảy ra. Broken pipenói chung có nghĩa là đã ngắt kết nối mạng vì một số lý do.
MelBurslan

Tôi mới di chuyển và điều này xảy ra liên tục với kết nối mới của tôi. Cáp Cox là ISP của tôi và tôi đã có modem cáp Netgear C6300BD chạy trên các cài đặt mặc định từ cài đặt. Điều này đã từng xảy ra tại địa điểm cũ của tôi và tôi không bao giờ có thể giải quyết nó. Nó kéo dài trong nhiều tháng và cuối cùng đã ngừng xảy ra. Tôi đã quên mất rằng nó đau khổ và không thể giải quyết được cho đến ngày hôm nay.
T. Brian Jones

Tôi cảm nhận được nỗi đau của bạn. Tôi đến đây như một phương sách cuối cùng trước khi tôi sẽ tát tất cả phần cứng của mình thành những mảnh nhỏ. Đây không phải là một giao thức khá đơn giản sao?
DerpyNerd

Tôi đã gặp lỗi tương tự trên Virtualized Linux, vấn đề đã được giải quyết khi thay đổi bộ điều hợp ethernet thành cầu nối
Abel Barrios

Câu trả lời:


8

Kính gửi 2018 và các độc giả sau này,

Hãy để tôi chỉ cho bạn một nhận xét từ MelBurslan,

Nếu bạn ở trong môi trường công ty, hãy kiểm tra với quản trị viên tường lửa của bạn và xem liệu họ có đang cập nhật các quy tắc và / hoặc khởi động lại tường lửa sau khi có một số thay đổi khi điều này xảy ra. Nếu nó đang xảy ra với một máy chủ cá nhân của bạn, bạn cần cung cấp thêm thông tin về những gì bạn đã làm ở phía máy chủ sshd, khi điều này xảy ra. Thông thường, đường ống bị hỏng có nghĩa là đã ngắt kết nối mạng vì một số lý do.

Về cơ bản, nếu bạn đang cố gắng sử dụng ssh username@0.0.0.0qua VPN (môi trường công ty). Sau đó, lỗi này phải ở đó với bạn hơn và hơn.

Giải pháp duy nhất tôi tìm thấy cho đến nay là shell-mobile . Cảm ơn người đã tạo ra nó.

Bạn sẽ cần phải cài đặt mosh-servertrong mục tiêu của mình (máy chủ bạn muốn ssh'ed) và mosh-clienttrong máy chủ của bạn.

Nó sẽ tự động kết nối lại khi các gói của bạn bị mất, điều đó khá tuyệt và phù hợp với tất cả các nhu cầu của chúng tôi, tôi nghĩ vậy.

Chúc mừng ssh'ing!


3

Tôi phát hiện ra đó là sự cố tùy chọn IPQoS trên thiết lập VMware Guest của tôi. Trên máy ảo, tôi đặt giá trị ~ / .ssh / config cho IPQoS từ mặc định của "IPQoS af21 cs1" là dữ liệu có độ trễ thấp cho lần đầu tiên tương tác và nỗ lực không tương tác thấp hơn cho lần thứ hai. Đặt giá trị mới cho af21 là giải pháp của tôi:

Host *
     IPQoS throughput

Làm việc cho tôi, nếu không thì MoSH cũng hoạt động, nhưng mosh không xử lý thiết lập Proxy của tôi một cách thuận tiện nên tôi gắn bó với các lệnh ProxyJump trong


Thật thú vị, nó hoạt động trong dòng lệnh (như bạn giải thích trong bài đăng của bạn trên Ubuntu) nhưng không phải trong tệp cấu hình 8-D
aurelien

1

Đầu tiên, hãy chắc chắn rằng vấn đề của bạn không liên quan đến vấn đề này .

Nếu không và vấn đề vẫn còn, hãy đọc tiếp.

Tôi cũng đã trải qua vấn đề này và đã dành vài ngày cố gắng để bissect nó.

Giống như được chỉ định, chơi với các tham số SSH KeepAlive hoặc tham số TCP kernel (bật / tắt TCPKeepAlive) không giải quyết được vấn đề.

Sau khi chơi với trình điều khiển usb sang ethernet và kết xuất TCP, tôi nhận ra vấn đề là do kernel 4.8. Tôi đã chuyển nguồn (bên gửi) sang 4.4 LTS và sự cố đã biến mất (rsync, scp đã hoạt động tốt trở lại). Phía đích có thể vẫn ở mức 4,8 nếu bạn muốn, trong trường hợp sử dụng của tôi, nó đã hoạt động (đã thử nghiệm).

Về mặt kỹ thuật, chúng ta có thể thu hẹp một chút vấn đề nhờ vào bãi rác dưới đây mà tôi đã thực hiện. Chúng ta có thể thấy kênh TCP của giao thức SSHv2 đang được đặt lại (cờ RST của TCP được đặt thành 1) khiến kết nối bị hủy bỏ. Tôi chưa biết nguyên nhân của RST. Tôi cần thực hiện một số chia nhỏ từ 4.8.1 đến 4.8.11 cho điều đó.nhập mô tả hình ảnh ở đây

Tôi không nói rằng vấn đề của bạn cụ thể là do kernel 4.8, nhưng wrt. ngày bạn đăng câu hỏi / tin nhắn của bạn, bạn có thể đã sử dụng phiên bản kernel thực sự có lỗi.

Đã trả lời ban đầu trên StackOverflow .


Kernel không phải là vấn đề, bởi vì tôi đã sử dụng 4,4 LTS mọi lúc. Vấn đề thực sự ở đây đã được trả lời bởi @MelBursan trong bình luận của câu hỏi. Kết nối internet của tôi bằng VPN, đó là lý do tại sao. Giải pháp: mosh.org
Toàn Nguyễn

@ToanNguyen Ok. Bằng cách đó, bạn có thể vui lòng đặt nhận xét của anh ấy / cô ấy làm câu trả lời cho câu hỏi của bạn và đánh dấu nó là cố định không? :-) Nếu bạn đã tìm thấy những lý do kỹ thuật tại sao bạn cần mosh, vui lòng thêm chúng vào :-). Về phía tôi, tôi cũng có các kết nối VPN và chúng hoạt động hoàn hảo mà không cần mosh.
wget

Tôi đang trở lại về điều này. Vấn đề không phải do hạt nhân lỗi, mà là do trình điều khiển lỗi, đặc biệt là phần dành riêng cho việc giảm tải tổng kiểm tra phần cứng. Xem chủ đề này để biết thêm .
wget

Nó có giải quyết vấn đề của bạn không?
Toàn Nguyễn

@ToanNguyen Thật ra lần trước tôi gặp vấn đề này, tôi chỉ đơn giản là hạ cấp kernel và nó đã hoạt động trở lại. Bây giờ, tôi chỉ đơn giản là vô hiệu hóa tổng kiểm tra hw, mà không hạ cấp bất cứ điều gì và nó đã giải quyết vấn đề, vâng.
quên

1

ssh -o IPQoS=throughput user@{ip}


Không có dấu hiệu nào cho thấy người dùng đang sử dụng macOS hoặc họ đang cố gắng đăng nhập bằng root.
Kusalananda

Bạn đúng rồi! Tuy nhiên, tôi đã thử nghiệm lệnh với người dùng khác với 'root' và trên windows. Vẫn hoạt động!
vicky penkova

0

Mở tệp ssh.config trên máy chủ đích bằng lệnh bên dưới:

sudo nano /etc/ssh/ssh.config

Thêm các dòng dưới đây vào cuối tập tin đó

ClientAliveInterval 300

ClientAliveCountMax 2

nhấn Ctrl + o và nhập.

khởi động lại sudo

Điều này làm việc hiệu quả cho tôi. Tôi đã ở trong tình trạng tương tự. Đã thử cái này và cái kia nhưng chỉ cần làm theo các bước sau. Chỉ có điều này. Tôi hy vọng nó sẽ làm việc cho bạn quá.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.