Переадресация X11 через SSH

Переадресация X11 через SSH

Я экспериментировал с переадресацией X11 последние несколько часов, и пока что мне удалось переадресовать X-сервер моего настольного ПК на мой ноутбук, используя X11VNC в качестве сервера и X2VNC в качестве клиента. X2VNC использует Xinerama для обеспечения поведения, похожего на двухэкранное, между моим ноутбуком и моим настольным ПК.

Это на самом деле очень здорово!

Я знаю, что большинство систем Linux запускают Xorg и среды рабочего стола на TTY7.

Поэтому я задумался, возможно ли каким-либо образом привязать VNC-туннель к собственному TTY?

Было бы здорово иметь возможность переключаться между двумя TTY, чтобы выбирать, какой машиной управлять. И мне бы такой подход понравился больше, чем использование Xinerama или GUI.

решение1

Думаю, это не совсем ответ, но это может стать отправной точкой.

Я запустил несколько дополнительных X-серверов, используя xinit, вот так:

xinit -- :1 tty3   
xinit -- :2    
xinit -- :3 tty5    
xinit -- :4

Похоже, я даже могу запустить несколько сеансов gnome3 и xfce на разных виртуальных дисплеях.

startx -- :2  tty3   
startx -- :3  tty4

И теперь я могу начать что-то в этих сеансах, экспортировав переменную DISPLAY export DISPLAY=:3, а затем выбрать ее с помощью Ctrl-Alt-F2, F3 и т. д.

Однако я совершенно не представляю, что я делаю (переключаю ли я ДИСПЛЕЙ, сессию, консоль или tty?), это просто здорово, как вы говорите... ;-)

[tomh@workstation001 ~]$ export DISPLAY=:4
[tomh@workstation001 ~]$ google-chrome

решение2

Я знаю, что это старо, но:

xinit -e ssh -XYC $HOSTTOSSHTO startx -- :1

Единственный недостаток, который я вижу, это то, что вы не можете закрыть терминал входа после начала сеанса. Двигайтесь вперед и назад с помощью CTRL+ ALT+ F#, как упоминалось в других постах. Я делаю это с моим Raspberry Pi все время, и делал это с серверами и т. п. по всему интернету (немного медленно). Вы также можете поменяться startxс помощью /usr/bin/icewm, openbox, startKDEили что-то еще.

решение3

Кажется, я нашел правильное решение этой проблемы.

Я создал пользователя специально для подключения к моему настольному компьютеру.

Внутри пользовательского файла ~/.xinitrc на моем ноутбуке есть следующая строка (/home/desktop/.xinitrc):

exec vncviewer 192.168.1.2

192.168.1.2 — это IP-адрес моего настольного компьютера в моей сети.

В моем случае я теперь использую Tiger VNC в качестве клиента и по-прежнему X11VNC в качестве сервера на моем настольном ПК.

Думаю, подойдет любой клиент.

Сейчас это работает так: я вхожу в tty2 через CTRL+ALT+F2, вхожу как новый пользователь рабочего стола и затем инициирую x с помощью xinit -- :1. Новый сервер x запустится на tty8, поскольку мой основной сервер x уже запущен на tty7.

vncviewer запускается и успешно подключается к моему настольному ПК, обеспечивая отображение всего экрана плюс полосы прокрутки, если разрешение настольного ПК больше, чем у моего ноутбука.

Теперь я могу легко переключаться между ноутбуком и настольным ПК с помощью сочетания клавиш CTRL+ALT+7 и CTRL+ALT+8.

Вот полная процедура, предполагающая, что вы используете Tiger VNC (единственное отличие exec vncviewer x.x.x.x):

  1. Создать нового пользователя сadduser desktop
  2. Конфигурация нового пользователя соответствует значениям по умолчанию, поэтому продолжайте нажимать Enter, пока пользователь не будет создан.
  3. Откройте /home/desktop/.xinitrc(не забудьте сделать это как root, если вы не вошли в систему как пользователь рабочего стола, а также помните о правах доступа) и очистите файл (если в нем есть какой-либо контент) и введите следующую строку:exec vncviewer x.x.x.x
  4. Замените x.x.x.xна нужный вам IP-адрес.
  5. Сохраните файл.
  6. Введите неиспользуемый tty с помощью сочетания клавиш CTRL+ALT+X, где X — число от 1 до 9.
  7. Войти какdesktop
  8. Инициируйте новый X-сервер с помощью xinit -- :1, вы можете использовать другой дисплей, если :1 уже используется.
  9. Вас перенаправят на новый tty, где запущен X-сервер, и вуаля! Теперь Tiger VNC должен подключиться к выбранному вами IP-адресу.

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

Связанный контент