Используйте рабочую станцию ​​Ubuntu из ноутбука Windows [duplicate]

У меня есть сервер, на котором запущен Ubuntu 12.10, и вам нужно иметь возможность удалённого доступа к этому серверу без входа в систему.

Я нашел много решений, но ни один из них не работает с 12.10.

Может ли кто-нибудь дать мне пошаговые инструкции о том, как настроить x11vnc для запуска в качестве службы (до входа пользователя в систему), чтобы при подключении к VNC мне был представлен графический экран входа?

Я новичок в Linux, поэтому, пожалуйста, предоставьте как можно больше деталей в ваших ответах / комментариях.

Спасибо

43
задан 18 December 2012 в 01:00

14 ответов

Используйте мой скрипт для простой настройки: installvncubuntu1604.sh

Использование:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
1
ответ дан 17 July 2018 в 22:31

Установите 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

33
ответ дан 17 July 2018 в 22:31

Вышеупомянутые ответы решают проблему, хотя пару поправок для версий 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
27
ответ дан 17 July 2018 в 22:31

Вот как:

Установите сервер 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 еще до входа в систему.

13
ответ дан 17 July 2018 в 22:31

Установить пакет 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

Это необходимо, чтобы добавить для всех пользователей

Это будет работать только после входа в систему пользователя

0
ответ дан 17 July 2018 в 22:31

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
2
ответ дан 17 July 2018 в 22:31

Я использую свою собственную оболочку: 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

Он автоматически запускается при загрузке, даже на экране входа в систему он запрашивает пароль.

0
ответ дан 17 July 2018 в 22:31

Используйте мой скрипт для простой настройки: installvncubuntu1604.sh

Использование:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
1
ответ дан 23 July 2018 в 23:09

Установите 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

35
ответ дан 23 July 2018 в 23:09
  • 1
    Вы можете запустить x11vnc как обычный пользователь, без проблем. Например: ssh для хоста и запустить x11vnc -safer -forever -display :0 2>&1 & в сеансе tmux (хорошая практика), он будет работать под $USER. – Terry Wang 17 July 2013 в 10:43
  • 2
    Кроме того, для справки, чтобы изменить область просмотра: superuser.com/questions/270608/… – Wtower 19 December 2014 в 13:25
  • 3
    Это не объясняет, как запустить его автоматически по запросу (и является общим требованием для такой функции) – LovesTha 26 February 2015 в 01:39
  • 4
    См. Здесь полный список опций x11vnc. Мне потребовалось много времени, чтобы найти это: karlrunge.com/x11vnc/x11vnc_opts.html – Gabriel Staples 7 September 2016 в 04:55
  • 5
    И посмотрите здесь отличный учебник по настройке этого на малиновый Pi с автозапуском при загрузке: megaleecher.net/Raspberry_Pi_VNC_Setup – Gabriel Staples 7 September 2016 в 04:56

Вышеупомянутые ответы решают проблему, хотя пару поправок для версий 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
27
ответ дан 23 July 2018 в 23:09
  • 1
    Ссылка на bbs.archlinux.org/viewtopic.php?id=168756 для некоторых рекомендаций по параметрам Requires / Afters – babelmonk 22 September 2015 в 12:48
  • 2
    почему не этот ответ обозначен как правильный ответ? – Cybex 2 January 2017 в 15:19
  • 3
    ОР должен это сделать - и на это был дан ответ через некоторое время после его ответа. Я ценю вотум доверия, хотя - спасибо :) – babelmonk 3 January 2017 в 17:36
  • 4
    Если дисплей вообще отсутствует, тогда вы можете установить произвольное разрешение: sudo xrandr --fb 1920x1080. – Orient 26 July 2017 в 10:55
  • 5
    Это не заданный x11vnc будет работать немедленно. Было бы неплохо предоставить команду тестирования перед тем, как совершить службу, которая перезапускается с ошибкой каждые 2 секунды. Я использую lightdm и xfce4 на безгласном облаке сервера Ubuntu 17.10. Restart-sec должен быть RestartSec – Ray Foss 21 December 2017 в 21:45

Вот как:

Установите сервер 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 еще до входа в систему.

13
ответ дан 23 July 2018 в 23:09
  • 1
    Но как заставить его работать, когда lightdm не создает файл auth, пока монитор не подключен? – LovesTha 26 February 2015 в 01:37
  • 2
    @didibus Я пытался сделать это в Lubuntu, но x11vnc не может автоматически запускаться автоматически. Это даже не начало службы, если на то пошло. Правильный синтаксис файла, и я могу запустить x11vnc из оболочки просто отлично. Что мне не хватает? – linuxgringo 21 June 2015 в 17:10
  • 3
    Это работает и на Lubuntu. В частности, версия Lubuntu от LeMaker для Banana Pi. – AaronD 2 March 2016 в 01:05

Установить пакет 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

Это необходимо, чтобы добавить для всех пользователей

Это будет работать только после входа в систему пользователя

0
ответ дан 23 July 2018 в 23:09

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
2
ответ дан 23 July 2018 в 23:09
  • 1
    Если вы хотите улучшить другой ответ, предложите отредактировать его и не создавайте новый ответ. – David Foerster 3 January 2016 в 13:31
  • 2
    Будем радостно добавлять это к моему, если вы хотите создать edit @ nix-badweasel – babelmonk 3 January 2017 в 17:36

Я использую свою собственную оболочку: 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

Он автоматически запускается при загрузке, даже на экране входа в систему он запрашивает пароль.

0
ответ дан 23 July 2018 в 23:09

Другие вопросы по тегам:

Похожие вопросы: