1 为什么在 Chromebook 上用 Crostini 跑 Mihomo
许多读者已经熟悉 Windows、macOS 或常规桌面 Linux上的图形客户端;Chromebook的差异在于:系统层是 ChromeOS,用户能直接安装的「桌面代理 GUI」选择更少,而 Crostini提供了一个受支持的 Linux 容器,里面可以用与服务器几乎相同的方式运行命令行核心。把 Mihomo当作容器内的常驻进程,配置文件仍沿用 Clash 兼容的 YAML,学习成本与站内《Linux 安装 Mihomo 并开机自启》一文相通,只是自启方式与网络命名空间要按 Chrome OS 的规则多走一步。
若你已有机场提供的 Clash/Mihomo 订阅链接,可直接用 proxy-providers拉取;若链接格式是 SS、V2Ray 等散装协议,可先阅读《订阅转换完全指南》生成可合并的片段。本文默认你持有一条可在容器内用 curl访问的 HTTPS 订阅 URL,并理解泄露该 URL 等同于泄露节点凭证,务必将配置目录权限收紧。
与「把默认网关指到旁路由或 NAS」的拓扑不同,本文走的是显式 HTTP/SOCKS 代理路径:手机或游戏机填 Chromebook 的局域网 IP 加端口即可,无需改 DHCP。若你希望主机级透明代理或 TUN 全家桶,可继续在其它设备上使用图形客户端;本站下载页提供了 Windows、macOS 与 Linux 桌面方案,与 Crostini 命令行核心可以并存于不同机器。
2 前置:开启 Linux 开发环境并确认 CPU 架构
在 Chromebook 上打开「设置 → 开发者 → Linux 开发环境」,按向导创建默认 penguin容器。首次进入终端后执行 sudo apt update && sudo apt install -y curl ca-certificates,确保能访问订阅地址与 GitHub Release(若校园或公司网络拦截,请先在合规前提下解决出口问题)。
在容器终端执行 uname -m:x86_64对应 Mihomo 的 linux-amd64发行包;若为 aarch64则选择 linux-arm64。Chromebook 型号众多,下错架构会导致「Exec format error」。磁盘与内存建议至少预留数百兆给 Geo 数据与日志,避免订阅更新时写满主目录。
systemd托管与 /etc/mihomo全局路径;Crostini 内往往没有完整宿主级 systemd 体验,本文以用户目录配置与后台进程为主,需要开机自启时可自行编写简单 shell 启动脚本,不必强行照搬服务器单元文件。
3 安装 Mihomo 可执行文件
在用户目录创建配置根路径,例如 mkdir -p ~/.config/mihomo/providers。前往 Mihomo 官方 GitHub Releases,复制与你架构匹配的压缩包链接(下例版本号请替换为当前最新):
cd ~
curl -LO https://github.com/MetaCubeX/Mihomo/releases/download/v1.18.0/mihomo-linux-amd64-v1.18.0.gz
gunzip -f mihomo-linux-amd64-v1.18.0.gz
chmod +x mihomo-linux-amd64-v1.18.0
mkdir -p ~/.local/bin
mv mihomo-linux-amd64-v1.18.0 ~/.local/bin/mihomo
将 ~/.local/bin加入 PATH(在 ~/.bashrc 末尾追加 export PATH="$HOME/.local/bin:$PATH" 并 source ~/.bashrc),随后执行 mihomo -v确认版本输出正常。
4 订阅导入:proxy-providers 与策略组
在 ~/.config/mihomo/config.yaml写入骨架配置。下面演示用 proxy-providers从远程 URL 周期性拉取节点,并由 proxy-groups引用;把 YOUR_SUB_URL换成真实订阅,把 secret换成强随机字符串。若订阅内含规则,也可改为 proxy-providers搭配 rule-providers,此处保持最小可读模板。
mixed-port: 7890
allow-lan: true
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
secret: "replace-with-strong-secret"
dns:
enable: true
listen: 127.0.0.1:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5
fallback:
- https://1.1.1.1/dns-query
proxy-providers:
sub:
type: http
url: "YOUR_SUB_URL"
interval: 3600
path: ./providers/sub.yaml
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 600
proxy-groups:
- name: PROXY
type: select
use:
- sub
proxies:
- DIRECT
rules:
- GEOIP,CN,DIRECT
- MATCH,PROXY
保存后执行 mihomo -t -d ~/.config/mihomo做语法与订阅拉取测试;若报错,优先检查 YAML 缩进是否仅含空格、订阅 URL 是否需额外 User-Agent(少数机场要求,可在文档或客服说明中查阅)。含敏感信息的文件建议 chmod 600 ~/.config/mihomo/config.yaml。
external-controller留在 127.0.0.1,不要把 REST 面板暴露到局域网或公网,除非你明确知道风险并辅以防火墙与复杂密钥。局域网共享仅需混合代理端口,无需开放 9090。
5 启动 Mihomo 与日常自检
首次前台调试可执行 mihomo -d ~/.config/mihomo,观察终端是否成功下载 providers/sub.yaml并载入节点。确认无误后,可用 nohup mihomo -d ~/.config/mihomo >/tmp/mihomo.log 2>&1 &放入后台,或安装 screen/tmux会话长期附着。Crostini 容器随 Chrome OS 睡眠可能暂停进程,唤醒后若代理不可用,重新执行启动命令即可。
在容器内用 curl -x http://127.0.0.1:7890 -I https://www.google.com验证出口;若失败,先看日志里是 DNS、握手还是节点超时,再对照《Meta 内核 DNS 防泄漏》微调 dns段。更新订阅后若节点列表未变,可删除 providers/下缓存文件后重启进程强制重拉。
6 本机 Chrome OS 与局域网设备的代理设置
Crostini 与 Chrome OS 主系统之间存在网络隔离:Linux 里监听的 7890不会自动出现在 Chrome 浏览器的「本机 127.0.0.1」视角。要让本机其它组件访问,请在「设置 → 开发者 → Linux 开发环境 → 端口转发」中添加 TCP 规则,把容器的 7890映射到主机侧(界面会提示可填的本地端口,常见仍写 7890)。映射成功后,Chrome OS 应用若支持手动代理,可尝试 127.0.0.1:7890作为 HTTP/HTTPS 代理;具体 App 是否尊重系统代理因应用而异。
对同网段其它设备:在 Chromebook 上打开「设置 → 网络」,记下当前 Wi-Fi 的局域网 IPv4(形如 192.168.x.x)。保持上文 YAML 中 allow-lan: true,并在路由器或本机防火墙策略允许来自信任网段的入站连接后,其它设备的手动代理可填「HTTP 代理:该 IP;端口:7890」,或按客户端支持填写 SOCKS5。若连接被拒绝,回到端口转发与 allow-lan逐项排查,并确认没有第二只安全软件拦截无线网卡入站。
只想让游戏机或电视临时借用代理的读者,可对照《将 Clash 设为主机代理网关》里关于 UDP、延迟与 DNS 的讨论;本文的 Mihomo 实例同样可作为 HTTP/SOCKS 上游,区别在于你填的是 Chromebook IP 而非台式机。
7 外部控制器与 Web 面板(可选)
若希望在容器内用浏览器切换节点,可保持 external-controller监听 127.0.0.1:9090,并按《Mihomo 外部控制器与 Yacd 面板》挂载本地 Yacd。需要把面板暴露到 Chrome OS 主浏览器时,可为 9090 另建一条仅本机的端口转发,切勿对公网开放。
8 常见问题
- 容器内有网,Chrome 浏览器仍不走代理:检查是否完成 Linux → Chrome OS 的端口转发,并确认目标应用是否读取手动代理而非仅系统 VPN。
- 手机填了 Chromebook IP 仍超时:核对两台设备是否同一网段、
allow-lan是否为true、路由器是否开启「客户端隔离」。 - 订阅更新后节点消失:看
providers/sub.yaml是否为空或解析失败,必要时更换 DNS 或给proxy-providers增加合适的header。 - 想要 TUN 级全局接管:Crostini 内启用 TUN 门槛高,更现实的做法是在其它平台使用支持 TUN 的 Clash 图形客户端,或查阅当前内核是否允许在容器外加装额外模块——这已超出本文「命令行核心 + 手动代理」范围。
9 总结
Chromebook通过 Crostini把 Linux 容器变成可维护的代理宿主:安装 Mihomo、用 proxy-providers完成订阅导入,再配合 allow-lan与 Chrome OS 端口转发,就能把 Clash 兼容规则引擎搬到这台轻薄本上,并分享给同网段设备做局域网代理。与站内通用 Linux systemd教程相比,本文刻意补齐了 Chrome OS 网络栈与转发这一层,避免读者照抄服务器配置却在浏览器侧怎么都不通。
相比仅依赖浏览器插件的方案,自托管核心让你能在容器里统一处理终端、开发与订阅更新;若你还希望在 Windows 或 macOS 上获得一键 TUN 与图形化订阅管理,相比其它同类工具,Clash 系在规则可读性与 Mihomo 生态上往往更容易与本文配置互相迁移。
需要图形客户端或跨平台安装包时,请优先访问本站下载页;开源仓库适合查阅协议与提交问题,日常安装仍以站点分发为准。