archlinux安装VNC服务器

完全参照:https://wiki.archlinux.org/index.php/Virtual\_Network\_Computing_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29

安装tigervnc

这是一个TightVNC的linux实现
以你需要的用户身份执行vncserver第一次启动、设置密码并测试服务器
默认的是第一个桌面:1
实际端口是5900+1

如下指令可以关闭某个桌面

1
vncserver -kill :1

可以编辑~/.vnc/xstartup文件来设置vnc使用的桌面环境
此文件功能类似于.xinitrc
可参照xinitrc来编辑

hit: 简单的编辑方法是
注掉所有exec开头的行
并且注掉末尾最后一个exec行前面的连续几行(这几行末尾有&,是和exec同时执行的内容)
可添加如下指令在文件末尾启动桌面环境
exec startxfce4

windows下使用TightVNC连接即可

设置开关机行为
示例文件在 /usr/lib/systemd/system/vncserver.service

1
cp /usr/lib/systemd/system/vncserver.service /etc/systemd/system/vncserver@:1.service

然后编辑/etc/systemd/system/vncserver@:1.service
可以看到其中有使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# The vncserver service unit file 
#
# 1. Copy this file to /etc/systemd/system/vncserver@:x.service
# Note that x is the port number on which the vncserver will run. The default is 1 which
# corresponds to port 5901. For a 2nd instance, use x=2 which corresponds to port 5902.
# 2. Edit User=
# ("User=foo")
# 3. Edit and vncserver parameters appropriately
# ("/usr/bin/vncserver %i -arg1 -arg2 -argn")
# 4. Run \`systemctl --system daemon-reload\`
# 5. Run \`systemctl enable vncserver@:<display>.service\`
#
# DO NOT RUN THIS SERVICE if your local area network is untrusted!
#
# See the wiki page for more on security
# https://wiki.archlinux.org/index.php/Vncserver

其实我们只需要在User=后面添加我们的用户名即可
如果有需要的话可以修改ExecStart这一项添加启动参数的方式改变行为
之后重载systemctl

1
systemctl --system daemon-reload

再启动服务

1
systemctl enable vncserver@:<display>.service

即可使用

在使用时可以发现VNC不会自动根据客户机改变桌面分辨率
所以我们可以在启动参数中设置一个分辨率

比如wiki上的示例

Vncserver 通过开关(命令行参数)来提供灵活性。下面的例子启动具有特定分辨率、允许多用户同时观看/控制且设置 dpi 为 96 的 VNC 服务。
$ vncserver -geometry 1440x900 -alwaysshared -dpi 96 :1

如需要完整的选项表,向 vncserver 传递 -help 开关。

1
vncserver -help