Включить удаленный VNC из командной строки?


66

У меня есть один компьютер под управлением Ubuntu 10.04 и работает Vino , VNC-сервер по умолчанию.

У меня есть вторая коробка Windows, на которой запущен клиент VNC, но нет возможностей X11. Я ssh'd в хосте Ubuntu с хоста Windows, но я забыл включить доступ VNC на хосте Ubuntu.

На хосте Ubuntu есть ли способ включить подключения VNC из командной строки Ubuntu?

Обновить:

Как говорит @koanhead ниже, нет справочной страницы для vino(например, man -k vinoи info vinoничего не возвращать), и vino --helpне показывает никакой помощи).

Ответы:


25

Просто работает

/usr/lib/vino/vino-server

должен сделать работу.

Если у вас есть доступ к вашему серверу, я бы порекомендовал вам добавить его в Autostarted Apps, чтобы он всегда запускался.

Вы, вероятно, захотите изменить некоторые настройки с помощью:

vino-preferences

будьте очень осторожны, когда вы запускаете vino-preference на удаленной машине, если вы снимите флажок «Разрешить другим пользователям управлять вашим рабочим столом», вы не сможете проверить его снова.

или отредактировать:

~/.gconf/desktop/gnome/remote_access/%gconf.xml

Вот пример файла:

<?xml version="1.0"?>
<gconf>
    <entry name="vnc_password" mtime="1289267042" type="string">
        <stringvalue>cXdlcnR5</stringvalue>
    </entry>
    <entry name="view_only" mtime="1289262982" type="bool" value="false"/>
    <entry name="prompt_enabled" mtime="1254965869" type="bool" value="false"/>
    <entry name="authentication_methods" mtime="1289267034" type="list" ltype="string">
        <li type="string">
            <stringvalue>vnc</stringvalue>
        </li>
    </entry>
    <entry name="enabled" mtime="1289263574" type="bool" value="true"/>
</gconf>

Будьте осторожны, пароль закодирован в base64. Для этого файла пароль qwerty. На каком-то форуме я вижу, что люди успешно меняют его, но у меня были проблемы с этим.

Вот он-лайн кодировщик base64:

http://www.motobit.com/util/base64-decoder-encoder.asp


6
Я получил следующую ошибку при выполнении /usr/lib/vino/vino-server:No protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu

@hvtuananh У вас есть дисплей, которым вы можете поделиться? У вас соответственно установлена ​​переменная evd DISPLAY? Мой ответ предполагает, что у вас уже есть дисплей, начинающийся по умолчанию, но у вас нет строки и вы используете командную строку, чтобы сделать его доступным.
Гийом Котэ

1
Это не работает в (по крайней мере) 13.10. Смотрите ответ ниже.
Эмиль Стирке

Если у кого-то есть проблемы, обратите внимание на ошибку: bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663 .
Rmano

3
vino-preferences: command not found
эндолит

28

Краткий ответ:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true

Как говорится в принятом ответе, если vino не запущен на удаленной машине, используйте

/usr/lib/vino/vino-server

Длинный ответ и больше информации:

Подмножество настроек для текущего встроенного сервера удаленного доступа (vino) можно увидеть, как уже упоминалось, из настроек vino. Полный список флагов gconf можно увидеть с помощью gconf-editorкоманды, указанной в / desktop / gnome / remote_access. Вы также можете увидеть другие ключи remote_access с помощью этой команды (или ее варианта):

gconftool-2 -a /desktop/gnome/remote_access

(По какой-то причине -Rтоже будет работать.)

Вы также можете получить документацию по ключу схемы через --long-docsarg.

Например, для ключа alternative_port:

gconftool-2 --long-docs /desktop/gnome/remote_access/alternative_port

       The port which the server will listen to if the
       'use_alternative_port' key is set to true.
       Valid values are in the range from 5000 to 50000.

Так, например, вот как изменить порт по умолчанию через командную строку:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/use_alternative_port true
gconftool-2 --set --type=int /desktop/gnome/remote_access/alternative_port 5999

gconftool выдаст вам ключи в данном каталоге. Вот раздел 'remote_access':

