Я выполнил инструкции для настройки службы 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. Просто введите vncserver в терминал.В обоих случаях я дважды проверил, что служба Xvnc4, связанная с vnc4server, запускается и запускается с использованием ps -aux | grep vnc.
В обоих случаях создается и подключается дисплей 1.
Моя проблема: когда я использую опцию 1 для запуска своего vncserver, я не могу подключиться к экрану, созданному на моем компьютере с Windows, используя 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». Чтобы удовлетворить мою потребность в двух дисплеях, я установил два разных туннеля в putty под тем же соединением:
localhost:5901
localhost:5902
Затем я модифицировал мой /etc/init.d/vncserver, чтобы запустить два экземпляра vncserver on два разных дисплея.
#!/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 на моем ПК с Windows, чтобы подключиться к дисплею 1 и отобразить два, что несколько подражает настройке с двумя экранами. Меня устраивает. Если у кого-то есть какие-либо предупреждения или соображения относительно того, почему этого не должно быть сделано, я был бы рад получить обратную связь.
Благодаря указателям steeldriver моя проблема заключалась в том, что мои настройки в шпаклере на моем компьютере были неправильными. Я использовал адрес удаленного сервера вместо использования «localhost». Чтобы удовлетворить мою потребность в двух дисплеях, я установил два разных туннеля в putty под тем же соединением:
localhost:5901
localhost:5902
Затем я модифицировал мой /etc/init.d/vncserver, чтобы запустить два экземпляра vncserver on два разных дисплея.
#!/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 на моем ПК с Windows, чтобы подключиться к дисплею 1 и отобразить два, что несколько подражает настройке с двумя экранами. Меня устраивает. Если у кого-то есть какие-либо предупреждения или соображения относительно того, почему этого не должно быть сделано, я был бы рад получить обратную связь.