最佳代理实践 (2026-2-3)
Proxy
2026-02-03 2285字

购买机场

因为我需要那种超级稳定, 支持 SSH, 同时国家节点特别多的顶级机场, 经过网友的推荐, 最后买了 Nexitally 家的, 全世界节点 135 个, 延迟非常低, 很给力哇。

安装 v2raya

ArchLinux 用yay -S v2raya 命令一键安装 v2raya

添加订阅

订阅机场: Nexitally 机场购买后, 等一下, 在 Ss & Trojan 页面点击对应操作系统平台的 Shadowsocks 拷贝机场订阅 URL, 然后在浏览器打开 http://127.0.0.1:2017, 打开 v2raya 的配置界面, 点击导入按钮导入。

选择服务器: 选择 CDN.KINETICBLOOM.ORG 标签, 选择一个合适的服务器, 然后选择左上角启动按钮,开启代理。

备注: 奶昔现在为了防止攻击, 它需要你登录以后去掉备用梯子, 然后点击订阅的地方等 60s

配置 v2raya

http://127.0.0.1:2017 右上角点击配置, 进行如下配置:

  1. 透明代理/系统代理: 启用: 分流规则与规则端口所选模式一致
  2. 透明代理/系统代理实现方式: tproxy (tproxy 对 nftables 支持更好, ArchLinux 最新用的 nftables, redirect 兼容性查)
  3. 规则端口的分流模式: RoutingA, 右边的规则配置见下面
  4. 防止 DNS 污染: DoH (DNS-over-HTTPS)
  5. 特殊模式: 关闭 (不要选择 supervisor, 这个选项会导致懒猫微服应用打不开)
  6. TCPFastOpen: 关闭
  7. 嗅探: Http + TLS + Quic
  8. 多路复用: 关闭
  9. 自动更新订阅: 关闭

保存后,再次打开设置按钮,点击弹出对话框右上角 ‘更新’ 按钮, 更新 GFWList。

奶昔的机场不要自动更新订阅, 要不会发生错误 failed to start v2ray-core: LocateServerRaw: ID or Sub exceed range, 如果遇到, 就删除 “/etc/v2raya” 目录下所有文件, 然后重启 v2raya sudo systemctl restart v2raya 后, 重新配置即可。

规则配置

default: proxy

domain(domain:163.com, domain:qq.com, domain:wechat.com)->direct
domain(domain:jd.com, domain:taobao.com)->direct
domain(domain:heiyu.space, domain:lazycat.cloud)->direct

domain(domain:unsplash.com)->proxy

domain(geosite:google-scholar)->proxy
domain(geosite:category-scholar-!cn, geosite:category-scholar-cn)->direct
domain(geosite:geolocation-!cn, geosite:google)->proxy
domain(geosite:cn)->direct
ip(geoip:hk,geoip:mo)->proxy
ip(geoip:private, geoip:cn)->direct

第一段是默认走代理,第二段设置一些直连的域名(比如微信、QQ、网易云、京东、淘宝、懒猫微服),第三段设置一些国外走代理的网站,最后一段设置一下大陆走直连的域名。

这样设置不影响微信客户端启动, 比 GFWList 方便, 因为防火墙列表不一定全面, 很多新认证的网站范围上不了。

手机端

手机端我用 v2rayNG 客户端, 直接在 Nexitally Ss & Trojan 页面找到 Android 的 Shadowsocks 的订阅地址, 导入到 v2rayNG 即可。

替换系统DNS

Arch Linux 自己的 DNS 用的是 systemd-resolved, systemd-resolved 自己的 DNS 策略会导致路由器 192.168.1.1 , 这样会导致 DNS 污染, 因为 tproxy 没有正确拦截到 DNS 流量。

用下面方法可以修复系统 DNS 和 v2raya 冲突的问题

# 让系统直接用外部 DNS,这样 tproxy 才能拦截
sudo mkdir -p /etc/systemd/resolved.conf.d/
echo -e "[Resolve]\nDNS=8.8.8.8\nDNSStubListener=no" | sudo tee /etc/systemd/resolved.conf.d/no-stub.conf
sudo systemctl restart systemd-resolved

# 修改 /etc/resolv.conf 指向真实 DNS
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

# 重启 v2raya
sudo systemctl restart v2raya

恢复系统默认 DNS 设置的方法

# 删除配置文件
sudo rm /etc/systemd/resolved.conf.d/no-stub.conf

# 恢复默认的 resolv.conf 软链接
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

# 重启服务
sudo systemctl restart systemd-resolved