Pull to refresh

Comments 82

Использует порты 60000–61000 (тысячу портов)


Бредятина какая-то
Использует порты. Тысячи их! Внезапно!
Ну то что использует 60000-61000 порты еще не говорит о том, что все сразу поюзает, скорее говорит о том, что между 2мя компьютерами возможна 1000 коннектов. И скорее всего просто на случайный порт из данного диаппазона запускает сервер.
Mosh will log the user in via SSH, then start a connection on a UDP port between 60000 and 61000.

Не использует оно тысячу портов, не надо пургу гнать. Конкретно выше в цитате с домашней страницы написано про конкретно один порт в пределах от 60000 до 61000. Никаких тысяч.

p.s. От тысячи портов иной ПК или домашний инет и загнется запросто.
Он их использует так, как использует ftp в активном режиме. Кому-то будет затруднительно пробрасывать тысячу портов на компьютер за nat, например.
Не тысячу, а ОДИН ИЗ ТЫСЯЧИ — есть же разница.
Я о том, что в ftp можно использовать 10 портов, и, соответственно, пробрасывать 10 портов. А тут нужно пробрасывать всю тысячу, он же рандомом один из тысячи их выбирает.
Зачем пробрасывать UDP порты? Есть же UDP hole punching.
Есть, я не спорю. И Mosh можно указать порт, я так понял, что он выполняет панчинг. Но нужно каждый раз конкретный порт указывать.
все куда проще, про это можно даже не думать. можно указать конкретный порт, даже не из этой тысячи дефолтных портов, для запуска, все таки не дураки разработчики жэ
Particular port
$ mosh -p 1234 darth
If the server is behind a port-forwarder or NAT, a particular UDP port can be requested.
Делят, видимо, пакеты на много кусочков, и гонят между случайными парами портов. Как тут не вспомнить старую шутку:

«Долгое время считалось, что бит — неделим. Однако советские ученые… !»
UFO landed and left these words here
mc несколько косячно работает в mosh…
при нажатии ctrl-o не очищается экран от панелей. видать как то не так организована вобота с буферами экрана…
Проверил на Debian lenny, там всё корректно.
у вас кстати какая верся? и собрано со slang?
mosh 1.1.3, ставил из ppa, как посмотреть, с чем собрано — не знаю.
нене, я имел ввиду версию mc
mc -V
$ mc -V [23:50:46]
GNU Midnight Commander, версия 4.7.0.9
Виртуальная файловая система: tarfs, extfs, cpiofs, ftpfs, fish, undelfs
Со встроенным редактором
С установленной в системе библиотекой S-Lang с базой данных terminfo
C поддержкой внутренней командной оболочки
С поддержкой фоновых операций
С поддержкой мыши в xterm и консоли Linux
С поддержкой событий X11
С поддержкой интернационализации
С поддержкой многих кодировок
Data types: char 8 int 32 long 32 void * 32 off_t 64 ecs_char 8
про Ctrl-C подтверждаю работает исправно в отличии от простой сессии в ssh
для теста запускал
cat бооольшой_файл
про Ctrl-C подтверждаю работает исправно в отличии от простой сессии в ssh
для теста запускал
cat бооольшой_файл
да что ж такое… чего же 2 раза то…
UFO landed and left these words here
Может потому что mosh через udp работает? (irony)
Ну наконец-то в первый раз за почти 30 лет кто-то обратил внимание на очевидные недостатки ssh. Жаль, для винды пока нет клиента…
Трафик-то по прежнему шифрованный между клиентом и сервером, надеюсь?
Да. Используется AES-128 в OCB режиме.
UFO landed and left these words here
Мой внутренний параноик радостно видит в Вас собрата и присоединяется.
И да:
OCB Mode — Submitted on April 1, 2001
Нафиг-нафиг-нафиг!
<< и моментально видите его на экране
Можно подробнее? Как это согласуется с shadow?
UFO landed and left these words here
Для Windows клиент есть? Что-то не нашел :(
Скоро будет: github.com/keithw/mosh/issues/164. В целом все под cygwin уже работает (я проверил на собственном опыте), осталось только вмерджить все воедино в master и собрать дистрибутив с нужными dll-ками cygwin-а — тогда можно будет под windows запускать в нативном режиме.
Это «ура!»
Ибо работать по ssh через того же «МТС-оленя» — занятие для бесконечно терпеливых людей с нервами неограниченной крепости.
UFO landed and left these words here
UFO landed and left these words here
Только я познал дзен набирания целых скриптов вслепую, пока ssh коннектится/логинится/тормозит — и тут на тебе.
В ssh есть режим master, запускаешь в начале дня скрипт который цепляется на все направления и поддерживает мастер сокеты, потом логин куда угодно происходит мгновенно. То есть вообще мгновенно.
С ним если один пайп висит, то сидешь и ждешь пока он по таймайту отвалится.
Не понял это как? расскажите как смоделировать ситуацию.

Я делаю так. Открываю мастер, логинюсь через него на сервер и вешаю шелл на некореектно смонтированной nfs шаре (намертво в UNINTERRUPTABLE_SLEEP), в это время через мастер запросто можно поднимать новые сессии.
А если соединение подвиснет? Вот то-то же.
Открываем сейсию в одной владке, ходим бродим, открываем новый таб(к этому времени старая уже умерла но brocken pipe не написала) и пытаемся подключится к серверу. Все залипает до тех пор пока в старой вкладке не появится brocken pipe, и происходит новое подклчение.
В ИТ всегда так: только, думаешь, освоил что-то, научился хорошо это делать, другим пример показываешь, а тут — ОП! — и все это внезапно никому не нужно, придумали новые антиграбли со своим норовом :)

Ничего, небось для «вслепую» патч выпустят — если с ключиком --want-to-type-blind запустить, он будет случайную паузу делать перед отработкой нажатия клавиш.
Реально оценил только Control+C.

Культура запускать все под screen на удаленной стороне, решает все проблемы класса сохранения сессии и т.п. Переконнект при смене ip может и нужен кому, но я такой необходимости не замечал (работаю с трансформера из разных сетей постоянно).
Фишка с мгновенным отображением печатаемого символа вообще непонятно вредная или полезная, я обычно набирая команды в слепую на тормозном соединении, обязательно дожидаюсь пока все символы отрисуются, прежде чем нажать ввод.
Вот это меня тоже смущает… Хотя бы видишь, что команды проходят, и какие прошли, т.е. контролируешь ситуацию.

Мне реально приходилось работать через обычный ssh на очень глючном GPRS соединении. Реакция на нажатия клавиш была до пяти секунд. Я в эти моменты с трепетом вспоминал старый-добрый диалап…
UFO landed and left these words here
Screen неудобен, когда из-под него запускаешь другие программы, тоже пытающиеся работать с ncurses (например, Midnight Commander). Выглядит не очень это. SSH-клиент с автоматической поддержкой реконнекта из коробки — это очень полезная вещь.
> Набираете символ, и моментально видите его на экране, так же, как и в локальном терминале.

