用于无头式 Ubuntu 14.04 的 vnc 服务器

用于无头式 Ubuntu 14.04 的 vnc 服务器

所以,我遇到了 vnc4server 问题,s 和 tab 键都坏了,我想尝试其他东西。我试过 x11vnc,但这需要实际的显示器连接到系统。还有其他 vnc 程序可以尝试吗?

答案1

以下是对我有用的东西。(原始来源http://www.howtoforge.com/how-to-install-vnc-server-on-ubuntu-14.04

做这些

(1)运行sudo apt-get update && sudo apt-get upgrade

(2)运行sudo apt-get install gnome-core xfce4 vnc4server

(3)然后添加用户(vncserver/unix)

sudo adduser test1   

(之后你必须填写用户的详细信息,我已为 vnc 服务器添加了 3 个用户(test1、test2、test3 等)

(4)然后你必须逐个切换用户并运行vncserver并为vncuser登录添加密码(我有三个 vnc 用户,所以我必须对所有三个用户测试 1、test2、test3 重复此操作)

su - test1

然后运行

vncserver

输出将像这样提示输入 vnc 密码。

You will require a password to access your desktops.

Password:
Verify:

xauth:  file /home/test1/.Xauthority does not exist
New 'server1:1 (test1)' desktop is server1:1
Creating default startup script /home/test1/.vnc/xstartup
Starting applications specified in /home/test1/.vnc/xstartup
Log file is /home/test1/.vnc/server1:1.log

(5)重要提示:你必须用以下内容替换 /home/test1/.vnc/xstartup 内容(否则,您将无法获得桌面,而是会陷入没有用户界面或菜单的空白屏幕)

vim /home/test1/.vnc/xstartup

并添加

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

(6)使用以下脚本创建 vncserver 的启动脚本“接下来我将像这样为 vncserver 制作启动脚本”部分这个教程

sudo vim /etc/init.d/vncserver

并添加以下内容..

#!/bin/bash

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}
stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

要使其成为可执行文件,请运行以下命令。

chmod +x /etc/init.d/vncserver

(7)为了使 vnc 桌面会话在启动时自动分配给用户,请在 /etc/vncserver 中创建以下脚本

sudo mkdir -p /etc/vncserver
sudo vim /etc/vncserver/vncservers.conf

在 vncservers.conf 中添加此项(这是因为我的用户为 test1、test2、test3,请根据以下内容进行更改)

VNCSERVERS="3:test3 2:test2 1:test1"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
VNCSERVERARGS[3]="-geometry 1024x768"

(8)然后运行

sudo `update-rc.d vncserver defaults 99`

(9)重启服务器(现在差不多完成了)第 10 步,剩下的是如何登录部分

(10)下载http://www.realvnc.com/download/viewer/

输入服务器名称/IP 地址和会话 ID,例如我的服务器是 172.16.70.17,如果我使用 172.16.70.17:2,它将登录到 test2 用户桌面。而 172.16.70.17:3 将同样登录到 test3 用户桌面

确保选择加密“优先关闭”

图片

图片

然后您就可以以这种方式访问​​您的桌面和应用程序。

图片

答案2

将以下内容放入您的/etc/init.d/vncserver文件中,然后关于没有 LSB 标头的错误将消失。

\#\#\# BEGIN INIT INFO

\# Provides:          vnc4server

\# Required-Start:    $local_fs $network

\# Required-Stop:     $local_fs

\# Default-Start:     2 3 4 5

\# Default-Stop:      0 1 6

\# Short-Description: vnc4server

\# Description:       VNC4 Server as a startup daemon

\#\#\# END INIT INFO

相关内容