![用于无头式 Ubuntu 14.04 的 vnc 服务器](https://linux22.com/image/980821/%E7%94%A8%E4%BA%8E%E6%97%A0%E5%A4%B4%E5%BC%8F%20Ubuntu%2014.04%20%E7%9A%84%20vnc%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
所以,我遇到了 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