Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: 为下挂设备和路由器本机的透明代理应用不同的分流规则 #3471

Open
moetayuko opened this issue Nov 4, 2024 · 6 comments
Labels
enhancement New feature or request

Comments

@moetayuko
Copy link
Contributor

描述你想要的新功能

允许 xray 分流为下挂设备和路由器本机设置不同的路由规则

描述你想要的解决方案

给本机和下挂设备使用不同的透明代理端口,然后打不同的标签?

描述你考虑过的替代方案

No response

其他信息

No response

@moetayuko moetayuko added the enhancement New feature or request label Nov 4, 2024
@lwb1978
Copy link
Collaborator

lwb1978 commented Nov 4, 2024

这个工程貌似相当庞大 :)

@moetayuko
Copy link
Contributor Author

不知道 xray 有没有内部机制实现这种功能,从而避免动 nftable

我目前的 usecase 是给 UnblockNeteaseMusic 分流,并且用了下面这种替代方案:

      {
        "type": "field",
        "network": "tcp,udp",
        "outboundTag": "direct",
        "source": [
          "10.0.0.2"
        ],
        "domains": [
          "domain:music.163.com"
        ],
        "_flag": "ncm_direct_domains"
      },
      {
        "type": "field",
        "network": "tcp,udp",
        "outboundTag": "ncm",
        "domains": [
          "domain:music.163.com"
        ],
        "_flag": "ncm_domains"
      },

其中 10.0.0.2 是路由器本机的出站地址。

这种方案最明显的问题是需要在分流规则里把 source 写死,不适用于 ip 动态变化的情况

@lwb1978
Copy link
Collaborator

lwb1978 commented Nov 9, 2024

应该可以在分流规则的设置界面加上源地址选项

@moetayuko
Copy link
Contributor Author

应该可以在分流规则的设置界面加上源地址选项

界面是有这个选项的,问题在于只能设成一组固定的 ip,一旦公网 ip 变化就得手动去改。然后 xray 似乎也没有提供类似 geoip 这样的特殊标记来表示本机所有的出口 ip,所以我才想着使用不同的透明代理端口,从而通过 tag 来区分本机流量

@lwb1978
Copy link
Collaborator

lwb1978 commented Nov 9, 2024

忘了分流设置是有源地址的,也有geoip,不过可能你需要自己修改一下规则列表,添加本机出口ip组

@moetayuko
Copy link
Contributor Author

不过可能你需要自己修改一下规则列表,添加本机出口ip组

问题就在这,出口 ip 是 dhcp 动态获取的,实践中不可能每次重新拨号都去手改一遍规则,所以不能简单依赖源地址做分流

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants