linuxdo-accelerator 的目标很直接:
- 一键生成并安装本地根证书
- 一键写入和清理
hosts - 本地监听
127.211.73.84:80/443 - 为
linux.do及其子域提供本地接管和转发 - 同时支持脚本场景下的
CLI,以及普通用户可双击使用的桌面 GUI
相信大多佬友都是用梯子访问论坛的,但看之前的我的帖子和这个帖子,linux.do 实际上是被 SNI 阻断的。运营商检测到 linux.do 的 SNI 后,会直接发出 RST 包,导致连接被重置。
类似 steamcommunity302、Watt Toolkit、dev-sidecar 这类项目,很多是通过 SNI 伪造来解决问题。但 linux.do 运行在 Cloudflare 上,而 Cloudflare 不支持这套 SNI 伪造方案,所以这条路走不通。
至少以目前这个项目的验证结果来看,直接依赖传统 SNI 伪造并不现实。至于 SNI 窃取 / 冒用同 CDN 站点,或者把 SNI 设空这类思路,我这里还没有做完验证,所以 README 里不把它们当作当前可用方案,只先作为可能方向保留判断。
对 linux.do 来说,比较可行的办法是通过 ECH 对 SNI 进行加密,从而绕过运营商的阻断。但问题又来了:运营商会拦截 linux.do 正常 DNS 返回里的 ECH key,导致浏览器拿不到密钥,自然也就无法完成 ECH。
这也是这个项目存在的原因。
- 通过私人
DoH获取可用的ECH key - 支持在配置文件中填入多个
DoH - 支持缓存,避免每次都重新解析
- 避免把私人
DoH配成系统全局,减少额外负载 - 目前测试可在
IPv6网络环境下加速linux.do
几个关键点:
- 项目可以无需梯子一键加速
linux.do - 默认内置的是秦始皇的
DoH,同时也支持你自己配置多个私人DoH - 支持
Linux、Windows、macOS三端 - 额外提供 Android 非 Root 版
- 项目所有流量都在本地处理,没有任何第三方服务器转发
- 需要安装系统证书,并会监听
127.211.73.84上的80/443端口 - 理论上也支持其他被阻断、但支持
ECH的网站,不过这类站点很少
如有 bug,欢迎反馈和 PR。
- 原生 Rust 实现,不依赖 Node 运行时
- GUI 与后台代理逻辑分离,窗口关闭或最小化后后台仍可继续工作
- 支持系统提权,适合证书安装、
hosts写入和127.211.73.84:80/443低端口监听 - 配置项集中在单个
linuxdo-accelerator.toml - Android 非 Root 版通过 DNS 代理接管
linux.do相关解析,无需 Root、无需安装证书 - 三端统一思路:
- Windows:双击打开
.exe - Linux:安装
.deb后桌面启动 - macOS:拖入
Applications后直接打开
- Windows:双击打开
Android 版目前走的是 DNS 代理接管方案:
- 无需 Root
- 无需安装证书
- 只接管
linux.do及其子域的 DNS - 普通域名仍走系统默认 DNS
当前限制也比较明确:
- 推荐使用 Chrome、Edge 这类支持
ECH / HTTPS RR的浏览器 - 系统自带浏览器和 WebView 不一定支持
ECH,在部分设备上可能仍会超时 - 后续可能继续提供 Root 版,配合系统证书安装改善系统浏览器和 WebView 兼容性
桌面端默认提供:
开始加速 / 停止加速恢复 hosts / 彻底恢复原始状态- 一键最小化
- 状态与最近操作日志展示
- 当前上游、DoH、证书和域名接管范围预览
- 配置和关于面板
平台行为:
- Windows:支持托盘最小化与恢复
- Linux:Wayland / GNOME 下使用托盘代理恢复窗口
- macOS:支持最小化到 Dock,已接入菜单栏图标恢复链路
本项目定位为本地网络接管与调试工具,主要在用户自己的设备上完成以下操作:
- 本地监听指定回环地址和端口
- 本地生成或安装证书,用于本机 HTTPS 接管测试
- 按配置文件对指定域名进行 DNS / hosts / 本地代理处理
本项目不提供境外代理服务器、中转节点或专用传输通道,不自建国际通信出入口,也不承诺可用于绕过任何地区、网络或平台的访问控制要求。用户访问目标站点时,相关网络连接仍依赖用户现有网络服务提供者提供的通信链路。
用户应自行确认其使用场景符合所在地法律法规、平台规则和单位内部制度。请勿将本项目用于任何违法违规用途;如用于企业、组织或公开分发场景,建议事先咨询专业律师或合规顾问。
初始化默认配置:
cargo run --bin linuxdo-accelerator -- init-config准备证书和 hosts:
sudo cargo run --bin linuxdo-accelerator -- setup仅准备 hosts 规则:
sudo cargo run --bin linuxdo-accelerator -- apply-hosts手动确保首次 hosts 基线备份存在:
cargo run --bin linuxdo-accelerator -- backup-hosts恢复到首次接管前的 hosts 完整备份:
sudo cargo run --bin linuxdo-accelerator -- restore-hosts
backup-hosts默认只创建首次基线备份,不会覆盖已有备份。
clean-hosts/restore-hosts仅适合在加速服务已停止时使用; 如果目标是“尽量完整回到初始状态”,优先使用cleanup。
前台直接启动:
sudo cargo run --bin linuxdo-accelerator -- start停止后台加速:
sudo cargo run --bin linuxdo-accelerator -- stop查看当前状态:
cargo run --bin linuxdo-accelerator -- status直接打开 GUI:
cargo run --bin linuxdo-accelerator默认情况下,程序只使用一个主配置文件 linuxdo-accelerator.toml。
| 平台 | 主配置文件 | 运行状态目录 | 证书目录 |
|---|---|---|---|
| Linux | ~/.config/linuxdo-accelerator/linuxdo-accelerator.toml |
~/.local/share/linuxdo-accelerator/runtime |
~/.local/share/linuxdo-accelerator/certs |
| Windows | %APPDATA%\linuxdo\linuxdo-accelerator\config\linuxdo-accelerator.toml |
%LOCALAPPDATA%\linuxdo\linuxdo-accelerator\data\runtime |
%LOCALAPPDATA%\linuxdo\linuxdo-accelerator\data\certs |
| macOS | ~/Library/Application Support/io.linuxdo.linuxdo-accelerator/linuxdo-accelerator.toml |
~/Library/Application Support/io.linuxdo.linuxdo-accelerator/runtime |
~/Library/Application Support/io.linuxdo.linuxdo-accelerator/certs |
| Android | /storage/emulated/0/Android/media/io.linuxdo.accelerator.android/linuxdo-accelerator.toml |
Android VPN 运行时内存态 | 非 Root 版无需证书 |
如果显式指定:
linuxdo-accelerator --config /path/to/linuxdo-accelerator.toml程序会改用该配置文件;对应的 runtime 和 certs 目录也会优先跟着这个配置目录走。
runtime 目录中还会保存 hosts.backup 与 hosts.backup.json,用于完整恢复首次接管前的
hosts 内容与原始文件属性。
此外还会写入 operations.log,记录启动、停止、恢复和清理等关键操作结果,便于排查问题。
listen_host = "127.211.73.84"
hosts_ip = "127.211.73.84"
http_port = 80
https_port = 443
upstream = "https://linux.do"
proxy_domains = ["linux.do", "www.linux.do"]
certificate_domains = ["linux.do", "www.linux.do", "*.linux.do"]
ca_common_name = "Linux.do Accelerator Root CA"
server_common_name = "linux.do"当前项目把以下内容统一放在同一个配置文件中:
- DoH 上游
- 接管域名列表
- 证书 SAN 域名列表
- 监听地址和端口
默认监听地址和 hosts 回环地址使用 127.211.73.84,而不是 127.0.0.1,这样可以尽量减少与其他只占用 127.0.0.1 的本地代理/抓包/加速软件冲突。
项目当前只包含一个统一可执行文件:
linuxdo-accelerator- 默认直接打开桌面 GUI
- 传入命令参数后作为 CLI 使用
- 负责
setup / apply-hosts / backup-hosts / restore-hosts / start / stop / status / gui等命令 - Windows 下打包为可双击启动的
.exe - Linux 下由
.desktop启动 - macOS 下打包为
.app / .dmg
Android 版当前单独打包为 APK:
linuxdo-accelerator-android-arm64-v8a.apklinuxdo-accelerator-android-x86_64.apk
项目使用 cargo-packager,打包配置直接写在 Cargo.toml 的 [package.metadata.packager] 下:
- Windows:
NSIS .exe,同时输出x64和arm64两个变体 - Linux:
.deb,同时输出amd64和arm64两个变体 - macOS:
.dmg,同时输出Apple Silicon (arm64)和Intel (x64)两个变体 - Android:
.apk,同时输出arm64-v8a和x86_64两个变体
本地打包:
cargo install cargo-packager --locked
cargo packager --release只打 Linux deb:
cargo packager -f deb --releasemacOS 安装提示:
- 如果首次打开
.app或安装.dmg后遇到系统拦截,需要去“设置 -> 隐私与安全性”里点击“允许” - 允许后再重新打开应用即可
- 如果仍然打不开,可以在“隐私与安全性”页面里找到对应提示后再次确认放行
macOS 不再走本地交叉编译脚本,而是通过 GitHub Actions 原生构建:
- Linux runner:生成
.deb - Linux ARM runner:生成
arm64 .deb - Windows runner:生成
x64 NSIS .exe - Windows ARM runner:生成
arm64 NSIS .exe - macOS ARM runner:生成
arm64 .dmg - macOS Intel runner:生成
x64 .dmg - Android runner:生成
arm64-v8a .apk - Android runner:生成
x86_64 .apk
相关工作流见:
当前定位仍然比较明确:
- 站点专属本地接管,不是系统全局代理
- 以
HTTP / HTTPS为主 - 侧重
linux.do及其关联域名
本项目已经完成并验证过的关键点:
- Linux Wayland / GNOME 下的最小化和恢复
- Windows 托盘恢复、图标打包和无黑框提权
- macOS 本机编译与窗口最小化恢复链路
- 证书、
hosts和运行状态文件统一管理
- 首次写入系统
hosts前,会在runtime目录自动创建完整备份 clean-hosts只删除linuxdo-accelerator自己维护的 marker blockrestore-hosts会用完整备份覆盖当前hosts,适合停止使用后的显式恢复cleanup会优先尝试恢复首次接管前的完整备份;如果完整备份缺失、损坏、状态异常或恢复失败,会退化为仅清理 marker block;遇到损坏 / 异常备份时还会顺带清掉失效备份,避免后续继续卡在错误状态- Windows 下会在写入前自动处理
hosts的只读属性,并在写入后恢复原始文件属性 - Windows 下对
hosts原子替换增加了共享冲突重试,降低杀软 / 系统进程短暂占用导致的恢复失败概率 - 当前恢复范围以
hosts内容与常见文件属性为主,不额外恢复自定义 ACL / owner

