-
Notifications
You must be signed in to change notification settings - Fork 4.4k
convert domain names to lowercase when matching #195
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
Conversation
哈哈,其实我也正在研究这个 我在想一个更深远的问题,比如配置文件的域名是否应该也先 strings.ToLower? |
或者先不管配置文件(应该没人会大写吧),先给各处收到的域名加 strings.ToLower 比如目前我看了 sniffing 的 tls 以及 fallbacks 判断的 serverName 都是没有这个转换的 |
配置文件我觉得不用管, 并且geo的数据肯定是标准的. |
这个修改对sniffing 有效,因为域名匹配还是这个位置. |
PS: 隔壁那个新matcher内存需求较大, 同样规则翻倍起步, 考虑到低配设备, 还是不用了. |
对 sniffing 新的 domainsExcluded 无效,它是直接判断的,所以嗅探出 tls 的域名是大写的话就绕过了 fallbacks 也是直接 strings.Contains。。。感觉这些是一个系统性 strings.ToLower 工程 |
domainsExcluded 刚加的...所以他没有使用之前同样的判断规则吗? |
这个的确没有必要,TCP 的连接数很少,这类优化几乎不会带来体验提升。优化的方向应该是跑量时的零拷贝。 |
这两个我来处理,你想一下还有哪些地方需要 strings.ToLower |
其实严格来说,UDP 相关的很多代码也需要 strings.ToLower。。。涉及太广,先不动 UDP |
也许 domainsExcluded 也应该可以用现在的匹配规则.一则统一,二则支持更多的配置方式. |
特殊需求,暂时先保持简单吧,不过之后所有这种匹配的肯定要统一一下实现 |
OK. 其他的再想想.... |
* https://github.com/XTLS/Xray-core: v1.2.3 Changes from v2fly-core (XTLS#173) Fix fallbacks xver when original address is not TCP address (XTLS#182) Convert domain names to lowercase before matching (XTLS#195) Feature: Exclude some domains in sniffing destOverride (XTLS#151) Regenerate .pb.go files (XTLS#187)
fix #192