V2RayN系统代理模式应该选择哪一个?

2RayN客户端更新频率较高,有时功能改动很大,比如4.0版本后,删除了PAC功能,因此具体要选择哪个代理模式,应根据自己的软件版本和需求选择。

以V2RayN 4.0以上版本来举例,各代理模式的含义是:

  • “清除系统代理”:禁用Windows系统(IE)代理,不能翻墙;
  • “自动配置系统代理”:全局代理模式,所有连接走VPN(再通过V2Ray客户端的路由设置进行分流,达到类似PAC代理模式的效果);
  • “不改变系统代理”:根据Windows设置内的代理状态决定是否开启代理,也就是维持Windows系统(IE)设置。

通常情况,建议选择“自动配置系统代理”就好了,然后在V2Ray客户端的路由设置内添加域名、IP直连规则。

路由基本设置

V2Ray代理上网软件的电脑客户端V2RayN、QV2Ray等,通过功能强大的路由设置功能,可以自定义复杂的代理规则。

例如,在V2RayN电脑客户端“设置”-“路由设置”界面内,有三个选项卡:

  • 代理的Domain或IP
  • 直连的Domain或IP
  • 阻止的Domain或IP

每个选项卡内,可分别对域名或IP地址进行匹配,指定其通过什么方式连接网络。

Proxy (代理)、Direct (直连)、Block (阻止)的含义

  • Block (阻止): 拦截向外发送的连接请求,禁止连网。
  • Direct (直连): 直接访问外部网络,不走代理。
  • Proxy (代理): 允许通过代理连接上网。

查看某个网站域名或IP是代理还是直接的方法

在使用V2Ray客户端上外网时,有时会因各种原因了解某个网站是通过代理上网,还是直接连接。例如,我想了解bycore.net这个网站,在开启V2Ray代理软件情况下,是直接还是代理上网。

可以通过查看V2RayN或QV2Ray客户端日志信息了解是如何连接网站的,如下图:

看上图,在V2RayN客户端的日志信息中,看到这个网址后面的[方括号]内标注的是[proxy],也就是通过代理上网。

手机/电脑客户端自定义路由设置规则的写法

目前,主流的V2Ray手机、电脑客户端都移除了对PAC模式的支持,这是因为通过功能强大的“(高级)路由设置”功能,同样可以实现PAC模式自动代理功能。

现在介绍一下在Proxy (代理)、Direct (直连)、Block (阻止)三栏内,怎么填写域名或IP地址。

在代理、直连、阻止三类代理规则输入框内,根据需要按以下规则填写域名或IP。

一、域名路由规则的写法:

预定义域名列表 geosite:

以 geosite: 开头,后面是一个预定义域名列表名称,如 geosite:google ,意思是包含了Google旗下绝大部分域名;或者 geosite:cn,意思是包含了常见的大陆站点域名。常用名称及域名列表:

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(加拿大)等结尾的域名。
更多域名类别,请查看 data 目录

域名

有以下几种形式:

  • 纯字符串: 当此字符串匹配目标域名中任意部分,该规则生效。比如"sina.com"可以匹配"sina.com"、"sina.com.cn"和"www.sina.com",但不匹配"sina.cn"。
  • 正则表达式: 由"regexp:"开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如"regexp:\.goo.*\.com$"匹配"www.google.com"、"fonts.googleapis.com",但不匹配"google.com"。
  • 子域名 (推荐): 由"domain:"开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如"domain:v2ray.com"匹配"www.v2ray.com"、"v2ray.com",但不匹配"xv2ray.com"。
  • 完整匹配: 由"full:"开始,余下部分是一个域名。当此域名完整匹配目标域名时,该规则生效。例如"full:v2ray.com"匹配"v2ray.com"但不匹配"www.v2ray.com"。
  • 预定义域名列表:由"geosite:"开头,余下部分是一个名称,如geosite:google或者geosite:cn。名称及域名列表参考预定义域名列表
  • 从文件中加载域名: 形如"ext:file:tag",必须以ext:(小写)开头,后面跟文件名和标签,文件存放在资源目录中,文件格式与geosite.dat相同,标签必须在文件中存在。

IP

