前言
一直写不出自己满意的内容,那么就推翻重来吧,上一篇主要是搭建起了透明代理,上外网应该是没多大问题了,但是如果真的按照这样的方法就会遇到一个问题,部分国内的网站会出现访问缓慢的问题,这可能是系统没有正确的判断ip地址的所属地,把它当成国外的网站进行了代理,这明显是愚蠢的行为,所以这篇就完善一下这个方案,分享一下我个人的操作~
v2ray作用模块
想要实现路由及分流,最主要需要编辑的是如下模块:
- inbounds
- outbounds
- routing
这三个部分的作用比较大,其它的暂时就不做分析了。
v2ray工作流程
inbounds <—-> routing <—-> outbounds
本地客户端通过 v2ray 对外开放的端口进行接入,此处常用 socks 或者 dokodemo-door,v2ray 将数据包传入 routing 模块,模块更具目的地址,端口,协议等条件基于用户设定的转发规则转发至对应的 outbounds 出口中,而 outbounds 出口可以提供数据黑洞,直连,或者多个代理服务器出口,走哪条路就看 routing 模块中的规则了,没有匹配到的数据流一般会使用 outbounds 中第一条设定的出口,所以此处设置的第一个出口决定了 v2ray 的默认转发路径。
v2ray进行分流
v2ray的分流主要集中在 routings 部分进行配置
域名匹配
域名匹配支持多种模式,字符串匹配、正则表达式、子域名、完整匹配、预定义域名列表、从文件中加载域名,官方推荐的方法是使用子域名,但个人比较推荐使用预定义域名列表,v2ray 本身已经内置在了安装包中
,可以直接使用,调用也很简单
预定义域名列表由 domain-list-community 项目维护,预置于每一个 v2ray 的安装包中,文件名为 geosite.dat。这个文件包含了一些常见的域名,使用方式:geosite:listname,如 geosite:google 表示对 domain-list-community 项目 data 目录里的 google 文件内包含的域名,进行路由筛选或 DNS 筛选。
常见的域名有:
- category-ads:包含了常见的广告域名。
- category-ads-all:包含了常见的广告域名,以及广告提供商的域名。
- tld-cn:包含了 CNNIC 管理的用于中国大陆的顶级域名,如以 .cn、.中国 结尾的域名。
- tld-!cn:包含了非中国大陆使用的顶级域名,如以 .hk(香港)、.tw(台湾)、.jp(日本)、.sg(新加坡)、.us(美国).ca(加拿大)等结尾的域名。
- geolocation-cn:包含了常见的大陆站点域名。
- geolocation-!cn:包含了常见的非大陆站点域名,同时包含了 tld-!cn。
- cn:相当于 geolocation-cn 和 tld-cn 的合集。
- apple:包含了 Apple 旗下绝大部分域名。
- google:包含了 Google 旗下绝大部分域名。
- microsoft:包含了 Microsoft 旗下绝大部分域名。
- facebook:包含了 Facebook 旗下绝大部分域名。
- twitter:包含了 Twitter 旗下绝大部分域名。
- telegram:包含了 Telegram 旗下绝大部分域名。
更多类别,可以查看 data 目录
以下示例将自动屏蔽常见的广告域名,并直连 apple 和大陆域名站点,自动将 google 等域名转发到两个不同的对外出口上(如果你有多个服务器的话可以这样操作),没有指定的域名会自动选择默认的出口进行转发。
1 | { |
IP文件
和预定于域名列表一样,v2ray 在安装包中也内置了预定义的 IP 列表,使用方法和上述的域名列表类似,实例如下:
1 | { |
第三方文件
除了安装包中内置的 geosite.dat 和 geoip.dat 文件外,v2ray 还可以使用第三方的域名列表文件,我个人使用了
- V2Ray-SiteDAT 下载 geofiles 目录下的
h2y.dat
文件,并将其复制到 v2ray 执行文件目录下,就是和自带的 geosite.dat 文件相同的位置,它自带两个列表,ad 和 gfw,作用就是字面意思,广告和 gfw 列表。如果需要使用第三方的域名列表,使用 “ext:h2y:ad” 和 “ext:h2y:gfw” 调用即可。 - v2ray-rules-dat 这个项目属于 v2ray 官方预定义列表文件加强版,可代替 V2Ray 官方 geoip.dat 和 geosite.dat,兼容 Shadowsocks-windows、Xray-core、Trojan-Go 和 leaf。利用 GitHub Actions 北京时间每天早上 6 点自动构建,保证规则最新,使用方法和官方的完全相同。功能比较强大,有兴趣的可以去看看。
上述两个是我常用的,如果有兴趣,可以通过项目教程自己构建符合自己需求的域名列表文件。
历史
- 2019.10.19 初稿
- 2019.11.04 协议分析
- 2022.03.22 部分调整
- 2022.03.23 最后完稿