一、安装VNC
键入以下命令以在 Ubuntu 服务器上安装 TigerVNC :
sudo apt install tigervnc-standalone-server tigervnc-common
现在安装了 VNC 服务器,下一步是运行 vncserver 命令,该命令将创建初始配置并设置密码。运行以下命令时不要使用 sudo :
vncserver
在继续下一步之前,首先使用带有 -kill 选项和服务器编号作为参数的 vncserver 命令停止 VNC 实例。在我们的例子中,服务器在端口 5901 (:1)中运行,因此我们将使用以下命令停止它:
1.启动vnc服务:
vncserver -localhost no
2.查看vnc运行状态:
vncserver -list
3.关闭vncC显示器
vncserver -kill :1
4.查找 vnc
ps -ef | grep vnc ubuntu.desktop
5.查找端口
netstat -ano | grep 5901
二、设置开机自启
1、编写启动脚本
nano /usr/lib/python3/start_vncserver.sh
复制下面到脚本
#!/bin/bash
echo "start vncserver...oooooooooooooo"
nohup /usr/bin/vncserver -SecurityTypes=None -rfbport=5901 -localhost no --I-KNOW-THIS-IS-INSECURE &
#!/bin/bash
echo "start vncserver...oooooooooooooo"
nohup tigervncserver -xstartup /usr/bin/xterm -SecurityTypes=None -rfbport=5901 -localhost no --I-KNOW-THIS-IS-INSECURE &
2、附加权限
chmod u+x /usr/lib/python3/start_vncserver.sh
3、编写.service脚本
sudo nano /etc/systemd/system/tigervnc.service
4.1.复制下面到脚本
[Unit]
Description=TigerVNC Service(VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/echo "exec pre"
ExecStartPre=/sbin/runuser -l root -c "/bin/rm -rf /tmp/.X*"
ExecStart=/sbin/runuser -l root -c "/usr/lib/python3/start_vncserver.sh"
[Install]
WantedBy=multi-user.target
4.2.通知 systemd 我们创建了一个新的单元文件:
sudo systemctl daemon-reload
4.3.启用单元文件:
sudo systemctl enable tigervnc.service
4.4.执行以下命令启动 VNC 服务:
sudo systemctl start tigervnc.service
4.5.验证服务是否已成功启动:
sudo systemctl status tigervnc.service
4.6.重启服务器
sudo reboot
在当前用户目录下创建可执行文件~/.vnc/xstartup,内容如下:
#!/bin/sh
#unset SESSION_MANAGER
#unset DBUS_SESSION_BUS_ADDRESS
#exec startxfce4
unset SESSION_MANAGER
#unset DBUS_SESSION_BUS_ADDRESS #测试中发现如果去掉该行注释 桌面不会出现
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey #设置背景色
vncconfig -iconic &
gnome-terminal & #连接后会直接打开一个terminal窗口
nautilus & #连接后会直接打开一个文件窗口
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
对于exec值,请使用以下命令检查您的桌面会话:
ls /usr/share/xsessions/
在那里您可以找到类似以下内容的.desktop文件:
zkhx@zkhx-desktop:/lib/aarch64-linux-gnu$ ls /usr/share/xsessions/
ubuntu.desktop xfce.desktop
zkhx@zkhx-desktop:/lib/aarch64-linux-gnu$ cat /usr/share/xsessions/ubuntu.desktop
[Desktop Entry]
Name=Ubuntu
Comment=This session logs you into Ubuntu
Exec=env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
TryExec=/usr/bin/gnome-shell
Type=Application
DesktopNames=ubuntu:GNOME
X-GDM-SessionRegisters=true
X-Ubuntu-Gettext-Domain=gnome-session-3.0
打开你对vnc会话感兴趣的桌面环境的文件,并检查那里的Exec变量,对我来说它是cgnome-session。所以我的~/.vnc/xstartup是这样的:
#!/bin/sh
#unset SESSION_MANAGER
#unset DBUS_SESSION_BUS_ADDRESS
#exec startxfce4
unset SESSION_MANAGER
#unset DBUS_SESSION_BUS_ADDRESS #测试中发现如果去掉该行注释 桌面不会出现
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey #设置背景色
vncconfig -iconic &
gnome-terminal & #连接后会直接打开一个terminal窗口
nautilus & #连接后会直接打开一个文件窗口
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
之后使用vncserver -localhost no命令启动。
这个没有或者写错了会出现黑屏或者启动失败的情况
开一个文件窗口
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
之后使用vncserver -localhost no命令启动。
这个没有或者写错了会出现黑屏或者启动失败的情况