v2rayN的路由设置

v2rayN的路由设置

新版本变化

最近升级了v2rayN的系统,发现了没有了原来的pac模式,变成了简单的:清楚系统代理,自动配置代理,不改变系统代理。

20230329122924

其中改变系统代理就是变成了以前的那种全局代理的模式,一开始并不了解,而且由于不支持PAC模式后,好多你不想代理的流量都走到v2ray去了。

1
2
3

旧模式

20230329090502

1
2
3

新模式

20230329090518

所以这种情况下我们就需要花点时间去配置路由了。

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文件

20230329093023


高级用法

如果你看到data目录下有

20230329093131

后面带有@cn标识,说明该域名有cn接口,想要直连的用户,可以设置类别geosite:steam@cn 为直连,意为将steam列表内所有被标记了 @cnattribute 的规则(域名)设置为直连。

需要注意的是:在路由配置中,类别越靠前(上),优先级越高,所以geosite:category-games@cn等所有带有 @cn attribute 的规则都要放置在geosite:geolocation-!cn前(上)面才能生效。


路由其他功能

这边顺带解释一下其他的几个配置的说明:

20230329091857

域名解析策略

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下配置:

1
2
3

geosite:cn

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,会匹配该域名下的所有子域名,至于匹配规则我觉得太过复杂,如果不是需求太奇特,一般用不到。


高端玩家

该功能需要玩家有一定的知识储备,我个人不是很建议

系统是支持高级模式的,点击启用路由高级功能,然后点击高级功能,添加规则集:

20230329103205

打开之后,输入自己定义的名称,接下来就是重头戏:

20230329103354

这边有个白名单模式(即在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模式路由规则 | 多个自定义路由规则