最近折腾的东西有点多, 只讲和文章有关的吧, 编译了一个 OpenWrt 包给路由器刷上, 抛弃openclash 这个臃肿的插件, 使用 OpenWrt-mihomo, mihomo 插件需要 OpenWrt >= 23.05, Linux Kernel >= 5.10, firewall4, 我比较懒就直接重装系统了, 新系统是自带插件的. nftables (firewall4) 涉及系统核心防火墙, openclash 又是屎山, 所以升级失败是很正常的.
如标题所说, 向日葵插座和米家设备一样, 需要跳过域名嗅探的.
根据我的测试, c1pro 型号和 c2 型号(多了个电量显示和电量统计的功能) 是不一样的, c1pro 需要多加一个域名.
如果是 c1pro 插座, sniffer 这样写:
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: true
skip-domain:
- '+.oray.com'
- '+.oray.net'
如果是 c2 的, 把 com 域名去掉, 这样写:
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: true
skip-domain:
- '+.oray.net'
sniff: #这里我比较激进, 嗅探了所有端口, 以防漏网之鱼
HTTP:
ports: [1-65535]
TLS:
ports: [1-65535]
QUIC:
ports: [1-65535]
为什么 c1pro 的会多一个? 因为在我实际测试中, 如果不加, 在配对的时候添加成功, 但设备重启后无法联网, 在 app 里面就会显示离线.
另外, 我记得向日葵的插座在通信时连接的不止一个域名, 好像是不定期切换的, 所以我直接用了 +. 来匹配所有, 懒得一个个添加了, 不然三天两头离线.
如果关闭 override-destination 其实也行, 但我为了防止漏网之鱼, 尤其是伪造域名 sni 请求(比如 cloudflare+浏览器doh 组合而成的 Encrypted Client Hello (ECH), 其实原理也是伪造一个 sni 是 cloudflare-ech.com 有没有子域名具体忘记了, 这样的话, 如果我开启 override, 我的 mihomo 内核就成了一个内网的"墙", 伪造域名的网就不通, 一定程度上拦截了伪造域名, 主要是防国内毒瘤), 所以就打开了.
提到了 ECH, 那就再讲讲目前 ECH 的实际使用形式, 截至我发文的 2024年12月9号, 必须是浏览器打开 DNS over HTTPS ( DoH ), 然后才能在开启 ECH 功能的网站上使用, 墙看到的就是一个固定的域名(目前是这样的), cloudflare-ech.com, 那这个特征也非常明显, 不排除以后墙掉. 说是 Encrypted 我是质疑的, 这其实是伪造, 和 vless + xtls-rprx-vision 那种伪造是一样的. 只不过后者是个代理协议, 能指定伪装域名罢了. 我测试过, 不能以在路由器上使用 doh 的形式形成 ech, 哪怕是在使用的电脑上设置一个 AdguardHome 服务, 再让它去请求 doh 服务器也不行. 必须是浏览器本身. Google Chrome 或者 Mozilla Firefox 都可以, 中间不能有中介. 如果你的上网环境没有 Mihomo 的保护, 那这个 ech 算是一种保护的手段, 即使不要 ech 只用 doh 也是很好的保护, 但我在局域网内的设备是有去广告和阻止数据收集的需求的, 综上所述, 我选择 override-destination: true 以及不用 Encrypted Client Hello.
0 条评论:
发表评论