vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
16.81k stars 3.1k forks source link

[BUG] 内置 `DST-PORT` 规则的优先级问题以及常用端口无法取消 #2374

Closed Uchiha-Shisui closed 2 years ago

Uchiha-Shisui commented 2 years ago

v0.45.16-beta

我发现启用插件后,所有的流量均走代理。 分析后发现,指定端口代理生成的规则,优先级高于原配置文件附带的规则。 导致还没有分流就直接走了MATCH

相关: https://github.com/vernesong/OpenClash/issues/1805

1. 内置规则的优先级问题

- DST-PORT,80,MATCH
- DST-PORT,443,MATCH
- DST-PORT,22,MATCH

应该强制在所有规则的最下方,这里却在配置规则中间部位。 导致后续的规则过滤器失效。

https://github.com/vernesong/OpenClash/blob/9ea0c91b614ec056fb458680ecebb59572cf10e7/luci-app-openclash/root/usr/share/openclash/yml_rules_change.sh#L483-L494

我没仔细研究代码,不知道有没有处理好,但这个规则显然应该强制放到所有规则最后,或者增加一个优先级调整功能。

2. 取消仅允许常用端口流量选项后,配置文件中依然保留了

- DST-PORT,80,MATCH
- DST-PORT,443,MATCH
- DST-PORT,22,MATCH

尝试恢复默认配置依然无效,是我哪里忽略了? 重新上传配置文件后解决。

vernesong commented 2 years ago

这个是仅代理命中规则流量

vernesong commented 2 years ago

仅允许常用端口流量 会在防火墙限制,流量不会进clash

github-actions[bot] commented 2 years ago

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