玩转XRay分流规则

friend 发布于 19 天前 94 次阅读


AI 摘要

新生的MJJ论坛需要雄心勃勃的内容,而我透过这个引人入胜的指南,向您展示如何手动创建XRay分流规则,实现网络连接的精细化管理。从轻松绕过地理限制到实现流媒体解锁,这篇文章将帮助您掌握强大的路由和代理设置技巧,满足各种用户场景需求。您不仅能优化网络体验,还能规避IP封禁,让您的节点使用更加灵活和高效。加入我们,探索配置文件的秘密,并掌握这项重塑上网体验的技术!

前言

庆祝新的MJJ论坛诞生,响应坛主号召,为新论坛贡献一份绵薄之力,我左思右想,想来想去,思钱想厚,也不知道写点什么。当我看到有人提问谷歌送中,分流等相关帖子时,于是有了思路。这边文章将会教你如何手搓适合自己的分流规则,俗话说,授人以鱼不如授人以渔,本文以最常用的XRay内核和3XUI面板为例。

分流规则的用处

可以使线路鸡+落地鸡灵活搭配,让你的节点不光快,还能完美IP问题,如流媒体解锁,AI降智,谷歌送中等。还可以一鸡多吃,屏蔽大陆方便拼车被墙IP等。

Xray的配置文件简介

既然要手搓分流规则,那就要先了解一些Xray的配置文件,主要包含入站规则(inbounds),出站规则(outbounds),路由规则(routing)。

如下图(3XUI)

一般分流只涉及出站规则(outbound)和路由规则(route),在出站规则中添加其他代理节点,如Socks5(公网不推荐),SS等协议,在路由规则中添加命中的分流规则使用哪个出站代理。

常见的出站规则

Blackhole:黑洞协议,阻断该连接,标签(tag)通常为blocked

{
    "tag": "blocked",
    "protocol": "blackhole",
    "settings": {

    }
}

Freedom :自由协议,直连,标签(tag)通常为direct,直接使用本机进行连接,domainStrategy默认为AsIs,也可以修改为UseIPv4/v6进行连接。

{
    "tag": "direct",
    "protocol": "freedom",
    "settings": {
        "domainStrategy": "AsIs",
        "redirect": "",
        "noises": [

        ]
    }
}

Socks:不建议公网使用,通常用于本机,当然如果你有大善人Alice的免费鸡,还可以实现一鸡多吃,比如Alice的免费台湾家宽出口,就可以按下面的Json示例增加出站规则。

{
    "tag": "tw_proxy",
    "protocol": "socks",
    "settings": {
        "servers": [
            {
                "address": "xxx:xxx:xxx::1",
                "port": 30000,
                "users": [
                    {
                        "user": "alice",
                        "pass": "xxxx..xxx"
                    }
                ]
            }
        ]
    }
}

Shadowsocks:境外鸡建议使用该协议,最简单的AES128加密即可,如下图示例Json

{
    "tag": "unlock_proxy",
    "protocol": "shadowsocks",
    "settings": {
        "servers": [
            {
                "address": "x.x.x.x",
                "port": 10000,
                "method": "aes-128-gcm",
                "password": "xxx",
                "udp": true
            }
        ]
    }
}

如果使用3XUI,可以使用面板提供的导入功能,导入任意协议(不支持hy2)的节点,如下图。

我们还可以使用3XUI的Warp功能添加一个Warp节点用于出站,比如你的小鸡谷歌送中了,就可以使用Warp分流谷歌,或者一些大陆的域名,也可以分流到Warp防止IP被墙,在使用全局代理规则时,也能正常使用国内软件,而不是直接blocked。

常见的分流规则

分流规则需要配合出站规则使用,我们可以通过分流规则解决很多问题,比如常见的流媒体解锁,Warp分流谷歌解决送中问题等等。

在介绍分流规则之前,必须介绍两个非常重要的东西:geoip和geosite。任何xray内核安装好一般会自动下载geoip.dat和geosite.dat两个数据库文件。分别表示IP数据库和域名数据库。