А вывод команд тоже локально додумывается, без ожидания ответа от сервера?
И не только вывод команд, но и ввод:
user@puser:$ pi
PING ya.ru (87.250.250.203) 56(84) bytes of data.
64 bytes from www.yandex.ru (87.250.250.203): icmp_req=1 ttl=56 time=12.3 ms
64 bytes from www.yandex.ru (87.250.250.203): icmp_req=2 ttl=56 time=12.4 ms
64 bytes from www.yandex.ru (87.250.250.203): icmp_req=3 ttl=56 time=12.6 ms
ng goo
PING google.com (173.194.32.41) 56(84) bytes of data.
64 bytes from arn06s02-in-f9.1e100.net (173.194.32.41): icmp_req=1 ttl=46 time=52.3 ms
64 bytes from arn06s02-in-f9.1e100.net (173.194.32.41): icmp_req=2 ttl=47 time=52.2 ms
64 bytes from arn06s02-in-f9.1e100.net (173.194.32.41): icmp_req=3 ttl=47 time=52.2 ms
dok.ru
PING goodok.ru (213.189.197.83) 56(84) bytes of data.
64 bytes from axx83.distributed.zenon.net (213.189.197.83): icmp_req=2 ttl=119 time=19.9 ms
64 bytes from axx83.distributed.zenon.net (213.189.197.83): icmp_req=3 ttl=119 time=26.1 ms
64 bytes from axx83.distributed.zenon.net (213.189.197.83): icmp_req=4 ttl=119 time=41.4 ms
^C
--- goodok.ru ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3011ms
rtt min/avg/max/mdev = 19.995/29.207/41.448/9.018 ms


UFO landed and left these words here
ладно ping, а если rm что-то додумает?
UFO landed and left these words here
Так и не нашел, как залогиниться на нестандартном порту ssh, не 22.

Я так и не понял, это какой-то довесок к SSH или модификация SSH-сервера/клиента?
Пока не щупал, потому что все уже настроено и работает с SSH, не хочется ломать.
Вообще, это замена ssh, но логинится он через ssh. Т.е. устанавливаете mosh на клиенте и сервере, запускаете на клиенте mosh your_server, он подключается к ssh, вы вводите пароль, он на той стороне запускает mosh-server и подключается уже к порту mosh через udp. Больше ssh не используется.
Реквестирую полноценную статью-инструкцию по установке на убунту.
Два абзаца — маловато.
facepalm.jpg

$ sudo add-apt-repository ppa:keithw/mosh
$ sudo apt-get update
$ sudo apt-get install mosh

В 12.04 он уже в официальных репах.

Эмм, клиент, сервер, как использовать, как подключаться из Windows-машин, как подключаться из *nix машин.
UFO landed and left these words here
В этом пакете и клиент и сервер. Серверную часть клиент запускает сам после подключения по ssh. Для подключения надо просто запустить mosh <адрес_сервера>
UFO landed and left these words here
А скажите мне, когда при отсутствующем соединении он пишет
Mosh: Connecting... (155 s without contact.) [To quit: Ctrl-^ .]
что нажимать то надо чтоб остановить процесс? Пробовал Ctrl-6, Ctrl-Shift-6, Ctrl-Up, Ctrl-Up-. — безрезультатно. Ну и Ctrl-Z, Ctrl-C тоже не работают.
Что минусовать то сразу? Сами то пробовали?
На мой взгляд, вот эти простые действия:

