基于 fwmark 或 sendThrough 的流量重定向
通过 Xray 将特定的流量指向特定出口,实现全局路由“分流”
前言
之前在网络上看到许多代理或者 VPN 会接管全局路由,如果与 Xray 同时安装,会导致 Xray 失效。参考了网络上许多教程,及时分流,也是通过维护一张或者多张 CIDR 路由表来实现的。这种情况下并不优雅,如果我想可以任意替换,实现按需分流,那有没有更好的办法呢?有!
通过 fwmark 或 Xray 的 sendThrough,再简单配合路由表功能即可实现:
- Xray 可设置指定的 Tag、域名等走指定接口。如果您的接口是双栈的,可以指定 IPV4 或者 IPV6
- 其余用户则走原 IPV4 或者 IPV6
具体设置如下(以 Debian10 为例):
1、安装代理或者 VPN 软件(例如 Wireguard、IPsec 等)
根据不同系统和不同软件,请参考官方安装方法
2、编辑 VPN 配置文件(以 WireGuard 为例)
原始文件:
保存
可顺手安装
bash
apt install openresolv1
3、启用 WireGuard 网络接口
加载内核模块
bash
modprobe wireguard1
检查 WG 模块加载是否正常
bash
lsmod | grep wireguard1
4、Xray-core 配置文件修改
TIP
可以通过修改 "domainStrategy": "UseIPv6"来控制对应用户的访问方式 实测优先级要高于系统本身的 gai.config
5、系统设置配置
TIP
需要打开系统的 ip_forward
6、完成 WireGuard 相关设置
开启隧道
bash
wg-quick up wg01
开机自启
bash
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg01
2
2
验证 IPv4/IPv6
自行验证 Google 搜索 myip
后记
本文本意是可以避免的多余的流量浪费,将路由和分流的功能交给 Xray 处理。避免了维护路由表的繁琐工作。顺便技术提升 UP。
感谢
@Xray-core @V2ray-core @WireGuard @p3terx @w @Hiram @Luminous @Ln @JackChou