У меня есть сервер, на котором запущен Ubuntu 12.10, и вам нужно иметь возможность удалённого доступа к этому серверу без входа в систему.
Я нашел много решений, но ни один из них не работает с 12.10.
Может ли кто-нибудь дать мне пошаговые инструкции о том, как настроить x11vnc для запуска в качестве службы (до входа пользователя в систему), чтобы при подключении к VNC мне был представлен графический экран входа?
Я новичок в Linux, поэтому, пожалуйста, предоставьте как можно больше деталей в ваших ответах / комментариях.
Спасибо
Используйте мой скрипт для простой настройки: installvncubuntu1604.sh
Использование:
chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
Установите x11vnc:
sudo apt-get install x11vnc
Создайте пароль для своего пользователя:
x11vnc -storepasswd
Если у вас есть настройка ssh, вы можете использовать его для запуска x11vnc при условии, что вы вошли в систему уже, но не забудьте сказать, чтобы он использовал ваш файл паролей:
x11vnc -usepw
Если вы не вошли в систему, вы получите сообщение об ошибке:
If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:
gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
Предполагая, что вы используют lightdm для входа в систему, вы можете исправить эту проблему, вы можете запустить x11vnc с помощью команды:
sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
Я не уверен, что это лучшая идея запустить x11vnc как root. Может быть, кто-то может отредактировать способ доступа к логину без использования sudo.
После этого вы сможете подключиться с помощью клиента vnc, такого как krdc (для KDE). Возможно, вы захотите использовать GNU Screen для продолжения работы x11vnc без необходимости открытия сеанса ssh
. Мне удалось это выяснить, используя экран GNU .
Здесь это пример выскочки, которую вы можете использовать, чтобы запустить его при запуске. Его нужно поместить в /etc/init/x11vnc.conf. (Обратите внимание, что более новые версии Ubuntu используют systemd, поэтому см. Другой ответ с образцом systemd config):
# description "start and stop x11vnc"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
#chdir /home/
#setuid 1000
#setgid 1000
respawn
respawn limit 20 5
exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
После того, как вы сделали этот файл, вы можете запустить его, запустив: sudo start x11vnc. Вы можете проверьте журнал: /var/log/upstart/x11vnc.log
Вышеупомянутые ответы решают проблему, хотя пару поправок для версий Ubuntu с systemd (15.04+) следующим образом:
Воспользуйтесь новой функциональностью -auth guess в x11vnc - что помогает! Обновление для systemd (не upstart)Запустите следующее:
sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service
Вставьте это в файл:
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
Затем начните с :
sudo systemctl daemon-reload
sudo systemctl start x11vnc
И убедитесь, что служба запускается при загрузке:
sudo systemctl enable x11vnc
Вот как:
Установите сервер X11VNC (или через Ubuntu Software Center -> X11VNC Server)sudo apt-get install x11vnc
Создайте файл паролей VNC. sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
Создать файл задания в редакторе nano (или gedit, leafpad и т. д.). sudo nano /etc/init/x11vnc.conf
Вставьте это в файл: start on login-session-start
script
/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
end script
Сохраните файл. Вы создали задание для запуска входа в систему Upstart-session-start. Перезапустите Ubuntu. Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.
Установить пакет x11vnc
#sudo apt-get install x11vnc
Затем установить пароль
#x11vnc -usepw
Затем создать сценарий запуска для x11vnc
#sudo nano /etc/x11vnc.sh
В файле: [ ! d3] /usr/bin/x11vnc -bg -forever -shared -reopen -usepw
Затем сохраните
#sudo chmod 777 /etc/x11vnc.sh
Затем добавьте файл сценария в Центр управления => Запуск приложения Затем нажмите Добавить
> Name-----------x11vnc
> Command-----<map the script file [ ! d6] > Comment------service
Это необходимо, чтобы добавить для всех пользователей
Это будет работать только после входа в систему пользователя
babelmonks отвечает как скрипт bash, копирует и сохраняет как x11vnc.sh & amp; запустите с sudo bash /path/to/file/x11vnc.sh (извините, у вас недостаточно комментариев, чтобы опубликовать комментарий)
#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
[Install]
WantedBy=multi-user.target
EOF
#restart new services & enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc
Я использую свою собственную оболочку: https://github.com/dvdvideo1234/UbuntuBatches/tree/master/x11VNC
start on login-session-start
script
sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log
end script
в файл:
/etc/init/x11vnc.conf
Он автоматически запускается при загрузке, даже на экране входа в систему он запрашивает пароль.
Используйте мой скрипт для простой настройки: installvncubuntu1604.sh
Использование:
chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
Установите x11vnc:
sudo apt-get install x11vnc
Создайте пароль для своего пользователя:
x11vnc -storepasswd
Если у вас есть настройка ssh, вы можете использовать его для запуска x11vnc при условии, что вы вошли в систему уже, но не забудьте сказать, чтобы он использовал ваш файл паролей:
x11vnc -usepw
Если вы не вошли в систему, вы получите сообщение об ошибке:
If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:
gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
Предполагая, что вы используют lightdm для входа в систему, вы можете исправить эту проблему, вы можете запустить x11vnc с помощью команды:
sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
Я не уверен, что это лучшая идея запустить x11vnc как root. Может быть, кто-то может отредактировать способ доступа к логину без использования sudo.
После этого вы сможете подключиться с помощью клиента vnc, такого как krdc (для KDE). Возможно, вы захотите использовать GNU Screen для продолжения работы x11vnc без необходимости открытия сеанса ssh
. Мне удалось это выяснить, используя экран GNU .
Здесь это пример выскочки, которую вы можете использовать, чтобы запустить его при запуске. Его нужно поместить в /etc/init/x11vnc.conf. (Обратите внимание, что более новые версии Ubuntu используют systemd, поэтому см. Другой ответ с образцом systemd config):
# description "start and stop x11vnc"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
#chdir /home/
#setuid 1000
#setgid 1000
respawn
respawn limit 20 5
exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
После того, как вы сделали этот файл, вы можете запустить его, запустив: sudo start x11vnc. Вы можете проверьте журнал: /var/log/upstart/x11vnc.log
Вышеупомянутые ответы решают проблему, хотя пару поправок для версий Ubuntu с systemd (15.04+) следующим образом:
Воспользуйтесь новой функциональностью -auth guess в x11vnc - что помогает! Обновление для systemd (не upstart)Запустите следующее:
sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service
Вставьте это в файл:
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
Затем начните с :
sudo systemctl daemon-reload
sudo systemctl start x11vnc
И убедитесь, что служба запускается при загрузке:
sudo systemctl enable x11vnc
Вот как:
Установите сервер X11VNC (или через Ubuntu Software Center -> X11VNC Server)sudo apt-get install x11vnc
Создайте файл паролей VNC. sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
Создать файл задания в редакторе nano (или gedit, leafpad и т. д.). sudo nano /etc/init/x11vnc.conf
Вставьте это в файл: start on login-session-start
script
/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
end script
Сохраните файл. Вы создали задание для запуска входа в систему Upstart-session-start. Перезапустите Ubuntu. Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.
Установить пакет x11vnc
#sudo apt-get install x11vnc
Затем установить пароль
#x11vnc -usepw
Затем создать сценарий запуска для x11vnc
#sudo nano /etc/x11vnc.sh
В файле: [ ! d3] /usr/bin/x11vnc -bg -forever -shared -reopen -usepw
Затем сохраните
#sudo chmod 777 /etc/x11vnc.sh
Затем добавьте файл сценария в Центр управления => Запуск приложения Затем нажмите Добавить
> Name-----------x11vnc
> Command-----<map the script file [ ! d6] > Comment------service
Это необходимо, чтобы добавить для всех пользователей
Это будет работать только после входа в систему пользователя
babelmonks отвечает как скрипт bash, копирует и сохраняет как x11vnc.sh & amp; запустите с sudo bash /path/to/file/x11vnc.sh (извините, у вас недостаточно комментариев, чтобы опубликовать комментарий)
#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
[Install]
WantedBy=multi-user.target
EOF
#restart new services & enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc
Я использую свою собственную оболочку: https://github.com/dvdvideo1234/UbuntuBatches/tree/master/x11VNC
start on login-session-start
script
sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log
end script
в файл:
/etc/init/x11vnc.conf
Он автоматически запускается при загрузке, даже на экране входа в систему он запрашивает пароль.