从命令行启用远程VNC?


66

我有一台运行Ubuntu 10.04的计算机,并且正在运行Vino(默认的VNC服务器)。

我有第二个Windows盒子,正在运行VNC客户端,但没有任何X11功能。我从Windows主机切换到Ubuntu主机,但忘记了在Ubuntu主机上启用VNC访问。

在Ubuntu主机上,我是否可以通过Ubuntu命令行启用VNC连接?

更新:

正如下面@koanhead说,对于没有人页面vino(如man -k vinoinfo vino返回任何结果),并vino --help没有表现出任何的帮助)。

Answers:


25

刚跑步

/usr/lib/vino/vino-server

应该做的工作。

访问服务器后,建议您将其添加到自动启动的应用程序中,以便始终启动。

您可能希望使用更改某些设置:

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-serverNo protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu 2012年

@hvtuananh您有可以分享的展览吗?您是否已相应设置evd变量DISPLAY?我的答案假设您已经默认启动了显示,但是您没有字符串,而是使用命令行使其可用。
GuillaumeCoté'12

1
(至少)在13.10中不起作用。请参阅下面的ouzmoutous回答。
Emil Styrke,2014年

如果有人遇到问题,请注意以下错误:bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663
Rmano

3
vino-preferences: command not found
endolith '18

28

简短答案:

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

如公认的答案所述,如果未在远程计算机上启动vino,请使用

/usr/lib/vino/vino-server

长答案和更多信息:

如前所述,可以从vino-preferences中看到当前内置的远程访问服务器(vino)的设置的子集。可以gconf-editor在/ desktop / gnome / remote_access下列出的命令中查看gconf标志的完整列表。您还可以使用此命令(或它的变体)查看其他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:
Endolith '18

24

我还想在不使用vino-preferences的情况下通过命令行启用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环境变量的文本模式终端上执行此操作,需要在SET命令前加上DISPLAY =:0,否则将“无法将更改提交到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
vaab 2014年

迄今为止最好的答案。但是,如何使Vino在重新启动时自动启动?
pferrel

这样,vnc端口就打开了,但是我的vnc客户端永远停止了。什么是探针?
大卫·波塔贝拉

如果您的VNC客户端未连接到桌面,则可能是因为加密保持激活状态。-每次注销并再次登录时,必须再次禁用加密。-您可以将这些命令放入外壳程序中,并在桌面启动时调用它。在Ubuntu桌面中查找“启动应用程序首选项”。
Jaime's

13

为什么要在这个艰难的世界中热爱一切美好的事物,为什么没有man输入vino或vino-server或 dpkg -L vino的输出中列出的任何命令?因此,为什么要 Ubuntu系统上安装任何软件包,该软件包至少省略了相关命令的手册页?好的,大声疾呼。到目前为止,我找到的最佳答案是在这里:http : //ubuntuforums.org/archive/index.php/t-266981.html

我真的希望这会有所帮助,并希望将来Ubuntu社区记录所有这些孤立的命令。“易于使用”并不意味着放弃命令行,当然也不意味着放弃易于访问的文档。</ grumble>


尝试运行/ usr / lib / vino / vino-server。对于几乎没有什么帮助和文档,请使用vino-server --help-all。
koanhead

4
链接到另一个来源很不好,该来源将来可能会脱机,并且您的答案将不再有效。
菲尔·汉嫩

咆哮的另外一点。
Marnix A. van Ammers 2013年

它在/ usr / lib中,因此不是用户正常运行的命令,因此不需要联机帮助页…至少这就是原因。FWIW,我同意你的看法。
Matthias Urlichs,2015年

9

由于显示等错误,这似乎无法通过ssh远程运行。这是我所做的:

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

现在大部分都可以使用!


是的-终于!没有export DISPLAY=:0.0,我得到的“远程”桌面实际上是我的本地桌面(我使用ssh -X)。另外,有必要运行之前通过vino-preferences(或其他答案中建议的shell命令)“允许其他用户” 。注意:一旦正确设置,可能任何VNC客户端都可以使用它,但是似乎提供了最明智的UI。/usr/lib/vino/vino-servervinagre
2015年

5

我可以使用以下脚本从远程ssh连接设置全新的Ubuntu 16.04安装:

#!/ bin / bash
出口DISPLAY =:0
阅读-e -p“ VNC密码:” -i“ ubuntu”密码
dconf写入/ org / gnome / desktop / remote-access / enabled true
dconf写入/ org / gnome / desktop / remote-access / prompt-enabled false
dconf编写/ org / gnome / desktop / remote-access / authentication-methods“ ['vnc']”
dconf写入/ org / gnome / desktop / remote-access / require-encryption false
dconf写入/ org / gnome / desktop / remote-access / vnc-password \“ \'$(echo -n $ password | base64)\'\”
dconf转储/ org / gnome / desktop / remote-access /
sudo服务lightdm重新启动

引号对于任何字符串设置(引号内的单个刻度)都很重要。为了使dconf能够写入,需要访问XWindows,因此这就是需要export DISPLAY部分的原因。我认为您在此之后仍然需要登录到实际的Ubuntu计算机上的桌面才能与VNC连接。只有转储命令可以确认所有设置都已生效,您并不需要。

如果您想一直保持显示状态,可以选择执行以下操作:

dconf写入/ org / gnome / desktop / screensaver / lock-enabled false
dconf写入/ org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false
dconf写入/ org / gnome / desktop / session / idle-delay“ uint32 0”

1

对于使用Linux Mint 15的任何人,我都可以通过以下操作在MintBox2上全部使用。现在,我可以使用ssh + vino + Tight VNC完全无头运行MintBox 2。

通过与LinuxMint MintBox2机器的SSH连接输入腻子:

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

18.04升级后,我在xubuntu上也遇到了同样的问题。首先安装vino。矿山在升级时被移除,恕不另行通知。即使在安装了vino之后,命令vino-preferences也不起作用。

这是一个简单的解决方法:

  • 安装dconf-editor

    sudo apt install dconf-editor 
    
  • 然后打开它,然后/org/gnome/desktop/remote访问和turn off encryption

您还可以在dconf-editor中设置其他几个远程选项。但是,在安装vino之前,远程访问不会显示在dconf-editor中。

我希望有人能解释一下对vino-preferences的反应。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.