Я провел пару вечеров на этом, и это немного расстраивает, так как мне удалось заставить его работать на моем предыдущем Ubuntu (МНОГИЕ годы назад).
Я хотел бы, чтобы на моем сервере в любое время работал сервер vnc (включая экран входа в систему) для удаленного подключения и входа в систему. Не другой сеанс: разделите тот же сеанс, который я видел бы на физическом дисплее моего сервера, и подключитесь к нему удаленно через VNC в частной сети (так же как дома).
Я понимаю, что это комбинация конфигураций XDMCP, GDM3, initd и VNC, но у меня нет достаточного опыта, чтобы настроить различные инструкции, которые я нашел в Интернете, для работы с Ubuntu 18.04.
Эти многообещающие ссылки: https://lists.debian.org/debian-user/2017/04/msg00529.html https://codeghar.wordpress.com/2009/ 06/11 / remote-login-with-gdm-and-vnc-on-fedora-11 / https://wiki.openindiana.org/oi/4.7+Remote+Graphical+Login:+Using + Xvnc + и + gdm + для + One-Shot + сеансов
Прямо сейчас (на случай, если кто-то еще сходит с ума, как я), я установил nomachine, и в общей сложности понадобилось 2 минуты, чтобы Настройка и она работает, как я хотел (включая iOS-клиенты!): https://www.nomachine.com/ --- bittersweet ¯_ (ツ) _ / ¯
Ubuntu 18.04, переключенная от LightDM до GDM3. Соединение с экраном входа в систему с VNC при использовании GDM3 в настоящее время не возможно. Самый легкий способ вернуть эту функциональность VNC состоит в том, чтобы просто переключиться назад от GDM3 до LightDM.
LightDM все еще активно разрабатывается и используется многими дистрибутивами Linux включая некоторые другие разновидности Ubuntu. Так никакие заботы там.
Установка LightDM
apt install lightdm
Если Вы по некоторым причинам приезжаете, чтобы сожалеть, что переключились на LightDM:
dpkg-reconfigure gdm3
После того как Вам установили LightDM и настроенный как Ваша зазывала по умолчанию..
Установите x11vnc от пакетов
apt install x11vnc
Создайте файл/lib/systemd/system/x11vnc.service
# Description: Custom Service Unit file
# File: /lib/systemd/system/x11vnc.service
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -loop -nopw -xkb -repeat -noxrecord -noxfixes -noxdamage -forever -rfbport 5900 -display :0 -auth guess
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
Включите x11vnc сервис
systemctl enable x11vnc.service
Это предполагает, что экран:0 представляет Ваш монитор и связывает x11vnc с тем монитором вместо сессии. Если у Вас нет монитора (бездисплейным), я полагаю, что возможно установить поддельный драйвер монитора и связать x11vnc с этим.
Сторона отмечает
Другим способом сделать эту работу над 100%-й бездисплейной установкой (система, работающая в контейнере и, не имеет никакого GPU вообще) является "По требованию многопользовательский режим" часть статьи TigerVNC в ArchWiki.
Я еще не нашел более удобного способа, но если вы действительно хотите войти в систему, похоже, что это возможно.
GDM запускает один сеанс Xsession для экрана входа в систему, принадлежащего пользователю root. Насколько я могу судить, он будет выполнять вход в систему примерно следующим образом:
Войдите в систему, найдите существующий сеанс и переключите на него vt или найдите новый vt и запустите для него сеанс Xorg / gnome.
Первый имеет отображение : 0
и его авторитетный файл (идентификатор пользователя gdm 121) / run / user / 121 / gdm / Xauthority
. Таким образом, вы можете сначала запустить x11vnc (права root), если вы не вошли в систему для самого DM и не вошли в систему (ваш x11vnc станет черным из-за переключателя vt). Вы можете либо запустить новый x11vnc вручную для вашего нового дисплея : 1
(без прав root), либо запустить его автоматически вместе с сеансом, как любой другой сценарий входа в систему.
~$ ps -a | grep Xorg
1471 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3
5337 /usr/lib/xorg/Xorg vt3 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
/1000/gdm/Xauthority -background none -noreset -keeptty -verbose
Это было решено в какой-то момент (другие DM могут сделать то же самое в будущем)
После тестирования многих решений/скриптов для vnc, этот файл xtartup хорошо работает для меня на Ubuntu 18.04 Lts с тигром vnc:
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
И эта команда запуска:
vncserver -localhost no -geometry 1024x768 -depth 24
Взято из этого руководства:
У меня Ubuntu Server 18.04.4 с ubuntu-desktop
, установленным из tasksel
, поэтому я действительно не знаю, будет ли это работать с обычным -box Ubuntu Desktop или если эта опция скоро станет устаревшей.
Попробовав некоторые сторонние серверы VNC, я остановился на встроенном вино-сервере
(совместное использование экрана). Чтобы запустить его, вам нужно выполнить ~$ /usr/lib/vino/vino-server
, который затем будет прослушивать порт 5900, и поскольку это не включено по умолчанию для системной службы, вы можете захотеть чтобы создать свою собственную запись systemd
для включения ее при каждом запуске
Некоторые параметры можно настроить через Настройки >> Общий доступ >> Screen Sharing остальное через ~$ gsettings set org.gnome.Vino ANY_EXISTING_KEY NEW_VALUE
Ritualmaster прав в своем ответе: возможен удаленный вход через GDM3 с помощью x11vnc.
Вы должны установить x11vnc.
sudo apt установить x11vnc
Вы должны создать пароль
x11vnc -storepasswd /path/to/passfile
Если не указано, расположение по умолчанию — ~/.vnc/passwd
x11vnc -storepasswd
Вам нужно будет перечислить Xsessions
ps aux | grep авторизация
Первая строка — это экран входа в Gnome Desktop Manager.
root /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/124/gdm/Xauthority -background none -noreset -keeptty -verbose 3
fho grep Xorg
Предоставьте надлежащие права доступа и установите отображение на: 0
sudo x11vnc -display :0 -auth /run/user/124/gdm/Xauthority -rfbauth ~/.vnc/passwd
Если вы подключитесь к нему, вы увидите экран входа в систему. Как только вы войдете в систему, экран станет черным. Сервер должен отключиться автоматически.
Найдите экран сеанса пользователя
ps aux | grep Xorg
root /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/124/gdm/Xauthority -background none -noreset -keeptty -verbose 3
root /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
fho grep Xorg
Вторая строка — та, которую вы ищете. Теперь вы можете снова запустить сервер x11vnc, заменив номер дисплея и сеанс пользователя Xauthority
x11vnc -display :1 -auth /run/user/1000/gdm/Xauthority -rfbauth ~/.vnc/passwd