gconftool-2 -a /desktop/gnome/remote_access
 use_upnp = false
 vnc_password = 
 authentication_methods = [vnc]
 network_interface = 
 require_encryption = false
 disable_background = false
 enabled = true
 use_alternative_port = false
 mailto = 
 disable_xdamage = false
 lock_screen_on_disconnect = false
 icon_visibility = always
 view_only = false
 prompt_enabled = true
 alternative_port = 5900

Вот как перечислить все документы схемы в / desk / gnome / remote / access (через командную строку / bin / bash):

for key in ` gconftool-2 -a /desktop/gnome/remote_access | awk '{print $1}'  ` ; do echo $key ; gconftool-2 --long-docs /desktop/gnome/remote_access/$key ; done

/usr/lib/vino/vino-serverон не работает из SSH, он говоритCannot open display:
эндолит

24

Я также хотел включить vino из командной строки, не заходя в настройки vino.

Когда я начинал /usr/lib/vino/vino-server, он говорит, что у меня не включена служба общего доступа к рабочему столу.

С Unity gconftoolбольше нельзя использовать. Мы должны сделать это через gsettings.

Итак, сначала включите vino:

gsettings set org.gnome.Vino prompt-enabled true

Затем начните vino:

/usr/lib/vino/vino-server

Теперь вы можете получить удаленный доступ к вашему компьютеру.

Если вы хотите увидеть все конфиги, доступные для Vino:

gsettings list-keys org.gnome.Vino

2
Чтобы сделать это через SSH или из терминала текстового режима, где переменная окружения DISPLAY не установлена, вам необходимо добавить DISPLAY =: 0 к команде set, в противном случае вы получите «не удалось зафиксировать изменения в dconf».
Эмиль Стирке

Так что в дополнение к вышесказанному мне пришлось export DBUS_SESSION_BUS_ADDRESS=.... Чтобы получить это значение переменной, я скопировал из среды запущенного процесса ( pgrep -u myUserName -lчтобы получить список процессов, выберите число, затем tr '\0' '\n' < /proc/NUMBER/environ | grep DBUS). Затем экспортируйте DBUS_SESSION_BUS_ADDRESS с возвращенным значением. Затем команда побежала.
RJFalconer

Первая команда дает мне: нет такого ключа «включен»
Stiv

19

В Ubuntu 14.04 я обнаружил, что у меня работает следующий вариант:

export DISPLAY=:0
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Если это не сработает, ваш сеанс X может быть запущен на чем-то другом :0, поэтому в быстром ps aux | grep Xдолжно быть показано :1или:2


1
Вы должны начать с export DISPLAY=:0как gsettings команды будут прекратиться без: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY.
Вааб

Лучший ответ на сегодняшний день. Но как сделать автозапуск Vino при перезагрузке?
Пферрел

при этом порт vnc открыт, но мой клиент vnc останавливается навсегда. в чем может быть проблема?
Дэвид Портабелла

если ваш VNC-клиент не подключается к рабочему столу, возможно, шифрование остается активным. - Каждый раз, когда вы выходите из системы и снова входите в систему, вы должны снова отключать шифрование. - Вы можете поместить эти команды в оболочку и вызывать ее при запуске рабочего стола. Найдите «Настройки запуска приложений» на рабочем столе Ubuntu.
Хайме

13

Почему, ради любви ко всему хорошему в этом нелегком мире, нет записи man для vino или vino-server или для какой-либо из команд, перечисленных в dpkg -L vinoвыходных данных? В связи с этим, почему какой-либо пакет вообще должен быть установлен в системе Ubuntu, когда в нем отсутствует страница руководства, по крайней мере, для соответствующих команд? Хорошо, разглагольствовать. Лучший ответ, который я нашел на данный момент, здесь: http://ubuntuforums.org/archive/index.php/t-266981.html

Я действительно надеюсь, что это поможет, и я надеюсь, что в будущем сообщество Ubuntu документирует все эти осиротевшие команды. «Простота использования» не означает отказ от командной строки и, конечно, не означает отказ от легкодоступной документации. </ Ворчать>


Попробуйте запустить / usr / lib / vino / vino-server. Для получения небольшой справки и документации используйте vino-server --help-all.
koanhead

