问题描述
我有一台运行Ubuntu 10.04的计算机,并且正在运行默认的VNC服务器Vino。
我有第二个Windows框,它运行VNC客户端,但没有任何X11功能。我是从Windows主机进入Ubuntu主机的,但我忘了在Ubuntu主机上启用VNC访问。
在Ubuntu主机上,有没有办法从Ubuntu命令行启用VNC连接?
更新:
正如@koanhead在下面所述,没有vino
的手册页(例如man -k vino
和info vino
没有返回任何内容),而vino --help
没有显示任何帮助)。
最佳解决方法
刚刚跑步
/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
次佳解决方法
简答:
gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true
如接受的答案所示,如果vino未在远程计算机上启动,请使用
/usr/lib/vino/vino-server
长答案和更多信息:
如上所述,可以从vino-preferences看到当前内置远程访问服务器(vino)的设置子集。使用gconf-editor
命令可以看到完整的gconf标志列表,该命令列在/desktop /gnome /remote_access下。您还可以使用此命令(或其中的变体)查看其他remote_access键:
gconftool-2 -a /desktop/gnome/remote_access
(无论出于何种原因,-R
也可以使用。)
您还可以通过--long-docs
arg获取架构密钥文档。
例如,对于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
第三种解决方法
我还想用命令行启用vino而不进入vino-preferences。
当我启动/usr/lib/vino/vino-server
时,它说我没有启用桌面共享服务。
使用Unity gconftool
不再可用。我们必须通过gsettings
来完成。
首先,启用vino:
gsettings set org.gnome.Vino enabled true
然后开始vino:
/usr/lib/vino/vino-server
现在您可以远程访问您的计算机。
如果你想看到Vino可用的所有配置:
gsettings list-keys org.gnome.Vino
第四种方法
在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
第五种方法
为什么,对于所有在这个艰难世界中有益的人的爱,是否没有人进入vino或vino-server或 dpkg -L vino
输出中列出的任何命令?就此而言,为什么要在Ubuntu系统上安装任何软件包,至少在相关命令中省略了手册页?好吧,咆哮。到目前为止我找到的最佳答案是:http://ubuntuforums.org/archive/index.php/t-266981.html
我真的希望这会有所帮助,我希望将来Ubuntu社区能够记录所有这些孤立的命令。 “易于使用”并不意味着放弃命令行,它当然并不意味着放弃易于访问的文档。 < /叽>
第六种方法
由于显示器的错误等原因,这似乎无法通过ssh远程工作。这是我做的:
export DISPLAY=:0.0 && /usr/lib/vino/vino-server
现在大部分都在工作!
第七种方法
我能够使用以下脚本从远程ssh连接设置新的Ubuntu 16.04安装:
#!/bin/bash
export DISPLAY=:0
read -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/remote-access/authentication-methods "['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/desktop/remote-access/
sudo service lightdm restart
引用对于任何字符串设置(引号内的单个刻度)都很重要。要使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"