当某一元素匹配目标 IP 时,此规则生效。有以下几种形式:

  • IP: 形如"127.0.0.1"
  • CIDR: 形如"10.0.0.0/8".
  • GeoIP: 形如"geoip:cn",必须以geoip(小写)开头,后面跟双字符国家代码,支持几乎所有可以上网的国家。如 geoip:cn ,意思是所有中国大陆境内的 IP 地址,geoip:us 代表美国境内的 IP 地址。
    • 特殊值:"geoip:private" (V2Ray 3.5+),包含所有私有地址,如127.0.0.1
  • 从文件中加载 IP: 形如"ext:file:tag",必须以ext:(小写)开头,后面跟文件名和标签,文件存放在资源目录中,文件格式与geoip.dat相同标签必须在文件中存在。

域名解析策略的含义、区别,以及最佳选择

在V2Ray的安卓、苹果、Windows等手机和电脑客户端中,路由设置的域名解析策略有三项选择,分别是 “AsIs”、”IPIfNonMatch”、”IPOnDemand”。

  • “AsIs”:

    只使用域名进行路由选择。快速解析,不精确分流。默认值。

  • “IPIfNonMatch”:
    当域名没有匹配任何规则时,将域名解析成 IP(A 记录或 AAAA 记录)再次进行匹配;
    当一个域名有多个 A 记录时,会尝试匹配所有的 A 记录,直到其中一个与某个规则匹配为止;
    解析后的 IP 仅在路由选择时起作用,转发的数据包中依然使用原始域名;
    理论上解析比”AsIs”稍慢,但使用中通常不会觉察到。

  • “IPOnDemand”:
    当匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配。解析最精确,也最慢。

域名策略解析选择哪个更好?

虽然V2Ray官方解释”AsIs”是默认值,但是实际上,在几款主流客户端中,有的默认值是”AsIs”,有的是”IPIfNonMatch”。

因此,选择”AsIs”或”IPIfNonMatch”都可以。

但是,如果在自定义路由设置规则时,添加了匹配IP的路由代理规则,比如geoip:cn、geoip:private,或者直接添加的IP地址规则,那么,建议您必须选择位于中间的”IPIfNonMatch”,不然,匹配IP地址的路由规则不会生效。

手机、电脑客户端自定义路由设置规则教程

使用客户端默认的“一键导入基础规则”的弊端

在直连域名、IP栏中分别添加“geosite:cn”、“geoip:cn”规则后,虽然国内大陆的域名、IP地址直连,不再走代理,但是大量服务器在境外的网站,还会默认通过代理连接,这不仅影响网速、消耗收费的代理流量,还可能有安全隐患。

比如,密码管理软件LastPass、Bitwarden、印象笔记等的某些网址,还是默认会通过代理连接。

这严重威胁到我们的密码、个人信息等数据的安全。我们无法完全相信这些免费或收费的V2Ray节点商家会安分守己。

另外,默认规则还会阻止广告链接 geosite:category-ads-all,这会导致所有网站上出现各种鸟语广告。屏蔽所有广告是不可能的,我宁愿看到与我相关的,或者对我有帮助、能看懂的广告。

因此,这段时间在使用V2Ray软件过程中,不断对路由设置进行了优化。当然每个人的需求不同,这里只是记录下思路仅供参考。

打造最适合自己的自定义路由设置策略和规则

进入“路由设置”界面,将域名解析策略设为“IPIfNonMatch”。

将“代理的Domain或IP”和“阻止的Domain或IP”两栏内的Domain和IP栏都清空。

清空的原因是,已经选择V2RayN为全局代理模式了,“代理的Domain或IP”栏内就没必要重复设置了。而且这里“代理”的优先级高于“直连”,如果在“代理的Domain或IP”内输入了路由规则“geosite:google”,就无法将部分Google产品网址设为直连了。

把“阻止的Domain或IP”栏内的路由规则“geosite:category-ads-all,”也就是常见的广告提供商域名,转移到“直连”内,原因在本文前面解释过了。该规则中包含了Google广告的一些网址,都是可以直接访问的。

因此,只自定义“直连的Domain或IP”一栏就可以了

快速添加路由设置规则的方法

使用翻墙软件,只是为了访问极少数被墙的网站,对大家来说就是Google的一些网站。因此绝大部分国内、国外的网站,都不需要代理连接,直连就可以。

