代理客户端选择
代理客户端选择
有关于各代理客户端的性能 benchmark,请看这里。
Clash 系
20231102-20231103 Clash 系几乎全部删库跑路。虽然也有一些 fork 版本接手就是了。
不过我不推荐使用,除非你用的是只提供 clash 配置的机场。
详情
Clash Verge
开源跨平台 Clash 客户端,rust + tauri 使我非常放心。
相比Clash for Windows,其拥有更小的体积(66MB,vs 240MB)与开放性,图形界面不相上下,而对于一般使用者无关紧要的功能会更少一些。
其 设置热键 的功能也是我非常喜欢的一点。不过由于 VPS 自建节点的原因,懒得做订阅转换,放弃了 Clash Verge 而去使用了 v2rayN。
简易教程
我们可以先在设置中将其语言调成中文。
类似地,在 配置 中粘贴订阅链接,下载并选中,然后就可以在 代理 中使用节点了。记得在 配置 中打开 系统代理 选项。
Clash for Windows
简介
Clash for Windows 是闭源的 PC 客户端。(然而因为一个 bug导致我转向了 Clash Verge。)
下载地址
优势
- 优秀图形界面
- 简单易上手
简易配置教程 v0.19.16
- 在 Profiles 中的文本框内粘贴订阅链接并下载。选中下载的配置文件。
- 进入 Proxies,选择 rule,点击测速图标并在下方选择一个可用节点。
- 进入 General,开启 System Proxy。
一些提示
- 这里提供 clash 的汉化。
- 在节点界面点击测速图标测试全部节点的连通性
- 建议设置配置文件自动更新(Profiles -> 右击配置文件 -> Settings -> Update Interval 设为 24)
Clash For Android
20231103 继 CFW 删库后,Clash 内核与 Meta 核均删库跑路。
请前往谷歌商店或前往 github 下载。私链
其他
V2ray 系
V2rayN
V2rayN 是 V2ray 的 windows 前端,支持自定义协议,也可以更换内核。
相比于 clash,v2ray 主战场在自建节点的方向。由于 clash 订阅本质上是一组节点+规则,单个特定协议的节点无法直接导入 clash,因此使用 v2ray 能手搓配置文件的当我没说。但是 v2ray 也能使用 clash 配置文件。
- 前往 PC 客户端项目地址,下载
v2rayN-With-Core.zip
。(我以前是自己配内核的,但是后来发现问题太多了,还有跨版本兼容性,真不如 with core) - 复制节点地址,按
Ctrl+V
导入,按Enter
激活。 - 测试真连接延迟,确保节点有效。
- 下方 系统代理 处选择 自动配置系统代理,开启代理。
若为订阅链接:
- 点击加号,在订阅分组设置中,将订阅链接填入 URL。别名随便写。
- 订阅分组 - 更新全部订阅
- 一键测延迟/速度,选择节点双击激活。
- 同上方 4.
V2rayNG
v2ray 的 Android 前端。
NekoRay
基于 Qt 的代理前端,支持 V2ray & sing-box 内核。
记得好像有停更过一阵子,仓库提交记录是 2022 开始的,找不到。
v2rayA
v2rayA 的质量其实一般(感觉 v2ray 内核速度比我的 windows V2rayN 用的 Xray 内核差)。不过有一个易于使用的网页面板,对于初入 linux 的 user 是非常友好的。
sudo pacman -S v2raya
sudo v2raya
# 也可以不用 sudo:`v2raya --lite`
# fishshell
set -Ux ALL_PROXY "http://127.0.0.1:20172" # 必须加 -x, 否则系统代理无效
之后的操作都在网页上进行。使用系统代理端口为 http://127.0.0.1:20172
,这个端口带自动分流。
如果需要后台运行,开机自启,可以参考文档:systemctl --user enable --now v2raya-lite.service
用 sudo 和不用 sudo 的区别主要是透明代理的支持。显然 --lite
是不能开透明代理的。
qv2ray
2017 年左右的很多油管教程都会推荐 qv2ray。qv2ray 停止维护过一段时间(?),但是我在 2024 年看的时候是有人接手维护的。我没用过。
sing-box 系
sing-box 系 指基于 sing-box 内核的一堆代理软件。sing-box 号称是 The universal proxy platform,以支持的协议多闻名。
缺点就是 bug 也多。
- NekoBox:Matsuri 的继任,Android 端的好选择。
- Matsuri:项目已 archived。之前用过一阵,后面换回 V2rayNG 了。
- SagerNet:前两位的 base。试了一下 hysteria 插件,不可用,遂无兴趣。
并且观测到一个很有趣的现象:在 Android 上,成功(以打断 V2rayNG 方式?)启动过 sing-box 后,之后的 V2rayNG 启动连接的速度会变慢,变为需要约 1s-2s+。
daed
根据 dae 的官方测试,(与 v2raya 相比)确实是基于 eBPF 的 dae 速度更快,但不是快特别多
——Au, src
daed 是网页面板的开源代理软件,dae 的前端,而 dae 基于 eBPF[1],仅支持 linux。由于比较新,目前使用的人不多。
这是我目前用过的最舒服的代理软件,可以维护多个节点池,对于池中节点取最小延迟使用,并能根据不同规则进行节点池分流。例如香港不能用 tg,那就多建一个节点池,加一条分流规则就行。
- 安装:
sudo pacman -S daed sudo systemctl enable --now daed # 启动,并设为开机自启
- 浏览器进入
localhost:2023
- 一路确定。例如数据库后端使用默认值:
http://127.0.0.1:2023/graphql
,首次登录会要求设账号密码,设一个即可。 - 导入节点信息,拖拽到左侧 proxy 即可。
踩坑:
- daed 默认使用透明代理,没有 socks/http 端口。如果有设置
ALL_PROXY
等系统代理变量记得取消;firefox 需要在代理设置中设为 自动探测网络环境。 务必将 配置 - global - 连接选项 - 拨号模式 设为 ip(默认值)。否则可能无法使用 chatgpt。经测试,非此问题。
需要写规则可以参考这里。
软件数据存储在 /etc/daed/wing.db
(sqlite 数据库),如果需要备份、改账号密码,需要先给 rw 权限,然后用数据库软件更改。
daed 的一个缺点是无法主动测试节点连通性。但是 daed 默认每 30s 会测试一次节点延迟,你可以 journalctl -eu daed
查看其日志,获取信息。
dae
在 NixOS 上 nixpkgs 没有 daed 的包,只有 dae 能够直接使用。而 dae 官方提供了一个 flake.nix 配置(包含 dae 和 daed),我现在推荐使用此 flake,因为 flake 的版本更新,也包含了最新的 bug 修复;但是我之前踩了这玩意一个坑,因此在 bug 解决之前我还是回退到 nixpkgs 的 dae。
不使用 daed 还有一个原因:不符合 NixOS 的确定一切的思想。特定位置存的 sqlite 总归是不如用 git 管理配置文件的。
我已经用了很长一段时间的 daed,写 dae 配置文件可以说是非常简单;而且 dae 的官方教程确实非常不错,把 example 下载下来对着改就行,内含丰富注释。这里由于隐私问题,我并未把我的配置公开,而是加密后上传到 github。
改完配置以后,直接在 configuration.nix
中写:
services.dae = {
enable = true;
configFile = "<your/config/file/path>"; # 必需是绝对路径字符串,看我的踩坑
assets = with pkgs; [
v2ray-geoip
v2ray-domain-list-community
];
};
rebuild 后重启即可(不直接生效,是 eBPF 的特性?)。这分流不比 v2rayA 爽多了?
当然,如果你的配置主目录不一定在 /etc/nixos
下,使用绝对路径确实不算明智。这时候可以用一个比较脏的方法,监听 config 的改动,并且每次改动时将最新版本复制到特定绝对路径里。
# configuration.nix
dae = {
enable = true;
# dae needs 0600 permission, but we cannot source file with permission.
# related issue: https://github.com/nix-community/home-manager/issues/3090
configFile = "/home/absx/.config/absx_.dae";
assets = with pkgs; [
v2ray-geoip
v2ray-domain-list-community
];
};
# home.nix
home.file = {
".config/absx.dae" = {
source = ./config/absx.dae;
onChange = ''
rm -f ~/.config/absx_.dae
cp ~/.config/absx.dae ~/.config/absx_.dae
chmod 0640 ~/.config/absx_.dae
'';
};
};