使用geoip分流

geoip:与国家缩写一起使用,代表该IP是否来自某个国家,比如geoip:cn,表示中国大陆IP。

比如下面的Json配置表示来自中国大陆的IP进行阻断(黑洞),比如你有个家宽,想分享给朋友用,但不想直连被墙IP。

{
    "type": "field",
    "source": [
        "geoip:cn"
    ],
    "outboundTag": "blocked"
}

geoip:private,表示屏蔽内网ip段,通常都会默认添加该规则

{
    "type": "field",
    "outboundTag": "blocked",
    "ip": [
        "geoip:private"
    ]
}

使用geosite分流

geosite:与国家缩写一起使用,代表该域名是否来自某个国家,比如geosite:cn,表示中国大陆域名。geosite:geolocation-!cn,表示非中国大陆域名。

比如下面的Josn配置表示当访问中国大陆域名时,使用上面的Warp访问,避免机器IP被墙

{
    "type": "field",
    "outboundTag": "warp",
    "domain": [
        "geosite:cn"
    ]
}

geosite:与预定义标签一起使用,比如geosite:netflix,表示奈飞域名。

比如下面的Josn配置表示访问奈飞时,使用上面的ss协议出站,已达到解锁奈飞的目的

{
    "type": "field",
    "domain": [
        "geosite:netflix"
    ],
    "outboundTag": "unlock_proxy"
}

当然你还可以跟其他域名一起连用,比如下面的Json配置表示当访问OpenAI/Claude/Sora.com时使用home_proxy这个出站节点,以实现在使用AI时,使用家宽IP进行访问,防止降智。

{
    "type": "field",
    "domain": [
        "geosite:openai",
        "geosite:anthropic",
        "sora.com"
    ],
    "outboundTag": "home_proxy"
}

下面列举一些常见的预定义标签

"geosite:disney"
"geosite:netflix"
"geosite:openai"
"geosite:anthropic"
"geosite:tikTok"
"geosite:reddit"
"geosite:twitter"
"geosite:github"
"geosite:cloudflare"
"geosite:instagram"
"geosite:telegram"
"geosite:apple"
"geosite:google"
"geosite:microsoft"
"geosite:facebook"

屏蔽BT协议

因为国外有DMCA 版权问题,除了特别的抗投诉的机器外,一般建议禁止BT协议,不然可能会吃abuse。参考以下Json配置,通常会自带该规则。当然你还可以把bt分流到抗投诉的vps上。

{
    "type": "field",
    "outboundTag": "blocked",
    "protocol": [
        "bittorrent"
    ]
}

根据入站端口分流

你有一个香港线路鸡,拉不同的落地鸡,可以根据不同的入站端口实现分流到不同的落地鸡。

比如我想实现入站端口为60001时,使用hk节点出站,入站端口为60002时,使用台湾hinet出站。

先创建入站规则,如下图

在分流规则在填写以下Json配置文件

{
    "type": "field",
    "inboundTag": [
        "inbound-60001"
    ],
    "outboundTag": "hkhome_proxy"
},
{
    "type": "field",
    "inboundTag": [
        "inbound-60002"
    ],
    "outboundTag": "hinet_proxy"
}

注意:该Josn示例不适用于XrayR等后端,仅针对使用3XUI面板。

根据用户名分流

当然也可以实现同一个节点,根据不同用户名进行分流,不过我更推荐使用端口号分流。

{
    "type": "field",
    "user": [
        "krtk6zqd"
    ],
    "outboundTag": "hkhome_proxy"
}

根据出站端口号分流

以下配置表示访问目标网站端口号为0-65535时,均使用unlock_proxy出站。

{
    "type": "field",
    "port": "0-65535",
    "outboundTag": "unlock_proxy"
}

暂时就写这么多,应该能满足99%的MJJ需求了,有更多需求的佬建议官方文档,觉得有用的佬友请帮我点个小红心,感谢!