OpenClash
OpenClash copied to clipboard
[Feature] 希望可以将“仅允许常用端口流量”支持单独控制 UDP 和 TCP 流量
Verify Steps
- [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
- [X] Need 当前 OpenClash 并不包含该功能特性或者还不完善
- [X] Framework 这是 OpenClash 应包含的特性, 并非 Clash 特性
- [X] Meaningful 我提交的不是无意义的 催促更新或修复 请求
Describe the Feature
功能描述
OpenClash 中的“仅允许常用端口流量”功能希望可以区分 UDP 和 TCP。
这个功能如何影响到我
由于P2P等流量一般使用 UDP 进行传输,而 TCP 流量一般不需要区分端口进行流量过滤
目前 OpenClash 的行为
目前 OpenClash 中的“仅允许常用端口流量”功能会同时控制 TCP 和 UDP 的流量
Describe the Solution
可以在界面上将“仅允许常用端口流量”分为两个设置项,或者在手动设置里将字符串改为区分 TCP 和 UDP 的格式。
在设置 Linux 本机路由规则的 Lua 脚本里,分开设置 TCP 和 UDP 的流量规则。
Describe Alternatives
把 TCP 相同的端口也过滤掉有什么影响?
- 部分游戏/服务为了规避运营商/设备的一些限制,将 STUN 服务端口设置为了比如 443 之类的端口,但由于 HTTP/3 需要经过代理,所以无法将这部分流量独立剔除。
- 新版 Google 框架在部分设备上(比如 Android 14 的 Pixel)会往除了 522x 以外的非常规端口发一些 TCP 请求,如果这些请求发送失败,那么即使 generate_204 成功返回,那么手机也会自动切换到蜂窝网络。而这些端口目前没找到 Google 公开的端口列表和明显的规律,所以只能关闭“仅允许常用端口流量”来确保手机正常使用。(部分国行版 GMS 框架也有类似的行为,但是不会导致手机断开 WiFi,而是 Google 服务直接不再请求正常服务接口)
为什么不直接不勾选 UDP 流量转发?
有一些需要走代理才能用的服务支持 HTTP/3(比如 ChatGPT),如果不勾选”UDP 流量转发“转发会直接走 HTTP/3 直连,即使勾选“禁用 QUIC“也不能让 HTTP/3 禁止连接(可能因为不勾选”UDP 流量转发“的话流量根本没进 OpenClash?)
为什么不用 Clash 本身的规则进行过滤?
因为目前 OpenClash 设置流量通过内核后会使 NAT 类型降级,从而影响到 P2P 软件和部分游戏联机(相关 Issue 关联:#2288)
实测即使将 Clash 模式设置为 Direct 仍然会导致 NAT 类型从 FullCone 降级到 PortRestrictedCone。
关于这个问题,Meta 内核本身也存在这个问题,而 Clash Premium 内核如果手动配置并不会导致 NAT 降级,但是无论使用哪个内核,在 OpenClash 中都会导致 NAT 降级。
有没有试过其它流量控制/黑白名单功能来过滤?
试过了,但是发现只有“仅允许常用端口流量”功能可以防止 NAT 降级
Additional Context
No response
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days
bump
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days
bump
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days