在 archlinux 安装配置 VNC Server

发布于 2023-03-10 23:21:27 字数 3402 浏览 182 评论 0

安装 TigerVNC

sudo pacman -S tigervnc --noconfirm

启动 VNC Server

直接运行 vncserver 会初始化一个配置文件,再此期间会提示你输入并确认登陆 SVN Server 的密码

[lujun9972@T520 ~]$ vncserver

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

New 'T520:1 (lujun9972)' desktop is T520:1

Creating default startup script /home/lujun9972/.vnc/xstartup
Creating default config /home/lujun9972/.vnc/config
Starting applications specified in /home/lujun9972/.vnc/xstartup
Log file is /home/lujun9972/.vnc/T520:1.log

注意上面输出内容中的 T520:1,其后面的 :1 暗示了 server 监听的 TCP 端口为 5900+1=5901

类似的,若你重新再运行一个 svnserver 实例

[lujun9972@T520 ~]$ vncserver 

New 'T520:2 (lujun9972)' desktop is T520:2

Starting applications specified in /home/lujun9972/.vnc/xstartup
Log file is /home/lujun9972/.vnc/T520:2.log

则这个新实例监听的TCP端口为 5900+2=5902

也就是说,若实例的编号为 :X 则监听的端口为 5900+X

当然,在启动时,我们也可以直接指定编号,比如

[lujun9972@T520 .vnc]$ vncserver :4

New 'T520:4 (lujun9972)' desktop is T520:4

Starting applications specified in /home/lujun9972/.vnc/xstartup
Log file is /home/lujun9972/.vnc/T520:4.log

通过 systemd 自动启动 VNC Server

tigervnc 安装后会有一个 service 模板单元,路径为 /usr/lib/systemd/system/vncserver.service,我们只需要通过它拷贝出一个实例,然后设置其中的 USER 参数即可

sudo cp /usr/lib/systemd/system/vncserver.service /etc/systemd/system/vncserver@:1.service
sudo sed -i "/^User=/ s/$/$USER/" /etc/systemd/system/vncserver@:1.service

然后启用该 service:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service

关闭 VNC Server

使用 vncserver -kill :X 可以关闭指定编号的 VNC Server

[lujun9972@T520 ~]$ vncserver -kill :2
Killing Xvnc process ID 10148

配置 VNC Server

VNC Server 的启动脚本

VNC Server 在启动时会运行 ~/.vnc/xstartup 来初始化图形环境.

默认 VNC Server 会查找并根据 /etc/X11/xinit/xinitrc 来初始化图形环境,我们可以修改下让它使用我们自己配置的图形环境,只需要将 /etc/X11/xinit/xinitrc 改成 ~/.xinitrc 即可

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
    case "$WINDOWMANAGER" in
        *gnome*)
            if [ -e /etc/SuSE-release ]; then
                PATH=$PATH:/opt/gnome/bin
                export PATH
            fi
            ;;
    esac
fi
if [ -x ~/.xinitrc ]; then
    exec ~/.xinitrc
fi
if [ -f ~/.xinitrc ]; then
    exec sh ~/.xinitrc
fi

VNC Server 的其他配置信息

~/.vnc/config 中则可以对 VNC Server 本身进行参数设置,比如我们可以配置一下分辨率

# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
dpi=96

登陆 VNC Server

直接运行 vncivew ${server}:${port},然后输入密码即可登陆 VNC Server 了

screenshot-59.png

不过 VNC 协议是没有加密的,可能被嗅探,因此推荐通过 SSH tunnel 进行封装

ssh -L 5901:127.0.0.1:5901 -N -f -l ${username} ${server}

这样运行 vncview localhost:5901 就能通过 SSH tunnel 来登陆 VNC Server 了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
22 人气
更多

推荐作者

小瓶盖

文章 0 评论 0

wxsp_Ukbq8xGR

文章 0 评论 0

1638627670

文章 0 评论 0

仅一夜美梦

文章 0 评论 0

夜访吸血鬼

文章 0 评论 0

近卫軍团

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文