archlinux 透明代理
🕊 纵使千山多万壑,犹有青鸾踏云间
Section titled “🕊 纵使千山多万壑,犹有青鸾踏云间”全球化浪潮无法阻挡,我们常常有访问一些资料的客观需求。但有的时候因为一些因素往往导致无法正常访问(包括但不限于终端中下载文件特别慢、无法访问部分网站、部分应用无法正常使用等)。虽然前路千沟万壑,但无法阻挡我们前行的脚步。本节我们通过设置透明代理解决这一问题
v2rayA
Section titled “v2rayA”v2rayA 的优势:
- 支持一键开启全局代理,配置方便
- 客户端运行在浏览器中,轻量
安装 v2ray 和 v2rayA:
Section titled “安装 v2ray 和 v2rayA:”sudo pacman -S v2ray v2raya
sudo pacman -S v2rayyay -S aur/v2raya
配置 v2rayA
Section titled “配置 v2rayA”安装后启动服务:
sudo systemctl enable --now v2raya
随后在开始菜单中搜索 v2rayA,点击即可打开浏览器页面。在其中加入订阅(没有魔法上网节点?请参考原文档相关内容)。在设置中建议开启全局透明代理(选择大陆白名单
),同时开启防止 DNS 劫持功能,否则可能会拿不到被 DNS 污染的资源(如 github raw)。
安装 dae 或 daed:
Section titled “安装 dae 或 daed:”sudo pacman -S dae daed
yay -S aur/dae aur/daed
配置 dae
Section titled “配置 dae”安装后启动服务:
sudo systemctl enable --now dae
sudo systemctl enable --now daed
然后你就可以参照官方文档来使用了:
dae:https://github.com/daeuniverse/dae/blob/main/docs/zh/README.md
daed:https://github.com/daeuniverse/daed/blob/main/docs/getting-started.md 安装完 daed 后,打开浏览器访问 http://localhost:2023 开始使用
安装和配置 Qv2ray
Section titled “安装和配置 Qv2ray”1. 安装 Qv2ray 和 V2Ray / Xray 内核
Section titled “1. 安装 Qv2ray 和 V2Ray / Xray 内核”通过以下命令安装 Qv2raycn 和 V2Ray / Xraycn 内核:
sudo pacman -S qv2ray-dev-git v2ray
sudo pacman -S qv2ray-dev-git xray
📑 相关资料:Qv2ray
Section titled “📑 相关资料:Qv2ray”Qv2ray 是一个使用 Qt 编写的跨平台的 v2ray 图形前端。
2. 配置 Qv2ray
Section titled “2. 配置 Qv2ray”- 打开 Qv2ray > 点击
首选项
:
- 在
内核设置
选项卡中,点击检查 V2Ray 核心设置
以验证 V2Ray 核心设置:
3. 配置订阅
Section titled “3. 配置订阅”- 在主窗口中点击
分组
:
- 修改
分组名称
的默认分组
为自定义名称(通常为 ✈ 场名称):
-
切换到
订阅设置
选项卡并进行如下配置:-
勾选
此组是一个订阅
-
设置
订阅地址
为 ✈ 场提供的订阅链接
-
点击
更新订阅
按钮并等待完成 -
点击
确定
以应用设置并关闭对话框
-
4. 通过系统代理方式尝试连接
Section titled “4. 通过系统代理方式尝试连接”- 双击分组中添加的订阅即可查看更新出的节点,右键并点击
测试延迟
可以测试分组或节点的延迟:
- 右键需要连接的节点 > 点击
连接到此服务器
即可连接:
- 打开不存在的网站验证连接:
5. 安装 cgproxy
Section titled “5. 安装 cgproxy”通过以下命令安装 cgproxycn / aur:
sudo pacman -S cgproxy-git
yay -S aur/cgproxy
6. 配置 Qv2ray 透明代理设置
Section titled “6. 配置 Qv2ray 透明代理设置”- 打开 Qv2ray >
首选项
>入站设置
> 取消勾选设置系统代理
:
- 勾选
透明代理设置
:
其它设置保持默认即可,IPv4 端口
可自定义为其它端口。
- 点击
确定
保存设置
7. 配置 cgproxy
Section titled “7. 配置 cgproxy”- 通过
vim
编辑/etc/cgproxy/config.json
文件:
sudo vim /etc/cgproxy/config.json
进行如下修改:
- 在
cgroup_proxy
中括号里加上"/"
(包含引号) - 将
port
改为 Qv2ray 首选项里的透明代理端口(默认是和 Qv2ray 默认对应的12345
) - 将
enable_dns
、enable_udp
、enable_ipv6
改为false
- 如果希望当本机作为网关设备时为连接到本机网关的其他设备(如连接到本机开设的 wifi 热点的设备)也提供透明代理,则将
enable_gateway
改为true
- 保存并退出
vim
8. 配置可用的 DNS 服务
Section titled “8. 配置可用的 DNS 服务”- 打开
系统设置
> 点击侧栏连接
:
- 选择当前连接 > 点击
ipv4
选项卡:
- 在
其它 DNS 服务器
中添加没有污染的 DNS 服务器:
- 保存并退出系统设置
9. 启动 cgproxy 服务
Section titled “9. 启动 cgproxy 服务”-
在 Qv2ray 中连接一个节点
-
在 Qv2ray 托盘菜单中关闭系统代理(如果已经启动)
-
通过以下命令启动 cgproxy 服务:
sudo systemctl start cgproxy.service
- 通过以下命令检查 cgproxy 服务运行情况:
systemctl status cgproxy.service
- 打开不存在的网站验证连接:
sudo setcap "cap_net_admin,cap_net_bind_service=ep" /usr/bin/v2ray
sudo setcap "cap_net_admin,cap_net_bind_service=ep" /usr/bin/xray
nekoray
Section titled “nekoray”一个基于 Qt 的跨平台客户端,后端基于 Xray 和 sing-box。
yay -S nekoray# yay -S nekoray-git #开发版
Clash 本身是一个网络连接的代理内核,通过预先定义的规则,对网络连接进行转发。Clash 内核规定了配置文件 config.yaml
的格式。支持 VMess、Shadowsocks、Trojan、Snell 协议。
Clash.Meta(现改名成 mihomo)(为了表达方便后面会使用 Meta 指代这个版本)是一个基于开源项目 Clash 的二次开发版本,增加了一些独有特性。支持所有原版 Clash 开源核心的全部特性,支持原 Clash Premium 核心部分特性。基于目前原版内核已无人维护且 Meta 更新较为活跃,更推荐使用 Meta 而非原版。
Meta 的大体配置步骤可参考官方教程,其中的 config.yaml
配置文件需要自己新建并填入内容,配置文件可直接复制 Meta 官方文档的配置示例-懒人配置,在 proxy-providers
补充你的 ✈ 场提供的订阅链接即可。
原版 Clash 配置方法
# 配置文件vim ~/.config/clash/config.yaml
如果你有一个 ✈ 场提供的订阅链接,可以通过以下指令手动配置到 Clash:
curl -A clash -o ~/.config/clash/config.yaml <SUSCRIPTION_URL># 使用`clash`的用户代理(UA)。# 请将 <SUSCRIPTION_URL> 替换成你的订阅链接。
Clash-verge-rev
Section titled “Clash-verge-rev”Clash-Verge 目前的继任者(原版仓库目前还在存档),基于 tauri 框架开发的开源跨平台 Clash 客户端(远离 Electron 从我做起)
yay -S clash-verge-rev-bin
Clash for Windows(不建议,现已停止更新)
Section titled “Clash for Windows(不建议,现已停止更新)”这是一个功能较全的客户端,支持 Windows/macOS/Linux ,基于 Clash 和 Electron 的一个 GUI 客户端。未开源
yay -S clash-for-windows-bin
其它代理方法(非透明代理)
Section titled “其它代理方法(非透明代理)”虽然 cgproxy 很好,但有的时候就是会有诡异的 bug。本指南为了内容的全面性,介绍其它的代理方法。
如步骤 4. 通过系统代理方式尝试连接 所述,但在很多应用不生效(主流浏览器已支持 KDE 的系统代理)。
应用自身的代理配置
Section titled “应用自身的代理配置”Firefox
Section titled “Firefox”Firefox 可使用系统代理,也可手动配置:
Telegram
Section titled “Telegram”- 点击
Settings
>Advanced
>Connection type
>Use custom proxy
- 点击
ADD PROXY
> 填写合适的类型和端口 >SAVE
:
Visual Studio Code(code OSS)
Section titled “Visual Studio Code(code OSS)”-
点击
File
(文件
) >Preference
(首选项
) >Settings
(设置
) -
搜索
proxy
,在其中填入 http 代理地址(http://127.0.0.1:xxxx
)即可:
export
Section titled “export”通过以下 export
命令设置当前终端的代理方式:
export https_proxy=http://127.0.0.1:xxxxexport http_proxy=http://127.0.0.1:xxxxexport all_proxy=http://127.0.0.1:xxxx
proxychains-ng
Section titled “proxychains-ng”如果对于一个应用,KDE 系统代理不生效,在终端 export
了 ALL_PROXY
变量再用终端启动此应用代理也不生效,并且这个应用自身也没有配置代理的选项,此时可以尝试使用 proxychains-ng。
它可以为单行命令配置代理。它是一个预加载的 hook,允许通过一个或多个 SOCKS 或 HTTP 代理重定向现有动态链接程序的 TCP 流量。
- 通过以下命令安装 proxychains-ng 包:
sudo pacman -S proxychains-ng
- 通过
vim
编辑/etc/proxychains.conf
文件:
sudo vim /etc/proxychains.conf
把配置文件中最后两行改为 Qv2ray 代理的 ip 和端口:
在 proxy_dns
一行前添加 #
注释掉此行,否则使用 proxychains
启动 yay 会报错:
在 quiet_mode
一行前删除 #
解注释掉此行,以关闭调用 library 产生的输出:
# Quiet mode (no output from library)quiet_mode
- 使用代理方式为在单一命令前添加
proxychains
前缀:
proxychains %command%
如使用 proxychains-ng 代理 yay:
proxychains yay -Syu
📔 本节参考资料: