Используя пересылку x11 с ssh и vnc?

Я работаю на удаленном кластере через ssh с опцией -X, потому что мне нужно визуализировать данные и графики по протоколу vpn. Иногда из-за нестабильности интернет-соединения я теряю сеанс. Они сказали мне, что я могу использовать vnc, чтобы не потерять мой текущий сеанс, чтобы в случае сбоя интернет-соединения я мог подключиться и продолжить свой ранее открытый сеанс.

Что я делаю, это войти в удаленный кластер "remote.cluster" и введите

 vncserver :1

затем я открываю другой терминал в моей системе и набираю

 ssh -C -NL 5901:remote.cluster:5901 myusername@remote.cluster &

Затем я запускаю vinagre в своей системе и подключаюсь по протоколу ssh. Проблема в том, что у меня нет пересылки x11, и я не могу открыть окна. Если я пытаюсь подключиться, используя протокол vnc с vinagre, он не подключается, потому что я получаю что-то как тайм-аут соединения.

Что я должен делать?

2 ответа

Решение

В случае, если мы подключаемся к удаленному X-серверу через VNC, у нас есть преимущество в том, что графическое приложение будет работать, даже если SSH-соединение с удаленным удалено. Затем мы можем восстановить соединение, чтобы возобновить графическое приложение. Смотрите также:

Чтобы ускорить переподключение, мы можем объединить подключение к удаленному с сеансом SSH, используя vncviewer из sharpvncviewer Установить туго с возможностью -via, Таким образом мы можем запустить на удаленном сервере:

vncserver:0  ## or any other display number e.g. :1

установить соединение на зрителе через туннель SSH:

vncviewer -via user@remote localhost:0

Для этого потребуется значительно больше пропускной способности, поскольку весь рабочий стол должен будет передаваться с сервера VNC. Поэтому это может быть не очень хорошая идея для соединений с низкой пропускной способностью, но может дать вам несколько лучший опыт работы с высокоскоростными, но нестабильными соединениями по сравнению с X-forwarding.

Используемая команда:

ssh -C -NL 5901:localhost:5901 myusername@remote.cluster &

вперед локальный 5901 -> remote.cluster:5901

Таким образом, вы можете подключиться к localhost::5901, чтобы подключиться к сеансу VNC, запущенному на remote.cluster (к которому у вас нет прямого доступа).

Пересылка X11 отличается от VNC. Вам нужно использовать -X, например

ssh -X myusername@remote.cluster

Чем вы сможете запускать удаленные приложения с графическим интерфейсом на локальном компьютере, при условии, что у вас локально работает X-сервер (Ubuntu Desktop или Xming в Windows).

Обновить:

Я сделал ошибку в пересылке, должно быть:

ssh -C -L 5901:localhost:5901 myusername@remote.cluster

Затем вы можете выполнить vnc на localhost:5901, трафик будет перенаправлен на remote.cluster:5901. Извинения за невнимательность...

Если графический интерфейс не требуется, рассмотрите возможность использования tmux или же screen чтобы избежать потери сессии.

Другие вопросы по тегам