Làm thế nào để tôi ssh trên các kết nối chậm / không ổn định?


20

Tôi đang đối phó với một kết nối vỏ thực sự chậm. Nó ở trên đám mây và tôi ở rất xa máy chủ. Kết nối của tôi đôi khi cũng bị ngắt do kết nối qua internet và tôi cũng có thể đang sử dụng Wifi hoặc 3G được chia sẻ. Có cách nào để xem những gì tôi gõ ngay lập tức? Cố gắng gõ lệnh và chờ đợi cho mỗi nhân vật là tàn bạo.


4
Sử dụng "màn hình" để giữ phiên của bạn sống động, để bạn có thể kết nối lại khi bạn ngắt kết nối.
Konerak

Câu trả lời:


24

Hãy thử Mosh .

Mosh (shell di động)
Ứng dụng thiết bị đầu cuối từ xa cho phép chuyển vùng, hỗ trợ kết nối không liên tục và cung cấp tiếng vang thông minh cục bộ và chỉnh sửa dòng của tổ hợp phím người dùng.

Mosh là một sự thay thế cho SSH. Nó mạnh mẽ và phản ứng nhanh hơn, đặc biệt là qua các liên kết Wi-Fi, di động và đường dài.

Mosh là phần mềm miễn phí, có sẵn cho GNU / Linux, FreeBSD, Solaris, Mac OS X và Android.


3
Hãy cẩn thận với mosh: (1) nó mạnh hơn nhiều so với ssh. (2) Nếu phiên mosh của bạn không kết thúc bình thường, bạn sẽ có một kết nối bị rò rỉ không bao giờ có thể được thiết lập lại. (Tôi phải dọn dẹp hộp vỏ của mình nếu không sẽ có hàng tá tiến trình đang chạy).
dùng606723

Một vấn đề khác là gần như không thể cài đặt trên bản phân phối linux như Suse (SLES). Tôi đã dành hàng giờ để cố gắng cài đặt nó dưới dạng gói openSuse hoặc biên dịch nó từ nguồn.
Zombie

$ sudo zypper trong mosh (theo tài liệu)
dmourati

Vâng, nó sẽ hoạt động tốt trên openSuse, nhưng một bản phân phối công ty / đóng, nó rất có nhiệm vụ để cài đặt các dự án nguồn mở mới.
Zombie

10

một sự thay thế (và cũng ngoài) để trả lời dmourati: sử dụng screenhoặc tmuxhoặc những thứ khác, để giữ cho các buổi còn sống khi bạn đang bị ngắt kết nối. (Bạn chỉ cần đính kèm lại phiên sau khi kết nối lại và xem thiết bị đầu cuối khi bạn rời khỏi nó, ngay cả với các chương trình toàn màn hình [vi, v.v.)). Nó cũng có nhiều lợi ích khác (chia sẻ phiên với đồng nghiệp, v.v.) (như trong faq của chính Mosh, nó tuyên bố:

Q: Tại sao bộ đệm cuộn của thiết bị đầu cuối của tôi không đầy đủ?

Mosh 1.2 chỉ đồng bộ hóa trạng thái hiển thị của thiết bị đầu cuối. Mosh 1.3 sẽ có hỗ trợ cuộn hoàn chỉnh; xem vấn đề này và những vấn đề khác được liên kết từ đó. Hiện tại, cách giải quyết là sử dụng màn hình hoặc tmux ở phía xa.

Và bạn cũng nên sử dụng rsyncđể sao chép các tập tin mà không phải gửi lại các phần đã gửi qua mạng khi kết nối bị chết.


2

Bạn sẽ thấy độ trễ / nút cổ chai ở đâu. Bạn nên cố gắng truy cập tốt hơn vào cơ sở hạ tầng ... ở địa phương hoặc ở phía nhà cung cấp. Bạn kết thúc các phiên quan trọng hoặc quan trọng của mình trong tmuxhoặc screenghép kênh ...

Xin vui lòng cho chúng tôi số. Phải mất một kết nối đặc biệt tồi tệ để các phiên SSH đơn giản gặp sự cố ... Tôi đã phải truy cập các hệ thống ở bên kia thế giới từ một chiếc máy bay qua VPN và vẫn không gặp quá nhiều khó khăn. Đây có phải là một vấn đề dai dẳng? Điều gì traceroutenói với bạn?


Vấn đề xảy ra trên wifi khách sạn rất nhiều, nơi có quá ít bộ định tuyến và quá nhiều thiết bị / máy tính xách tay chia sẻ truy cập internet. Ngoài ra, wifi khách sạn cũng được chia sẻ khá đẹp mắt với thời gian ping khi đi qua 1 hoặc nhiều bức tường thực sự làm tăng thêm độ trễ ms. Đó cũng là một nút cổ chai lớn khác. Tình huống tương tự xảy ra trên 3G, trong đó khoảng cách đến tháp điện thoại di động thêm MS. Khi sử dụng shell SSH, tôi phải đợi từng ký tự. Một MS 200-400 có thể khá khó chịu, nhưng với mức tăng lên đến 1 giây ... ouch.
Zombie

1

Đối với những độc giả tương lai của chủ đề này, mẹo của @lowellheddings trong blog của anh ấy , cùng với việc sử dụng màn hình , có thể giúp khắc phục vấn đề này:

Bạn có thể định cấu hình máy khách ssh để tự động gửi một mã giao thức không có mã giao thức mỗi số giây để máy chủ không ngắt kết nối với bạn. Cài đặt này đôi khi được gọi là Keep-Alive hoặc Stop-Disconnectecting-So-much ở các máy khách khác.
Thêm dòng sau vào tệp / etc / ssh / ssh_config:
ServerAliveInterval 60
...

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.