Series: 网上冲浪指南

  • 网上冲浪指南 – 001

    网上冲浪指南 – 001

    This entry is part 1 of 3 in the series 网上冲浪指南

    AstroNvim https://astronvim.com

    一个全功能的 NVim 发行版,开箱即可获得非常完整的 IDE 体验,预设的快捷键很符合我这个前 SpaceVim 用户的使用直觉。它跟 SpaceVim 有很多不同的地方:

    • AstroNvim 使用 lua 作为配置语言,官方提供了一个用户配置模板帮助用户自定义 AstroNvim。
    • 正如它的名称所示,AstroNvim 只支持 neovim 。

    这是我的 AstroNvim 配置 https://github.com/ZeekoZhu/AstroNvim

    Burning Vocabulary https://burningvocabulary.com

    这是一款简单好用的背单词浏览器插件,网上冲浪遇到不认识的单词,只需要用鼠标选中它,插件就会自动查询翻译并展示翻译结果,并且在之后的浏览中,会自动在网页上标注查过的生词。我个人认为,类似的浏览器插件有很多,但上手难度比它低、使用的顺滑度比它高不多:

    我现在会把 Burning Vocabulary 翻译的目标语言设置成英文(就是用英文解释英文),跟沙拉词典搭配使用,因为沙拉词典支持的词典源更加丰富,让我暂时还不能放弃。

    System Rescue https://www.system-rescue.org

    这是一个 Linux 系统急救工具箱,基于 Arch Linux 开发,一共 700M 的镜像大小,可以使用 Ventoy 制作成 Live CD 使用。

    最近我在扩容工作用笔记本 /root 分区时发现了它,自带图形界面跟 GParted,比单纯的 Arch Install ISO 要方便很多。

  • 网上冲浪指南 – 002

    This entry is part 2 of 3 in the series 网上冲浪指南

    Kitty https://sw.kovidgoyal.net/kitty/

    Kitty 是我现在的主力终端模拟器,它使用 GPU 渲染,性能强劲,并且功能强大:

    • 支持 CLI 命令操作 Kitty 界面(窗口、Tab),可以方便地用脚本打造自己的终端工作环境
    • 支持图像协议,cat 一个图片、视频会直接在终端展示,而不是被二进制输出糊一脸

    分享一下我使用 Kitty 快速启动工作环境的 fish shell 脚本:

    function work-start
      cd ~/path/to/project
      # 分屏打开一个新的 kitty 窗口
      set win1 (kitty @ launch --location split --copy-env --cwd current)
      # 分屏打开一个新的 kitty 窗口
      set win2 (kitty @ launch --location split --copy-env --cwd current)
      # 在窗口 1 中登录远程开发服务器
      kitty @ send-text --match id:$win1 'ssh foo@remote-server -t "screen -r dev"\n'
      # 在窗口 2 中启动代码同步服务
      kitty @ send-text --match id:$win2 'lsyncd ./frontend.lsyncd\n'
      # 光标聚焦回当前窗口
      kitty @ focus-window --match id:$KITTY_WINDOW_ID
    end
    
    在终端查看图片

    Chezmoi https://www.chezmoi.io

    Chezmoi 是一个基于 Git 管理 dotfiles 的命令行工具,我的个人目录下有各种各样的配置文件,为了能够在台式机跟笔记本上有相同的体验,我会使用 Chezmoi 定期在两台电脑上同步配置。Chezmoi 的这些功能我认为非常重要,能够极大地简化在多设备上维护配置文件的操作:

    • 文件模板,允许我们在应用配置之前使用变量替换模板文件中的占位符,这样类似主机名、用户名这样的每台机器上可能不尽相同的信息就可以从配置文件提取出来,方便复用配置模板
    • 密码管理器,像 ssh key 这样的信息并不适合明文存储在 Git 中,好在 Chezmoi 的模版语法中允许我们调用常用的密码管理器,从中读取信息

    搞机工具箱 https://www.coolapk.com/apk/com.byyoung.setting

    这是一款功能丰富过头的 Android 手机工具箱,其功能包括但远不限于:

    • Magisk 模块管理
      • 模块安装、卸载、编辑、更新、备份
      • 音量键救转
    • Xposed 模块管理
      • 模块安装、卸载、编辑、更新、备份
    • 应用管理
      • 系统、用户应用安装、卸载、冻结、编辑权限、多开、提取 apk、设置程序语言、备份、还原、IFW 设置
      • 替换国产系统恶心人的应用安装器
    • 系统工具
      • SWAP 设置
      • 查看 Wifi 密码
      • 修改 Host

    这些功能只是我最常用的,它们只是搞机工具箱全部功能的冰山一角,而且由于功能过多且晦涩,导致用户体验很差,上手难度比较高。
    不过总的来说,瑕不掩瑜,是一款不可多得的搞机必备应用。

  • 解决 Cloudflare Tunnel 无法通过 Passwall2 连接的问题

    This entry is part 3 of 3 in the series 网上冲浪指南

    最近发现家里 NAS 上部署的 cloudflared 很容易掉线,切换节点也不好使。

    找了一圈互联网资料后,最后根据这篇文章的描述,成功修复了 passwall2 的配置。

    简单来说, Cloudflare Tunnel 客户端(Cloudflared)会先解析 region1.v2.argotunnel.com/region2.v2.argotunnel.com 的地址,再用 quic.cftunnel.com/h2.cftunnel.com 作为 SNI 去请求。

    当开启 Passwall2 上的覆盖连接目标地址功能时,Xray 就会在转发流量时用 *.cftunnel.com 替换掉 Cloudflared 客户端获取的真实地址,当流量达到远程 Xray 时,由于 *.cftunnel.com 并没有 A/AAAA DNS 记录,就会导致流量转发失败,从而出现这样的错误:

    2025-05-09T14:07:05Z ERR Serve tunnel error error="TLS handshake with edge error: EOF" connIndex=0 event=0 ip=198.41.192.57

    要解决这个问题,需要禁用掉 Passwall2 上对 Cloudflare tunnel 相关域名的嗅探功能。

    或者,如果你能保证客户端 DNS 解析没有问题的话,可以干脆禁用掉「覆盖连接目标地址」功能,这也是 Xray 文档中推荐的做法:

    在能保证 被代理连接能得到正确的 DNS 解析 时,使用 routeOnly 且开启 destOverride 的同时,将路由匹配策略 domainStrategy 设置为 AsIs 即可实现全程无 DNS 解析进行域名及 IP 分流。此时遇到 IP 规则匹配时使用的 IP 为域名原始 IP。

    https://xtls.github.io/config/inbound.html#sniffingobject