为无头服务器配置带 GUI 的 Clash 客户端:基于 Xvfb + VNC 的解决方案
自从这香橙派买来作为服务器之后,不管是在校还是在家,除了在外使用流量的场景,几乎都是通过这服务器连接校园网或自家的宽带、通过create_ap
进行上网的。直到某天突然想到,既然我都通过它上网了,那为啥还要在其他设备上再专门跑一个网络代理应用?🤔
于是就开始尝试在服务器上配置Clash...
但不得不说这种没有图形界面,不管是导入配置、切换节点似乎都挺不方便的,只好想了个笨方法:通过xvbf
+VNC
运行带有GUI界面的Clash版本。
具体操作
- 下载一个好用的Clash客户端,这里我用的
Clash-Verge
. - 安装
xvfb
和VNC
, 运行如下代码。其中xvfb
负责提供虚拟 X 环境,x11vnc
负责将 X11 桌面共享为 VNC。
sudo apt install -y xvfb x11vnc
- 启动桌面环境+VNC,如下。不过建议开启一个tmux会话,在会话内部运行,防止终端退出后启动的应用也停止。
# 启动虚拟桌面 :1,大小 1280x800
Xvfb :1 -screen 0 1280x800x24 &
# 设置 DISPLAY 环境变量
export DISPLAY=:1
# 启动 VNC 服务器,设置密码
x11vnc -display :1 -passwd yourpassword -forever -nopw -shared &
- 接下来就是启动Clash客户端了,直接运行即可。
clash-verge
- 在自己电脑上下载VNC客户端,这里用的是TigerVNC。
yay -S tigervnc
- 发起连接,
x11vnc
的默认VNC端口为5900,记得对自己本地设备放开防火墙。
注意这里是两个冒号,至于为啥是两个...ChatGPT这样解释的:
格式 | 说明 | 实际连接端口 |
---|---|---|
192.168.12.1:0 | 连接 VNC display :0 | 5900 |
192.168.12.1:1 | display :1 | 5901 |
192.168.12.1::5900 | 直接连接端口5900(而非通过 display 号) | 5900 |
- 接下来输入第3步中设置的VNC服务器密码,就能够正常看到熟悉的带有GUI界面的Clash客户端了。代理啥的正常配置即可,在本地设备配置时同样也需要注意对设备放开防火墙。
总结
虽然这个方案在资源占用上不算轻量吧,但也还能用,当然如果不想放弃轻量+可视化这两个点的话,也可以去尝试 clash核心+yacd 这种思路。
许可协议:
CC BY 4.0