能不走代理,就不走代理,也可以最大限度保护自己的信息安全。毕竟我们不知道这些节点服务器中会看到或保存多少个人信息。

不使用翻墙软件时,国内网站都是正常打开的,也就是说不需要代理上网,都可以正常连接。

查看V2Ray连接日志信息中,每条URL后面是[direct](直连),还是[proxy](代理)

如果该国内网站打开时,在V2Ray日志中某网址后面出现[proxy]标记,就可以考虑将这个网址添加到路由设置内,指定其以直连的方式连网。

鼠标拖动选择这个网址URL,点击右键,选择“快速添加路由规则(Ctrl+V)”,或者按快捷键“Ctrl+V”,即可复制该URL的同时,自动打开V2RayN的“路由设置”界面,如下图:

V2RayN高级路由器配置单、全局直连、全局代理模式规则集

记录一下使用中的V2Ray客户端高级路由功能配置代理规则集,包括以下代理模式:

  • Whitelist白名单(绕过大陆模式)
[
  {
    "port": "",
    "outboundTag": "proxy",
    "ip": [],
    "domain": [
      "#以下三行是GitHub网站,为了不影响下载速度走代理",
      "github.com",
      "githubassets.com",
      "githubusercontent.com"
    ],
    "protocol": []
  },
  {
    "type": "field",
    "outboundTag": "block",
    "domain": [
      "#阻止CrxMouse鼠标手势收集上网数据",
      "mousegesturesapi.com",
      "#下一行广告管理平台网址,在ProductivityTab(原iChrome)浏览器插件页面显示",
      "cf-se.com"
    ]
  },
  {
    "type": "field",
    "port": "",
    "outboundTag": "direct",
    "ip": [
      "geoip:private",
      "geoip:cn"
    ],
    "domain": [
      "bitwarden.com",
      "bitwarden.net",
      "gravatar.com",
      "gstatic.com",
      "baiyunju.cc",
      "letsencrypt.org",
      "adblockplus.org",
      "safesugar.net",
      "#下两行谷歌广告",
      "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"
    ],
    "protocol": []
  },
  {
    "type": "field",
    "port": "0-65535",
    "outboundTag": "proxy"
  }
]
  • 全局代理
[
  {
    "port": "",
    "outboundTag": "block",
    "ip": [],
    "domain": [
      "#阻止CrxMouse鼠标手势收集上网数据",
      "mousegesturesapi.com",
      "#下一行广告管理平台网址,在ProductivityTab(原iChrome)浏览器插件页面显示",
      "cf-se.com"
    ],
    "protocol": []
  },
  {
    "type": "field",
    "port": "0-65535",
    "outboundTag": "proxy"
  }
]
  • 全局直连
[
  {
    "port": "",
    "outboundTag": "block",
    "ip": [],
    "domain": [
      "#阻止CrxMouse鼠标手势收集上网数据",
      "mousegesturesapi.com",
      "#下一行广告管理平台网址,在ProductivityTab(原iChrome)浏览器插件页面显示",
      "cf-se.com"
    ],
    "protocol": []
  },
  {
    "port": "",
    "outboundTag": "proxy",
    "ip": [],
    "domain": [
      "#下一行ProductivityTab(原iChrome)浏览器插件",
      "ichro.me"
    ],
    "protocol": []
  },
  {
    "type": "field",
    "port": "0-65535",
    "outboundTag": "direct"
  }
]
  • 路由规则中的中文说明,不需要删除,这都是以“#”开头的注释行。当然,也可以删掉,也可以自己添加。
  • 自定义添加规则后,一定以英文逗号“,”结尾,不然会导致全部规则失效。
  • 这些V2RayN高级路由功能策略代理规则,是个人使用并不断完善起来的,其中个别网址未必适合所有人,可以自己添加或删减。
  • 高级路由功能中“预定义规则集列表”中的各行规则,不要随意改变排列顺序。因为,越在上面的规则,优先级别越大。调整顺序后,也会改变代理模式。
  • 例如,在黑名单PAC代理模式规则集中,第二行是“proxy”代理规则,如果里面添加了域名bycore.net,而第三行“direct”直连规则中,也添加了bycore.net这个网址,那么,因为第二行比第三行更靠前,因此bycore.net会按照第二行的规则连接网络,忽略第三行的设置。