写在前面(更新)

推荐用 Clash

前言

自从 V2RayN 4.x 版本删除 PAC 模式后,很多习惯该代理模式的朋友不习惯路由功能。

新旧版的不同点

旧版的 PAC 模式是由本地的 PAC 文件对流量先进行分流,然后再通过 v2ray.exe去判断是否走代理出站,并配合v2ray_privoxy.exe进行流量转发;新版的路由模式则是直接通过v2ray.exe 去分流和判断是否走代理的。

旧版客户端:

新版客户端:

旧版 PAC 模式消耗的内存更多一点,自定义灵活度也不高;

新版路由功能自定义灵活度高、使用的内存更小、有一定的速度提高。

关于 Geo 文件

Geo 文件即路由规则文件:

“geosite.dat”:提供一个预定义好的 「全球域名」 列表;

“geoip.dat” :提供一个预定义好的 「全球 IP 地区」 列表。

“.dat文件”里面有无数个分类,比如,中国的域名和IP都在 geosite:cngeoip:cn

GFWList 的网址(也就是经典的 PAC 文件)在 geosite:gfw

广告域名在 geosite:category-ads-all

国外域名在 geosite:geolocation-!cn

本地IP在 geoip:private 里;

还有一千多种分类细分,比如 geosite:steam geosite:google

综上:

  • Geo 路由规则文件是”全球域名和 全球地区的 IP 数据库”
  • 路由规则可以采用”数据库内任意域名或者IP的分类”或者”添加一个不在数据库的域名或者IP”,并选择“对应的出站标签”;然后 xray.exe或者 v2ray.exe (常说的核心) 自带的路由模式,会根据路由规则中”不同的出站标签”,来决定“出站标签”包含的域名和IP是否走代理出站、直连(本地网络访问)还是禁止访问。
  • “路由规则集”就是”包含一个或者多个路由规则的集合”

相关域名和IP分类名的解释

category-ads:包含了常见的广告域名。

category-ads-all:包含了常见的广告域名,以及广告提供商的域名。

cn:相当于 geolocation-cn 和 tld-cn 的合集。

apple:包含了 Apple 旗下绝大部分域名。

google:包含了 Google 旗下绝大部分域名。

microsoft:包含了 Microsoft 旗下绝大部分域名。

facebook:包含了 Facebook 旗下绝大部分域名。

twitter:包含了 Twitter 旗下绝大部分域名。

telegram:包含了 Telegram 旗下绝大部分域名。

geolocation-cn:包含了常见的大陆站点域名。

geolocation-!cn:包含了常见的非大陆站点域名,同时包含了 tld-!cn。

tld-cn:包含了 CNNIC 管理的用于中国大陆的顶级域名,如以 .cn、.中国 结尾的域名。

tld-!cn:包含了非中国大陆使用的顶级域名,如以 .hk(香港)、.tw(台湾)、.jp(日本)、.sg(新加坡)、.us(美国).ca(加拿大)等结尾的域名。

category-games: 包含了 steameablizzardepicgamesnintendo 等常见的游戏厂商。
更多域名类别,请查看 data 目录

更新 Geo 文件

  1. 下载 Geo 路由规则文件(推荐 V2ray 路由加强版,项目地址:https://github.com/Loyalsoldier/v2ray-rules-dat)

geoip.dat
https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/[email protected]/geoip.dat
geosite.dat
https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/[email protected]/geosite.dat

  1. 把下载下来的 geoip.datgeosite.dat 放入到客户端的规则文件目录,替换掉原来的 geoip.datgeosite.dat
  2. 下面分享的是自用的代理规则集

    使用方法:打开 V2RayN ,打开”设置——路由设置”,启用路由高级功能后,复制下面代码,点击添加规则集,并在规则集设置中,从剪贴板中导入规则即可。最后右键将该规则集设为活动路由。

    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
    [
    {
    "inboundTag": [],
    "outboundTag": "proxy",
    "ip": [
    "geoip:telegram",
    "geoip:netflix"
    ]
    },
    {
    "port": "",
    "inboundTag": [],
    "outboundTag": "proxy",
    "ip": [],
    "domain": [
    "github.com",
    "githubassets.com",
    "githubusercontent.com"
    ],
    "protocol": []
    },
    {
    "port": "",
    "inboundTag": [],
    "outboundTag": "direct",
    "ip": [],
    "domain": [
    "# 下两行谷歌广告",
    "googleads.g.doubleclick.net",
    "adservice.google.com",
    "# 【以下全部是geo预定义域名列表】",
    "# 下一行是所有私有域名",
    "geosite:private",
    "# 下一行包含常见大陆站点域名和CNNIC管理的大陆域名,即geolocation-cn和tld-cn的合集",
    "geosite:cn",
    "# 下一行包含所有Adobe旗下域名",
    "geosite:adobe",
    "# 下一行包含所有Adobe正版激活域名",
    "geosite:adobe-activation",
    "# 下一行包含所有微软旗下域名",
    "geosite:microsoft",
    "# 下一行包含微软msn相关域名少数与上一行微软列表重复",
    "geosite:msn",
    "# 下一行包含所有苹果旗下域名",
    "geosite:apple",
    "# 下一行包含所有广告平台、提供商域名",
    "geosite:category-ads-all",
    "# 下一行包含可直连访问谷歌网址,需要替换为加强版GEO文件,如已手动更新为加强版GEO文件,删除此行前面的# 号使其生效",
    "geosite:google-cn",
    "# 下一行包含可直连访问苹果网址,需要替换为加强版GEO文件,如已手动更新为加强版GEO文件,删除此行前面的# 号使其生效",
    "geosite:apple-cn",
    "geosite:category-games"
    ],
    "protocol": []
    },
    {
    "type": "field",
    "port": "",
    "inboundTag": [],
    "outboundTag": "proxy",
    "ip": [],
    "domain": [
    "geosite:gfw",
    "geosite:greatfire"
    ],
    "protocol": []
    },
    {
    "type": "field",
    "port": "0-65535",
    "outboundTag": "direct"
    },
    {
    "outboundTag": "block",
    "domain": [
    "geosite:category-ads-all"
    ]
    },
    {
    "outboundTag": "direct",
    "ip": [
    "geoip:private",
    "geoip:cn"
    ]
    }
    ]

说明

  • 上面 V2Ray 高级路由规则集,完美实现了 PAC 代理模式,效果完全一样。其原理是,GFW 黑名单中的域名走代理,剩余的其他连接 0-65535 所有端口的所有国内、外网站流量全部直连。
  • 缺点是类似 Proxy SwitchyOmega 等扩展无法起作用,因为此类扩展使用规则的逻辑是:先经过扩展中添加的规则,再到客户端的规则,客户端的规则优先级大于扩展的规则。例如上面的规则集中定义了黑名单外的其他连接全部直链,因此无论再怎么在扩展中添加规则,这些连接都是直连的。所以若想要使用扩展,解决方法很简单:只要删除 0-65535 直连的规则就行了。
  • “# 号”开头的为注释行,不必删除。




参考资料:
https://www.jamesdailylife.com/new_v2rayn_c
https://baiyunju.cc/7523