Пересылка X11 через SSH

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

Это действительно здорово!

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

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

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

Наверное, это не ответ, но это может быть отправной точкой.

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

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

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

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

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

Однако я абсолютно не знаю, что я делаю (я переключаю DISPLAY, сессию, консоль или tty?), Ее просто классно, как вы говорите … 😉

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

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

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

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

Кажется, я нашел подходящее решение.

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

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

 exec vncviewer 192.168.1.2 

192.168.1.2 – это мой настольный компьютер в моей сети.

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

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

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

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

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

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

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

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