4
Ссылка на другой источник плохая, этот источник может в будущем отключиться, и ваш ответ больше не будет действительным.
Фил Ханнент

Еще одно очко для разглагольствования.
Марникс А. ван Аммерс

Он находится в / usr / lib, поэтому это не команда, которую пользователь обычно запускает, поэтому ему не нужна man-страница ... по крайней мере, такова причина. FWIW, я согласен с вами.
Матиас Урлич

9

Кажется, это не работает удаленно через ssh из-за ошибок на дисплее и так далее. Вот что я сделал:

export DISPLAY=:0.0 && /usr/lib/vino/vino-server

В основном работает сейчас!


Да, наконец! Без export DISPLAY=:0.0этого «удаленный» рабочий стол, который я получал, был фактически моим локальным рабочим столом (я использую ssh -X). Кроме того, перед запуском необходимо «Разрешить другим пользователям» через vino-preferences(или команды оболочки, предложенные в других ответах) . Примечание. Вероятно, любой клиент VNC работает с этим, как только он настроен правильно, но, как представляется, обеспечивает наиболее разумный интерфейс. /usr/lib/vino/vino-servervinagre
Нобар

5

Я смог установить свежую установку Ubuntu 16.04 из удаленного ssh-соединения с помощью следующего скрипта:

#! / Bin / Баш
экспорт DISPLAY =: 0
прочитайте -e -p "VNC Password:" -i "ubuntu" password
dconf write / org / gnome / desktop / remote-access / enabled true
dconf write / org / gnome / desktop / remote-access / prompt-enabled false
dconf write / org / gnome / desktop / удаленный доступ / методы аутентификации "['vnc']"
dconf write / org / gnome / desktop / remote-access / require-encryption false
dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dump / org / gnome / рабочий стол / удаленный доступ /
перезапуск службы sudo lightdm

Цитирование важно для любых настроек строки (одиночные галочки внутри кавычек). Чтобы dconf мог писать, ему нужен доступ к XWindows, поэтому необходима часть экспорта DISPLAY. Я думаю, что вам все еще нужно войти в систему на рабочем столе на фактической машине Ubuntu, чтобы соединиться с VNC после этого. Команда dump предназначена для подтверждения того, что все настройки вступили в силу, вам это не нужно.

При желании вы можете сделать это, если хотите постоянно держать дисплей включенным:

dconf write / org / gnome / desktop / screensaver / lock-enabled false
dconf write / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"

1

Для всех, кто использует Linux Mint 15, я заставил все это работать на моем MintBox2, выполнив следующие действия. Теперь я могу запустить MintBox 2 полностью без заголовка с помощью: ssh + vino + Tight VNC.

Введите в putty через ssh соединение с машиной LinuxMint MintBox2:

sudo su
[enter your root password]
echo $DISPLAY
export DISPLAY=:0.0
startx &   }This loads up LinuxMint on screen as "root" user
[press the return key again to get back to BASH prompt]

Теперь, если вам нравится (это не обязательно) на терминале LinuxMint (то есть не на замазке), введите:

echo $DISPLAY

=> Вы получаете вывод: 1 [то есть это вызвало у меня много проблем, чтобы понять, т.е. это не 0: 0 !!!!!!!!!!]

Теперь вернитесь к шпатлевке и наберите:

echo $DISPLAY
export DISPLAY=:1
/usr/lib/vino/vino-server

=> Теперь он загружается, и вы можете использовать окно 7 Tight VNC Viewer для доступа к Linux Mint и т. Д.

Я надеюсь, что это поможет кому-то там ...


1

У меня была та же проблема с xubuntu после обновления 18.04. Сначала установите vino. Мой был удален при обновлении без какого-либо уведомления. Также даже после установки vino, команда vino-Предпочтения не работает.

Вот простой обходной путь:

  • Установите dconf-редактор

    sudo apt install dconf-editor 
    
  • затем откройте его и перейдите к /org/gnome/desktop/remoteдоступу и turn off encryption.

Есть также несколько других удаленных опций, которые вы можете установить в dconf-editor. Однако, пока вы не установите vino, удаленный доступ не отображается в dconf-editor.

Я надеюсь, что кто-то может объяснить, что случилось с vino-предпочтениями.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.