跳过正文

Xui面板的分流设置

·722 字·
科学上网 分流
目录

xui面板的分流设置,包括二级代理,DNS劫持,warp解锁等,每一种方法都有自己独特的优势以及作用。

二级代理
#

flowchart LR A[客户端] -- 发起请求 --> B[代理] -- 命中规则 --> C[二级代理] B[代理] -- 不命中规则 --> D[资源] C[二级代理] -- 发起请求 --> D[资源]

适用场景:解锁特定的网站,例如chatgpt,我有一个香港的服务器,延迟很低,但是不能使用chatgpt等一些网站,这样的话,如果要换节点就很麻烦,那么直接做一个二级代理,当我想要访问chatgpt的时候,让香港服务器向另外一个服务器发起访问请求,而不是香港服务器直接去访问chatgpt,当然也可以全部流量都走另外的服务器,香港就当成了中转。那么为什么不直接用另外的那个服务器?因为基本没有比香港延迟更低的地区了,又或者另外的那个服务器ip被墙了,或者直连线路不好。

本人方案:阿里云学生白嫖的一年香港轻量做主力,线路4837,延迟50ms以内,谷歌油管之类的都是秒开。二级代理使用白嫖的azure,也是一年的时间,但是因为流量每月只有15g,所以用来解锁一些网站足够了。

原始配置文件
#

面板设置——>Xray相关设置

{
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "levels": {
      "0": {
        "handshake": 10,
        "connIdle": 100,
        "uplinkOnly": 2,
        "downlinkOnly": 3,
        "statsUserUplink": true,
        "statsUserDownlink": true,
        "bufferSize": 10240
      }
    },
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

二级代理后的配置文件
#

{
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "chatgptproxy",
      "protocol": "socks",             #二级代理的节点信息,socks代理
      "settings": {
        "servers": [
          {
            "address": "107.174.1.20", #ip地址
            "ota": false,
            "port": 14900,             #端口
            "level": 1,
            "users": [
              {
                "user": "jItxzxoW68",  #用户名
                "pass": "zdZ0SBk8F0",  #密码
                "level": 1
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp"
      },
      "mux": {
        "enabled": false,
        "concurrency": -1
      }
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "levels": {
      "0": {
        "handshake": 10,
        "connIdle": 100,
        "uplinkOnly": 2,
        "downlinkOnly": 3,
        "statsUserUplink": true,
        "statsUserDownlink": true,
        "bufferSize": 10240
      }
    },
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "chatgptproxy",   #分流的规则
        "domain": [
          "geosite:openai",              #openai旗下的绝大部分域名
          "steamdb.info"                 #单个网站
       ]
      },
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

修改了两个地方:

  1. 出站outbounds

  2. 路由routing

可以直接复制上面全部代码然后粘贴进去,修改一下自己的信息,记得删除全部注释。

修改后一定要保存,然后重启面板,不重启不生效!!!

DNS解锁
#

DNS劫持是指恶意篡改域名系统(DNS)的过程,通过修改域名解析结果来将用户重定向到恶意网站或进行网络欺诈。

当我们需要观看流媒体平台,比如netflix,迪斯尼等,因为ip地址的不同,解锁的影片资源也不同,同时我们没有那么服务器,并且流媒体平台对ip的检测也更严格,所以需要借助别人搭建的反代服务器

❣❣同一个机器上DNS解锁可以和二级代理一起用。

更改后的配置文件
#

添加了两处地方,在原版配置文件上。

{
  "dns": {
    "hosts": {
      "geosite:netflix": "6.6.6.6",   #反代服务器
      "geosite:disney": "6.6.6.6"
    },
     "servers": [
      "8.8.8.8",
      "1.1.1.1"
    ]
  },
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {"domainStrategy": "UseIP"}   #添加规则
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "levels": {
      "0": {
        "handshake": 10,
        "connIdle": 100,
        "uplinkOnly": 2,
        "downlinkOnly": 3,
        "statsUserUplink": true,
        "statsUserDownlink": true,
        "bufferSize": 10240
      }
    },
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

寻找反代服务器
#

搜索网站fofo

韩国排除甲骨文,aws,az

body="Backend not available" && country="KR" && asn!="16509" && asn!="8075" && asn!="31898"

台湾排除甲骨文,aws,az

body="Backend not available" && region="TW" && asn!="16509" && asn!="8075" && asn!="31898"

注意:不会的话可以查看fofo网页搜索栏下面的查询语法。注意国家和城市和省份的区别。

搜索结果上,随便点开一个网站,如果出现的是Backend not available,那么很大可能是可以用的,直接填入配置文件替换掉dns地址就行了!

技巧:往往同一个asn的机器,一般只要一个不行,基本都不行,直接搜索语法排除这些机器。如果发现可以使用的,记住它的asn码,下次直接检索这一批的机器。

正常的是代理服务器访问,显示香港地区。

香港netflix

劫持之后,显示的是韩国地区。

韩国netflix

warp代理解锁
#

warp是cloudflare的免费代理工具,相当于给自己的机器分配一个本地区域的代理。这个代理解锁比较好。

但是因为如果使用的是香港的机器,分配的也是香港的代理,对于那些封闭地区的网站来说,就没用了。例如chatgpt,香港就是不让用。😁😁😁

我主要是用来搭配二级代理使用,在二级代理的机器上使用warp,用来当一个解锁机器。

主力只用香港,延迟就是王道,不接受反驳😋😋😋。

安装教程
#

  • 添加密钥
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
  • 添加apt源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
  • 安装warp
sudo apt-get update && sudo apt-get install cloudflare-warp
  • 设置为代理模式(重要,不然启动warp机器会失联)
warp-cli set-mode proxy
  • 连接WARP
warp-cli connect
  • 查询代理后的IP地址(warp默认监听40000端口)
curl ifconfig.me --proxy socks5://127.0.0.1:40000

curl ifconfig.me这条命令是查询本机ip,加上参数就是查询代理端口ip。

修改后的配置文件
#

{
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "warpproxy",     #本地socks
      "protocol": "socks",
      "settings": {
        "servers": [
          {
            "address": "127.0.0.1",
            "port": 40000
          }
        ]
      }
    },      
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "levels": {
      "0": {
        "handshake": 10,
        "connIdle": 100,
        "uplinkOnly": 2,
        "downlinkOnly": 3,
        "statsUserUplink": true,
        "statsUserDownlink": true,
        "bufferSize": 10240
      }
    },
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "warpproxy",     #分流规则
        "domain": [
          "geosite:netflix",
          "geosite:openai"
        ]
      },
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

跟二级代理其实没有区别,也是添加一个socks代理,配置分流规则而已。

只不过这个socks是本地40000端口监听的warp程序。

总结
#

建议一套组合拳直接下来。两台机器,一台香港主力机器,一台套了warp的解锁机。

香港机器:二级代理,dns劫持。

解锁机器:套warp

这样基本没有访问不了的网站。

Reply by Email

相关文章

PassWall2的分流设置
·82 字
科学上网 分流
软路由代理工具的设置,ipv4和ipv6共存,去广告,加快DNS解析,分流设置
hysteria2的分流设置
·79 字
科学上网 分流
hysteria2的分流设置
代理协议搭建
··118 字
科学上网 Xui
自建代理协议,使用xui搭建节点,自建梯子进行上网