我已按照此处的说明设置 vncserver 服务: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
由于我已经安装了 vnc4server,因此我只使用了设置 vncserver 服务的部分。
启动vncserver的选项:
- 通过运行来使用我创建的服务:
sudo service vncserver start/stop/restart
。它运行良好,并启动了 Xvnc4 进程。 - 只需在终端中输入 vncserver。
在这两种情况下,我都已仔细检查与 vnc4server 关联的 Xvnc4 服务是否已启动并正在运行ps -aux | grep vnc
。
在这两种情况下,都会创建一个显示器并将其附加到显示器 1。
我的问题:当我使用选项 1 启动我的 vncserver 时,我无法使用 vncviewer 连接到从我的 Windows PC 创建的显示器。
当我使用选项 2 时,我能够使用 vncviewer 从我的 Windows PC 连接到显示器。我只需提供serverip:<display#>
。
为什么使用选项 1 时无法连接。另外,建议使用诸如 putty 之类的工具设置安全隧道,然后通过它进行连接只是为了安全吗?我之所以问这个问题,是因为当我使用上面的选项 2 启动 vncserver 时,我能够使用远程连接,而servername or ip:display#
无需使用 putty 或任何类型的隧道。
这是我的~/.vnc/xstartup
:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
这是我的/etc/init.d/vncserver
服务文件:
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mo"
DISPLAY="1"
DEPTH="16"
#GEOMETRY="1024x768"
#GEOMETRY="1600x1200"
GEOMETRY="1366x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
答案1
感谢steeldriver的指点,我的问题是我在电脑上的putty中的设置是错误的。我使用的是远程服务器地址,而不是“localhost”。为了满足我对两个显示器的需求,我在同一个连接下在putty中设置了两个不同的隧道:
localhost:5901
localhost:5902
然后,我修改了 /etc/init.d/vncserver 以在两个不同的显示器上启动两个 vncserver 实例。
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mo"
DISPLAY="1"
DISPLAY2="2"
DEPTH="16"
#GEOMETRY="1024x768"
#GEOMETRY="1600x1200"
GEOMETRY="1366x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
OPTIONS2="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY2} -localhost"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver ${OPTIONS2}"
;;
stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISP$
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY2}"
;;
restart)
$0 stop
$0 start
;;
esac
然后,我能够使用 Windows PC 上的 vncviewer 连接到显示器 1 和显示器 2,从而在某种程度上模仿双屏设置。对我来说,这很管用。如果有人对为什么不应该这样做有任何警告或见解,我将很乐意得到反馈。