Ethan's Blog

记录和思考

Ubuntu 18.04 中安装 Xfce 和 SVN 开启远程桌面访问

Linux VPS Server 一般都没有桌面环境,因此也不能使用远程桌面连接,但是有时候可能需要在桌面环境下进行开发测试,因此可以使用一个轻量级的桌面环境软件 Xfce 来使得 Linux 具备远程桌面的功能。这篇文章记录在 Ubuntu 18.04 中安装 Xfce 和 SVN 开启远程桌面访问。

1. 安装 Xfce

使用以下代码安装 Xfce 桌面环境:

sudo apt-get install xfce4

2. 安装远程桌面分享软件 VNC Server

使用以下代码安装 VNC Server:

sudo apt-get install vnc4server

3. 配置 VNC Server

通过第 2 步安装完成 VNC Server 后,首先键入 vncserver 设置当前用户的登陆密码:

vncserver 设置当前用户的登陆密码

此时,VNC Server 默认启动了一个显示器窗口,以 :1 标识。如果后续启动多个显示器窗口示例,则会以 :2 , :3 等等进行标识。

需要注意的是,设置的登陆密码长度最长为 8 位。可以看到图中显示 VNC Server 的默认启动脚本位于 /root/.vnc/xstartup ,将此默认脚本备份后,修改此默认启动脚本,替换其中的内容为以下代码:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
startxfce4 &

然后使用以下命令重新启动 VNC Server。

# 结束前面产生的窗口 1
vncserver -kill :1

重新启动窗口
vncserver

4. 使用 VNC Viewer 远程连接

https://www.realvnc.com/en/connect/download/viewer/ 下载 VNC Viewer,建议直接下载 standalone 版本即可,下载下来直接双击就可运行进行桌面远程连接。

注意进行远程桌面之前,需要确认防火墙是否开放了 VNC Server 远程连接的端口。VNC Server 默认端口是 5900,每建立一个连接,VNC 端口号 +1,同时,还会启动一个桌面进程,从 6001 起,与前面的 VNC 服务对应。因此,对于第一个 VNC 窗口,我们需要开放的端口是 5901。

双击打开下载完成的 VNC Viewer 客户端,点击 new connection,填入自己的服务器加上窗口的端口号,形如 ip:5901,根据提示输入之前设置的密码即可连接成功。

VNC Viewer 远程连接

5. 设置 VNC Server 开机自启

根据前文的设置,我们已经可以远程桌面连接 Ubuntu 了,但是如果机器重启,VNC Server 并不会随之开机自启,下面记录为 VNC Server 配置开机自启。

我们将 VNC Server 定义为 systemd 服务,这样可以在需要的时候方便地启动、停止和重启服务。

首先,新建一个单元文件:/etc/systemd/system/vncserver@.service

sudo vi /etc/systemd/system/vncserver@.service

把以下代码拷贝,注意要修改用户名 User 和 PIDFILE 的路径信息:

[Unit]
Description=Start VNC Server at startup by ethanblog.com
After=syslog.target network.target

[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

保存文件后,使用以下代码重载 systemd 的单元文件:

sudo systemctl daemon-reload

启用 VNC Server 的单元文件,并通过 --now 参数同时启动服务:

sudo systemctl enable --now vncserver@1

符号 @ 后面的数字 1 代表窗口序号。

使用以下命令检查运行状态:

sudo systemctl status vncserver@1

VNC Viewer systemd 运行状态

如图,表示运行成功。

相关文章: