Я следовал инструкциям здесь для установки vncserver сервиса: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
Я только использовал раздел по установке vncserver сервиса, так как у меня уже был установленный vnc4server.
Опции для запуска vncserver:
sudo service vncserver start/stop/restart
. Это хорошо работает и удары процесса Xvnc4. В обоих случаях я проверил это дважды, сервис Xvnc4, связанный с vnc4server, запускается и выполняющий использование ps -aux | grep vnc
.
В обоих случаях дисплей создается и присоединяется для отображения 1.
Моя проблема: Когда я использую опцию 1 запустить мой vncserver, я не могу соединиться с дисплеем, созданным из моего ПК окон с помощью vncviewer.
Когда я использую опцию 2, я могу соединиться с дисплеем от своего ПК окон с помощью vncviewer. Я просто обеспечиваю serverip:<display#>
.
Почему я не могу соединиться, когда я использую опцию 1. Кроме того, предложение состоит в том, чтобы установить безопасный туннель с помощью чего-то как шпаклевка и затем соединившись через него только для безопасности? Я спрашиваю, потому что, когда я запускаю свой vncserver использование опции 2 выше, я могу соединить удаленно использование servername or ip:display#
не используя шпаклевку или любой вид туннеля.
Вот мой ~/.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
Благодаря указателям steeldriver моя проблема состояла в том, что мои настройки в шпаклевке на моем ПК были неправильными. Я использовал свой адрес удаленного сервера вместо того, чтобы использовать "localhost". Для обращения к моей потребности в двух дисплеях я создал два различных туннеля в шпаклевке при том же соединении:
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
Я затем смог использовать vncviewer на своем ПК окон, чтобы соединиться с дисплеем 1 и отобразиться два, следовательно несколько имитируя двойную экранную установку. Это работает на меня. Если у кого-либо будут какие-либо предупреждения или понимание на том, почему это не должно быть сделано, я буду рад получить обратную связь.