星期六, 十二月 21, 2024

182 Firefox 火狐浏览器 清除 console 控制台中的历史执行记录

从 Google Chrome 切到 Mozilla Firefox 已经有一年了, 除了网络异常的错误代码非常沙比以外, 火狐用起来感觉还不错. 

最近碰到一个问题, 由于在 console 控制台下跑了 JavaScript 脚本, 发现无法清除历史记录, 就像 cmd 上下键和 ssh 上下键那样可以直接恢复回来, 很烦. 

网上搜了一下, 开发者们大概在五年前就在烦恼这个问题了, 解决方法也非常简单, 在 console 中执行:

clearHistory()

就这么简单. 

 

感谢以下来源:

https://stackoverflow.com/questions/58021428/delete-firefox-javascript-console-history

https://support.mozilla.org/en-US/questions/1269646

 

星期一, 十二月 09, 2024

181 向日葵插座在 mihomo 内核控制的局域网下无法联网的问题 | override-destination 参数是否需要打开 | 关于 Encrypted Client Hello (ECH) 的一些实际使用经验和见解

最近折腾的东西有点多, 只讲和文章有关的吧, 编译了一个 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.