ximaera@atlantis:0#530:~$ /tmp
cd /tmp
ximaera@atlantis:0#531:/tmp$ git clone https://github.com/keithw/mosh.git
Cloning into mosh...
remote: Counting objects: 3558, done.
remote: Compressing objects: 100% (1075/1075), done.
remote: Total 3558 (delta 2552), reused 3429 (delta 2446)
Receiving objects: 100% (3558/3558), 678.62 KiB | 520 KiB/s, done.
Resolving deltas: 100% (2552/2552), done.
ximaera@atlantis:0#532:/tmp$ grep -r Ctrl-\^ mosh
mosh/man/mosh.1:The escape sequence to shut down the connection is \fBCtrl-^ .\fP
mosh/src/frontend/stmclient.cc:	if ( the_byte == '.' ) { /* Quit sequence is Ctrl-^ . */
mosh/src/frontend/stmclient.cc:	  /* Emulation sequence to type Ctrl-^ is Ctrl-^ ^ */
mosh/src/frontend/stmclient.cc:	  /* Ctrl-^ followed by anything other than . and ^ gets sent literally */
mosh/src/frontend/terminaloverlay.cc:    swprintf( tmp, 128, L"mosh: Last contact %.0f seconds ago. [To quit: Ctrl-^ .]", (double)(now - last_word_from_server) / 1000.0 );
mosh/src/frontend/terminaloverlay.cc:    swprintf( tmp, 128, L"mosh: %ls [To quit: Ctrl-^ .]", message.c_str() );
mosh/src/frontend/terminaloverlay.cc:    swprintf( tmp, 128, L"mosh: %ls (%.0f s without contact.) [To quit: Ctrl-^ .]", message.c_str(),
ximaera@atlantis:0#533:/tmp$ grep -rnA 10 Ctrl-\^ mosh/src/frontend/stmclient.cc
214:	if ( the_byte == '.' ) { /* Quit sequence is Ctrl-^ . */
215-	  if ( network->has_remote_addr() && (!network->shutdown_in_progress()) ) {
216-	    overlays.get_notification_engine().set_notification_string( wstring( L"Exiting on user request..." ) );
217-	    network->start_shutdown();
218-	    return true;
219-	  } else {
220-	    return false;
221-	  }
222-	} else if ( the_byte == '^' ) {
223:	  /* Emulation sequence to type Ctrl-^ is Ctrl-^ ^ */
224-	  network->get_current_state().push_back( Parser::UserByte( 0x1E ) );
225-	} else {
226:	  /* Ctrl-^ followed by anything other than . and ^ gets sent literally */
227-	  network->get_current_state().push_back( Parser::UserByte( 0x1E ) );
228-	  network->get_current_state().push_back( Parser::UserByte( the_byte ) );	  
229-	}
230-
231-	quit_sequence_started = false;
232-	continue;
233-      }
234-
235-      quit_sequence_started = (the_byte == 0x1E);
236-      if ( quit_sequence_started ) {
ximaera@atlantis:0#534:/tmp$ 

позволяют однозначно узнать, что что mosh закроется, когда увидит на stdin последовательность (0x1e, '.'). При этом эти действия занимают несколько меньше времени, чем тот час, который вы провели в ожидании (бесполезного) ответа на комментарий на Хабре. У меня это отняло менее минуты, плюс ещё минута на поиск репозитория на официальном сайте mosh, ссылку на который привёл автор. Даже вот этот комментарий я дольше писал.

Ладно бы mosh был написан на Haskell, но синтаксис C++ всякий (тем более PHP-программист) способен распарсить.
Я нашел правильную комбинацию — это Ctrl плюс одновременно 6 и английская точка.

Но запись Ctrl-^ . ни разу не правильная, так как ^ делается с шифтом, а в искомой комбинации шифт не нужен.
Проект занятный, надо будет попробовать.

P.S. А ещё у них самый уродский сайт на Twitter Bootstrap из тех, что я видел. И наверное хуже уже представить нельзя, потому, что портить можно только вёрстку, но не дизайн.
Ого. У меня мнение совершенно противоположное. Я как на сайт зашел, он мне показался идеалом презентации программы. Все понятно описывается, преимущества, как собрать, как использовать, faq, и все на одной странице. Я люблю именно такие сайты.
Собственно я о наполнении контентом ничего не говорил.

Просто использовать столько разных сеток одновременно, да ещё и по вертикали все элементы вразнобой — это же просто смерть глазам. Неужели интуитивно не колбасит от таких вещей, без вникания в теорию? (Это не претензия, просто попытка объяснить свою точку зрения и понять противоположную).
UFO landed and left these words here
Кстати говоря, cygwin-версия не за горами:
github.com/keithw/mosh/issues/164

В целом все под cygwin уже работает (я проверил на собственном опыте), осталось только вмерджить все воедино в master и собрать дистрибутив с нужными dll-ками cygwin-а — тогда можно будет под windows запускать в нативном режиме.
Sign up to leave a comment.

Articles