内容纲要

前言

v2ray提供了灵活的路由规则设置,通过路由规则可以实现的功能有:

  • 广告过滤
  • 国内流量直连、国外流量代理
  • netflix单独走解锁IP

可供规则匹配的项有domain、ip、port、network、source、user、inboundTag、protocol、attrs等,当这些规则全部匹配时,则通过指定的outbound传出。

国内直连

"inbounds":[
  {
    "protocol": "xx",
    "sniffing": { //在入站协议中开启流量探测,以便使用基于域名的路由规则
      "enable": true,
      "destOverride":["http","tls"]
    }
  }
],
"outbounds":[
  {//代理出站协议,根据你的v2ray节点修改
    "portocol":"vmess",
    "settings":{},
    "streamSettings":{},
    "tag":"proxy"
  },
  {//直连出站协议
    "protocol": "freedom",
    "settings": {},
    "tag": "direct"
  }
],
"routing": {
  "domainStrategy": "IPOnDemand",
  "rules": [
      {
        "type": "field",
        "outboundTag": "direct",
        "domain": ["geosite:cn"]
      },
      {
        "type": "field",
        "outboundTag": "direct",
        "ip":["geoip:cn"]
      }
    ]
}

上述两条规则中,第一条通过域名匹配,在cn域名列表中的域名则从direct传出。需要注意的是,为了能够更好的利用域名匹配的规则,需要在如站协议中开启流量侦测,开启流量侦测后v2ray能够从http和tls流量中侦测出域名用于匹配路由规则。第二条规则使用IP进行匹配,在cn IP列表中的IP则从direct传出。其余未匹配的流量则经默认的出站协议传出,默认为出战协议的第一个?

v2ray内置了geosite域名列表,列表内容由domain-list-community项目维护。你也可以自己制作IP列表或域名列表,相关内容会在后期推出。

netflix单独代理

netflix需要特殊的节点才能解锁,例如博主目前正在使用cheapnat家的香港HKT家宽NAT VPS用于解锁netflix港区。同时,我还使用了bandwagonhost的GIA CN2节点用来日常爱国。v2ray的路由规则同样可以实现类似这样的分流:

"inbounds":[
  {
    "protocol": "xx",
    "sniffing": { //在入站协议中开启流量探测,以便使用基于域名的路由规则
      "enable": true,
      "destOverride":["http","tls"]
    }
  }
],
"outbounds":[
  {//日常爱国线路
    "portocol":"vmess",
    "settings":{},
    "streamSettings":{},
    "tag":"proxy"
  },
    {//netflix解锁线路
    "portocol":"vmess",
    "settings":{},
    "streamSettings":{},
    "tag":"netflix-proxy"
  },
  {//直连出站协议
    "protocol": "freedom",
    "settings": {},
    "tag": "direct"
  }
],
"routing": {
  "domainStrategy": "IPOnDemand",
  "rules": [
      {
        "type": "field",
        "outboundTag": "netflix-proxy",
        "domain": ["geosite:netflix"]
      }
    ]
}

在开启了流量探测后,同样可以使用v2ray内置的域名列表匹配netflix流量,并指定netflix流量经netflix-proxy传出。

广告过滤

完全由v2ray完成广告过滤的前提是你有一份完整的广告服务域名列表,然后在路由规则中过滤掉通过告服务域名列表匹配到的流量。

"inbounds":[
  {
    "protocol": "xx",
    "sniffing": { //在入站协议中开启流量探测,以便使用基于域名的路由规则
      "enable": true,
      "destOverride":["http","tls"]
    }
  }
],
"outbounds":[
  {//阻断连接的出站协议
    "protocol": "blackhole",
    "settings": {},
    "tag": "block"
  }
],
"routing": {
  "domainStrategy": "IPOnDemand",
  "rules": [
      {
        "type": "field",
        "outboundTag": "block",
        "domain": ["ext:adlist.dat:full"]// adlist.dat为列表文件,full为其中的一个表
      }
    ]
}

但是,获取到这样一份完整且有效的列表是很困难的,v2ray-adlist项目维护了一个广告域名列表,在实际使用中的效果并不算太好。后期博主将考虑使用v2ray带陪pi-hole(或其他替代方案)实现广告过滤,敬请期待。

最后修改日期:2019年10月25日

留言

发表评论