Як мені затримати повільні / нестійкі з'єднання?


20

Я маю справу з дійсно повільним з'єднанням оболонки. Це в хмарі, і я дуже далеко від сервера. Моє з'єднання також іноді переривається, оскільки це є через Інтернет, і я також можу використовувати спільний Wifi або 3G. Чи є спосіб побачити те, що я набираю миттєво? Спроба вводити команди і чекати кожного символу - це жорстоко.


4
Використовуйте "екран", щоб підтримувати сеанс живим, щоб ви могли знову підключитися під час відключення.
Конерак

Відповіді:


24

Спробуйте Mosh .

Mosh (мобільна оболонка)
Віддалений термінальний додаток, який дозволяє роумінгу, підтримує переривчасте підключення та забезпечує інтелектуальне локальне відлуння та редагування рядків натискань клавіш користувача.

Mosh - це заміна SSH. Він більш надійний і чуйний, особливо через Wi-Fi, стільникові та міжміські зв’язки.

Mosh - безкоштовне програмне забезпечення, доступне для GNU / Linux, FreeBSD, Solaris, Mac OS X та Android.


3
Застереження до mosh: (1) це набагато інтенсивніший процесор, ніж ssh. (2) Якщо ваш сеанс мош не закінчується нормально, у вас з’явиться протікає з’єднання, яке ніколи не можна буде відновити. (Я повинен прибирати свою оболонку, інакше будуть працювати десятки процесів).
user606723

Інша проблема полягає в тому, що встановити на дистрибутив Linux, як Suse (SLES), майже неможливо. Я витратив години, намагаючись встановити його як пакет openSuse або компілюючи його з джерела.
Зомбі

$ sudo zypper in mosh (згідно з документами)
dmourati

Так, це буде добре працювати на openSuse, але для корпоративного / закритого дистрибутиву дуже завдання встановити нові проекти з відкритим кодом.
Зомбі

10

альтернатива (а також додатково) для dmourati відповіді: використання screenабо tmuxчи інших речей, щоб зберегти сесії в живих , коли ви відключені. (Ви просто повторно приєднаєтесь до сеансу після повторного підключення і побачите термінал, як ви його покинули, навіть із програмами на весь екран [vi, тощо]). Він також має багато інших переваг (обмін сесіями з колегами тощо) (як у власному файлі Mosh зазначено:

Питання: Чому буфер прокрутки мого термінала не завершений?

Mosh 1.2 синхронізує лише видимий стан терміналу. Mosh 1.3 матиме повну підтримку прокрутки; див. це питання та інші, які звідти пов’язані. Наразі вирішується використання екрана або tmux на віддаленій стороні.

А також вам слід rsyncскопіювати файли, не повторно надсилаючи вже відправлені частини по мережі, коли з'єднання відмирає.


2

Ви повинні побачити, де знаходиться затримка / вузькі місця. Вам слід спробувати отримати кращий доступ до інфраструктури ... або локально, або на стороні постачальника. Ви завершуєте свої важливі чи критичні сеанси в tmuxабо screenмультиплексорах ...

Будь ласка, дайте нам номери. Особливо поганий зв’язок, щоб прості сеанси SSH мали проблеми ... Мені довелося отримувати доступ до систем на іншому боці світу з літака через VPN, і все ще не було занадто багато проблем. Це наполегливе питання? Що tracerouteвам каже?


Проблема виникає в готелі Wi-Fi дуже багато, де є занадто мало маршрутизаторів і занадто багато пристроїв / ноутбуків, які ділять доступ до Інтернету. Крім того, загальнодоступний wifi-інтерфейс за своєю суттю є досить крихітним із часом пінгу, оскільки проходження через 1 або більше стін дійсно додає багато затримок мс. Це також ще одне головне вузьке місце. Аналогічна ситуація трапляється і в 3G, де таку велику відстань до вежі стільникового телефону додає MS. Під час використання оболонок SSH мені доводиться чекати кожного символу. МС 200-400 може бути дуже дратівливим, але з шипами до 1 секунди ... ой.
Зомбі

1

Для майбутніх читачів цієї теми підказка @lowellheddings у своєму блозі разом із використанням екрана може допомогти подолати цю проблему:

Ви можете налаштувати ssh-клієнт для автоматичного надсилання коду неопромінованого протоколу кожні кілька секунд, щоб сервер не відключив вас. Цей параметр іноді в інших клієнтах називають «Keep-Alive» або «Stop-Disconnecting-So-Much».
Додайте наступний рядок у файл / etc / ssh / ssh_config:
ServerAliveInterval 60
...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.