继续解锁奈飞(三)-域名分流篇

linux admin 3年前 (2021-08-14) 11289次浏览 7个评论

介绍

书接上回,我们在继续解锁奈飞(二)-DNS篇-入门到进阶中,留下了两点思考

  • dns解锁鸡会占用80、443端口,解锁鸡想用这两个端口怎么办?
  • 港澳台的nat(动态)家宽,ip经常会变,没有80、443端口,如何用于解锁?

要解决这两个问题,就要用到我们今天提出方法了,修改*ray的配置文件实现域名分流。那这两个问题先按下不表,在上一篇教程中我们是通过dnsmasq实现奈飞所有域名使用解锁鸡dns解析的,其实有更简单的方法,我们可以通过对*ray配置文件的修改来实现。

原理

我们知道,不管是那哪种ray(现在应该就两种吧),它的配置文件的主体是inboundsoutboundsrouting

  • inbounds负责告诉*ray流量怎么进,哪种协议进
  • outbounds负责告诉*ray流量怎么出,哪种协议出
  • routing负责告诉*ray从从inbounds到outbounds的路怎么走

所以我们可以通过设置多个outbounds,编辑不同routing的规则告诉*ray不同的流量走不同的outbounds。

实操

一般情况下*ray的配置文件于/etc/xray/或者/etc/v2ray/,当然如果你是使用其他脚本安装的,那你需要自己去脚本的项目地址看下咯。

我们先来看一段原始的config.json

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "none"
  },
  "inbounds": [
    {
      "port": 62570,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "fdc6e7f0-fceb-11eb-95c8-a25b020000ed",
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none",
        "tlsSettings": {},
        "tcpSettings": {},
        "kcpSettings": {},
        "wsSettings": {},
        "httpSettings": {},
        "quicSettings": {},
        "grpcSettings": {}
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}

这段配置文件中,inbounds部分有一个vmess协议,outbounds部分一个freedom协议,一个blackhole协议,routing中一条规则,这条规则告诉*ray入口的IP地址符合geoip:private这个规则时,就走blocked协议,而由于*ray的规则默认走出口的第一条协议的,所以不符合这个routing规则所有其他IP都会直接走第一个freedom协议出去。

那我们现在来配合已经具备解锁能力的小鸡来修改配置文件

DNS分流

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "none"
  },
  "inbounds": [
    {
      "port": 62570,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "fdc6e7f0-fceb-11eb-95c8-a25b020000ed",
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none",
        "tlsSettings": {},
        "tcpSettings": {},
        "kcpSettings": {},
        "wsSettings": {},
        "httpSettings": {},
        "quicSettings": {},
        "grpcSettings": {}
      }
    },
	"sniffing": {
        "enabled": true,   //一定要开启 sniffing,V2Ray 才能识别 Netflix 的流量
        "destOverride": ["http", "tls"]
      }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {"domainStrategy": "UseIP"}   // 必须设定 domainStrategy 为 UseIP 以使用内置的DNS
    }
  ],
  "routing": {
    "rules": [ ]
  },
  "dns": {
    "servers": [
      "8.8.8.8",
      {
        "address": "x.x.x.x",   // DNS 解锁提供的 IP
        "port": 53,
        "domains": ["geosite:netflix"]
      }
    ]
  }
}

如此便能达到上一篇教程dnsmasq实现的功能了,而且也更为方便。

看到这里的小伙伴,对于

  • dns解锁鸡会占用80、443端口,解锁鸡想用这两个端口怎么办?
  • 港澳台的nat(动态)家宽,ip经常会变,没有80、443端口,如何用于解锁?

这两个问题,你是否有了解决问题的思路了呢?没错,我们可以直接修改outbounds,将解锁鸡的ss,socks5等等协议修改为我们的outbounds,再配合routing规则让奈飞的流量走这些协议出去,从而实现解锁。那如上那两个问题就迎刃而解了。直接看配置文件。

ss做outbounds

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "none"
  },
  "inbounds": [
    {
      "port": 62570,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "fdc6e7f0-fceb-11eb-95c8-a25b020000ed",
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none",
        "tlsSettings": {},
        "tcpSettings": {},
        "kcpSettings": {},
        "wsSettings": {},
        "httpSettings": {},
        "quicSettings": {},
        "grpcSettings": {}
      }
    },
	"sniffing": {
        "enabled": true,   //一定要开启 sniffing,V2Ray 才能识别 Netflix 的流量
        "destOverride": ["http", "tls"]
      }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "VPS1",
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "x.x.x.x",       //解锁鸡IP
            "method": "aes-256-gcm",    //ss加密方式
            "ota": false,
            "password": "xxxxxx",       //ss密码
            "port": xxxx                //ss监听端口
          }
        ]
      }
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "VPS1",
        "domain": ["geosite:netflix"]      //如果你的小鸡油管送中谷歌跳验证码,还可以添加geosite:google","geosite:youtube",让油管谷歌流量也走解锁鸡
      }
    ]
  }
}

socks5做outbounds

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "none"
  },
  "inbounds": [
    {
      "port": 62570,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "fdc6e7f0-fceb-11eb-95c8-a25b020000ed",
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none",
        "tlsSettings": {},
        "tcpSettings": {},
        "kcpSettings": {},
        "wsSettings": {},
        "httpSettings": {},
        "quicSettings": {},
        "grpcSettings": {}
      }
    },
	"sniffing": {
        "enabled": true,   //一定要开启 sniffing,V2Ray 才能识别 Netflix 的流量
        "destOverride": ["http", "tls"]
      }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "VPS1",
      "protocol": "socks",
      "settings": {
        "servers": [
          {
            "address": "x.x.x.x",   //解锁鸡IP
            "ota": false,
            "port": xxxx,           //sock5监听端口
            "users": [
              {
                "user": "xxx",      //socks5用户名
                "pass": "xxx"       //密码
              }
            ]
          }
        ]
      }
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "VPS1",
        "domain": ["geosite:netflix"]      //如果你的小鸡油管送中谷歌跳验证码,还可以添加geosite:google","geosite:youtube",让油管谷歌流量也走解锁鸡
      }
    ]
  }
}

当然我们除了使用ss,sock5协议做outbounds,*ray支持的任意一种协议都可以,而且如果我们的解锁小鸡国际互联良好,我们甚至可以直接让解锁小鸡接管所有流量,那我们在用的小鸡就变成中转鸡了,看到这里的小伙伴应该知道配置文件怎么写了吧,留给大家自己摸索。


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:继续解锁奈飞(三)-域名分流篇
喜欢 (143)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(7)个小伙伴在吐槽
  1. 能出个按IPV4和IPV6 各自分流 的教程吗
    poron2022-01-14 16:19 回复
  2. 请问下,能否用v2ray做outbounds呢
    小草2022-07-19 23:19 回复