v2rayN的路由设置
新版本变化
最近升级了v2rayN的系统,发现了没有了原来的pac模式,变成了简单的:清楚系统代理,自动配置代理,不改变系统代理。
其中改变系统代理就是变成了以前的那种全局代理的模式,一开始并不了解,而且由于不支持PAC模式后,好多你不想代理的流量都走到v2ray去了。
所以这种情况下我们就需要花点时间去配置路由了。
PS:
清除系统代理就是不代理了,而不改变系统代理,如果你有前端PAC分流的话,否则这个选项也是不代理的意思,所以建议使用自动配置系统代理。
Geo文件的使用
新版v2rayN下载时候自带了两个Geo文件(路由规则文件)
1 2 3 4 5 6 7 "geosite.dat":提供一个预定义好的 「全球域名」 列表; "geoip.dat" :提供一个预定义好的 「全球 ip-地区」 列表.
里面的域名常用分类:
category-ads:包含了常见的广告域名。
category-ads-all:包含了常见的广告域名,以及广告提供商的域名。
cn:相当于 geolocation-cn 和 tld-cn 的合集。
google:包含了 Google 旗下绝大部分域名。
microsoft:包含了 Microsoft 旗下绝大部分域名。
geolocation-!cn:包含了常见的非大陆站点域名,同时包含了 tld-!cn。
tld-cn:包含了 CNNIC 管理的用于中国大陆的顶级域名,如以 .cn、.中国 结尾的域名。
tld-!cn:包含了非中国大陆使用的顶级域名,如以 .hk(香港)、.tw(台湾)、.jp(日本)、.sg(新加坡)、.us(美国).ca(加拿大)等结尾的域名。
category-games: 包含了 steam、ea、blizzard、epicgames 和 nintendo 等常见的游戏厂商。
当然,如果你还有别的需求,可以看 https://github.com/v2fly/domain-list-community/tree/master/data 下具体的名称,如果你觉得它的规则不准确,这边也有一份国人专门设置的加强版规则: https://github.com/Loyalsoldier/v2ray-rules-dat 这是一个加强版合集,只需要下载geosite.dat和geoip.dat两个文件之后,替换掉v2rayN文件路径下的同名文件就行。
PS:
如果使用加强版记得开启:更新Core时忽略Geo文件
高级用法
如果你看到data目录下有
后面带有@cn标识,说明该域名有cn接口,想要直连的用户,可以设置类别geosite:steam@cn 为直连,意为将steam列表内所有被标记了 @cnattribute 的规则(域名)设置为直连。
需要注意的是:在路由配置中,类别越靠前(上),优先级越高,所以geosite:category-games@cn等所有带有 @cn attribute 的规则都要放置在geosite:geolocation-!cn前(上)面才能生效。
路由其他功能
这边顺带解释一下其他的几个配置的说明:
域名解析策略
AsIs:只使用域名进行路由选择,默认值;推荐值
IpIfNonMatch:当域名没有匹配任何基于域名的规则时,将域名解析成 IP 然后去匹配,如果IP多,那就一直匹配到有为止。
IpOnDemand:如果有IP 的规则,立即将域名解析为 IP 进行匹配。
域名匹配算法
“hybrid”:使用新的域名匹配算法,速度更快且占用更少。默认值。推荐值
“linear”:使用原来的域名匹配算法。
分享配置
先说下我的日常模式,我比较经常访问谷歌搜索和GitHub两个地方,其他的网站我希望全部都是走直连的,所以我用如下配置:
代理的Domain或IP:
Domain下配置:
1 2 3 4 5 geosite:google, geosite:github
直连的Domain或IP:
Domain下配置:
IP下配置:
1 2 3 4 5 geoip:private, geoip:cn
阻止的Domain或IP:
Domain下配置:
1 2 3 geosite:category-ads-all
这套配置实现了,所有国内的网站走直连,谷歌和Github走代理,而且还有广告屏蔽的功效。
如果你有一个域名不在这里面,但是你想要让它走代理/直连可以添加:domain:xxxx.com,或者ip:xxxxx
PS:
也可以直接使用域名,但是如果使用domain:xxxx.com,会匹配该域名下的所有子域名,至于匹配规则我觉得太过复杂,如果不是需求太奇特,一般用不到。
高端玩家
该功能需要玩家有一定的知识储备,我个人不是很建议
系统是支持高级模式的,点击启用路由高级功能,然后点击高级功能,添加规则集:
打开之后,输入自己定义的名称,接下来就是重头戏:
这边有个白名单模式(即在GFW的域名进行代理,其他的不走),有两种方式添加:
一种输入:
https://raw.githubusercontent.com/2dust/v2rayCustomRoutingList/master/custom_routing_rules_whitelist
然后点击从订阅的URL导入规则即可,一种就是打开链接,然后选择从剪贴板导入规则。
接下来我们分析下对应的文件。以下规则已经被我修改,建议直接打开链接后复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [ { "outboundTag": "direct", #直连的域名配置 "domain": [ "domain:example.com", "domain:example2.com" ] }, { "type": "field", "outboundTag": "block", #阻止的域名配置,下面是广告的域名Geo配置 "domain": [ "geosite:category-ads-all" ] }, { "type": "field", "outboundTag": "direct", #直连的域名配置,内部包含个人域名,苹果,谷歌,和中国的域名 "domain": [ "geosite:private", "geosite:apple@cn", "geosite:google@cn", "geosite:tld-cn" ] }, { "type": "field", "outboundTag": "proxy", #代理的域名配置,不是中国网址 "domain": [ "geosite:geolocation-!cn" ] }, { "type": "field", "outboundTag": "direct", #直连的IP配置,中国的IP和个人的IP "ip": [ "geoip:private", "geoip:cn" ], "domain": [ "geosite:cn" ] }, { "type": "field", #这个是端口,忽略 "port": "0-65535", "outboundTag": "proxy" } ]
其实和我上面设置的一样。只不过是更加方便的导入而已。
我更加推荐这个配置:所有端口都是直连,如果有特定网站再走代理,还添加了广告过滤。有上不去的,再进行添加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [ { "outboundTag": "block", "domain": [ "geosite:category-ads-all" ] }, { "outboundTag": "proxy", "domain": [ "geosite:google" ] }, { "port": "0-65535", "outboundTag": "direct" } ]
DNS优化
根据 https://github.com/chenxv399/v2ray-rules-dat 推荐,建议使用,可以抵抗DNS污染
使用方法:
设置-参数设置-DNS设置-直接curl+v粘贴规则
规则:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 { "hosts": { "dns.google": "8.8.8.8", "dns.pub": "119.29.29.29", "dns.alidns.com": "223.5.5.5", "dns.opendns.com":"208.67.222.222", "geosite:category-ads-all": "127.0.0.1" }, "servers": [ { "address": "208.67.222.222", "port": 5353, "domains": ["geosite:geolocation-!cn"], "expectIPs": ["geoip:!cn"] }, "8.8.8.8", "9.9.9.9", { "address": "114.114.114.114", "port": 53, "domains": ["geosite:cn", "geosite:category-games@cn"], "expectIPs": ["geoip:cn"], "skipFallback": true }, { "address": "localhost", "skipFallback": true } ] }
看下来,就是查询hosts里面的DNS,没有则使用OPENDNS(208.67.222.222这个ip所指),进行查询,要求域名/ip不是中国的,如果是中国的域名/ip使用114这个DNS.
实际使用下来,建议配置。
参考文档:
4.12 最新 v2rayN windows 进阶版使用教程 | 附PAC模式路由规则 | 多个自定义路由规则