Используя пересылку 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
чтобы избежать потери сессии.