分流隧道配置 (Split Tunneling Configuration - 中文)¶
R-VPN 支持高级分流隧道功能,可将流量通过 VPN 隧道或直连(绕过)进行路由。
概述¶
分流隧道允许您: - 绕过 VPN 访问特定域名/IP(直接连接) - 强制 VPN 访问特定域名/IP(始终通过隧道) - 屏蔽广告/追踪器 使用内置屏蔽列表 - 自动路由 中国流量直连(内置中国 IP 段)
配置¶
编辑您的 client.toml:
[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"] # 自动绕过中国 IP
auto_reload_interval = 300 # 每 5 分钟重新加载规则
block_ads = true # 启用广告屏蔽
# 可选:自定义域名列表
# bypass_domains_file = "/etc/rvpn/bypass-domains.txt"
# tunnel_domains_file = "/etc/rvpn/tunnel-domains.txt"
# 可选:自定义网络列表(CIDR 格式)
# bypass_networks_file = "/etc/rvpn/bypass-networks.txt"
# tunnel_networks_file = "/etc/rvpn/tunnel-networks.txt"
# 可选:自定义广告屏蔽列表
# ad_block_file = "/etc/rvpn/custom-ads.txt"
配置选项¶
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
布尔值 | false |
启用分流隧道 |
builtin_bypass_countries |
数组 | ["CN"] |
内置 IP 绕过的国家代码(如 CN、HK、SG) |
auto_reload_interval |
整数 | 300 |
自动重新加载间隔(秒,0 表示禁用) |
block_ads |
布尔值 | false |
启用内置广告屏蔽 |
bypass_domains_file |
路径 | - | 绕过 VPN 的域名文件 |
tunnel_domains_file |
路径 | - | 强制通过 VPN 的域名文件 |
bypass_networks_file |
路径 | - | 绕过 VPN 的 CIDR 网络文件 |
tunnel_networks_file |
路径 | - | 强制通过 VPN 的 CIDR 网络文件 |
ad_block_file |
路径 | - | 自定义广告屏蔽域名列表 |
路由优先级¶
规则按以下顺序应用(从高到低优先级):
- 广告/追踪域名 - 完全屏蔽(如果启用
block_ads) - 强制隧道域名 - 始终通过 VPN(内置列表:Google、Meta 等)
- 自定义隧道域名 - 用户指定的 VPN 域名
- 自定义绕过域名 - 用户指定的直连域名
- 内置中国域名 - 如果 CN 在绕过国家中则直连
- 基于 IP 的规则 - CIDR 段匹配(自定义网络,然后内置国家 IP)
默认:如果没有匹配,流量通过 VPN 隧道。
内置列表¶
强制隧道域名(始终 VPN)¶
这些域名始终通过 VPN 路由,即使解析到中国 IP:
- Google 服务:
google.com、googleapis.com、gstatic.com、youtube.com、googlevideo.com、ytimg.com、ggpht.com、appspot.com、cloud.google.com、firebaseio.com - Meta 服务:
facebook.com、fbcdn.net、instagram.com、cdninstagram.com、whatsapp.com、messenger.com、fb.com - Twitter/X:
twitter.com、x.com、twimg.com、t.co - 即时通讯:
telegram.org、t.me、signal.org、discord.com、discordapp.com、slack.com - AI/搜索:
openai.com、chatgpt.com、anthropic.com、claude.ai、perplexity.ai、bing.com、duckduckgo.com - 社交/媒体:
github.com、reddit.com、linkedin.com、medium.com、quora.com、pinterest.com、tumblr.com、flickr.com - 流媒体:
netflix.com、hulu.com、hbo.com、max.com、disneyplus.com、spotify.com、soundcloud.com、vimeo.com - 新闻:
bbc.com、nytimes.com、washingtonpost.com、wsj.com、bloomberg.com、reuters.com、cnn.com
中国绕过域名¶
200+ 中国特定域名,当 builtin_bypass_countries = ["CN"] 时绕过 VPN:
- 电商:
taobao.com、tmall.com、jd.com、360buy.com、suning.com、dangdang.com、amazon.cn、vip.com、xiaomiyoupin.com - 搜索/社交:
baidu.com、weibo.com、sina.com.cn、zhihu.com、douban.com、jianshu.com、csdn.net、oschina.net - 视频:
bilibili.com、youku.com、iqiyi.com、douyin.com、kuaishou.com、toutiao.com - 云/CDN:
alicdn.com、aliyun.com、aliyuncs.com、qiniu.com、upyun.com、qcloud.com、huaweicloud.com - 通讯:
qq.com、wechat.com、weixin.com、dingtalk.com、feishu.cn - 金融:
alipay.com、cmbchina.com、icbc.com.cn、ccb.com、pingan.com - 设备:
mi.com、xiaomi.com、huawei.com、oppo.com、vivo.com、oneplus.com、meizu.com - 物流:
sf-express.com、zto.com、yto.net.cn、jd-express.com - 苹果中国:
apple.com.cn、icloud.com.cn、cdn-apple.com(用于中国 iMessage/iCloud)
广告屏蔽¶
1000+ 广告/追踪域名,当 block_ads = true 时屏蔽:
- Google 广告:
doubleclick.net、googlesyndication.com、googleadservices.com、googletagmanager.com、google-analytics.com - Facebook:
facebook.com/tr、facebook.net、connect.facebook.net - Twitter:
analytics.twitter.com、ads-twitter.com - Amazon:
amazon-adsystem.com、amazon.advertising.com - 广告网络:
outbrain.com、taboola.com、scorecardresearch.com、quantserve.com、comscore.com、moatads.com、pubmatic.com、openx.net、rubiconproject.com
自定义域名列表¶
创建文本文件,每行一个域名:
# /etc/rvpn/bypass-domains.txt - 直接连接
custom-cdn.com
internal-company.com
*.local
# /etc/rvpn/tunnel-domains.txt - 通过 VPN
blocked-service.com
geo-restricted.com
然后在配置中引用:
[split_tunnel]
bypass_domains_file = "/etc/rvpn/bypass-domains.txt"
tunnel_domains_file = "/etc/rvpn/tunnel-domains.txt"
自定义网络列表¶
创建 CIDR 格式的文本文件(每行一个):
# /etc/rvpn/bypass-networks.txt - 直接连接
192.168.0.0/16
10.0.0.0/8
172.16.0.0/12
# /etc/rvpn/tunnel-networks.txt - 通过 VPN
8.8.8.0/24
1.1.1.0/24
工作原理¶
域名匹配¶
使用后缀匹配方式匹配域名:
- baidu.com 匹配 www.baidu.com、api.baidu.com、mail.baidu.com 等
- google.com 匹配 mail.google.com、drive.google.com、maps.google.com 等
- 匹配不区分大小写
IP 解析回退¶
如果没有域名匹配: 1. 将域名解析为 IP 地址 2. 检查自定义隧道网络列表(CIDR) 3. 检查自定义绕过网络列表(CIDR) 4. 检查内置国家 IP 段(如果启用) 5. 如果没有匹配,默认通过 VPN 隧道
性能¶
- 域名查找使用 HashSet,O(1) 性能
- IP 查找使用 IpNetworkTable,高效的 CIDR 匹配
- 内置列表编译到二进制中(运行时无文件 IO)
- 自动重新加载支持热更新规则,无需重启
验证¶
检查日志以验证路由:
# 客户端日志
sudo journalctl -u rvpn-client -f
# 查找:
# - "Host <domain> matches tunnel domain list" - 通过 VPN
# - "Host <domain> matches bypass domain list" - 直接连接
# - "Host <domain> matches force tunnel domain list" - 强制通过 VPN
# - "Host <domain> matches built-in China domain list" - 中国绕过
# - "Host <domain> matches ad/tracker domain list - blocking" - 广告已屏蔽
使用场景¶
中国用户¶
中国流量直连,国际流量通过 VPN,屏蔽广告。
隐私优先¶
所有流量通过 VPN,除了广告/追踪器被屏蔽。
企业环境¶
[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"]
bypass_domains_file = "/etc/rvpn/corporate-bypass.txt"
tunnel_domains_file = "/etc/rvpn/required-vpn.txt"
block_ads = true
自定义企业域名 + 中国绕过 + 广告屏蔽。
最小配置¶
使用默认值:启用中国绕过,禁用广告屏蔽,每 5 分钟自动重新加载。
故障排除¶
域名未绕过¶
检查它是否在强制隧道列表中(这些会覆盖绕过):
广告未屏蔽¶
验证广告屏蔽是否启用:
性能问题¶
如果不需要,禁用自动重新加载:
检查已加载的规则¶
查看运行时统计: