搜索 K
Appearance
一句话定位:这篇文章不教你「点一下开关」,而是讲清楚
allow-lan: true之后,你的电脑在局域网里到底变成了什么角色、多设备并发时代理链路会在哪里崩、以及崩了之后怎么 5 分钟内定位到具体环节。
先把结论摊开,省得你读完 3000 字才发现方向错了。
适合开局域网共享的场景:
不适合的场景:
一句话:局域网共享的本质是「把代理能力下沉成一台家用网关」,它省的是设备适配成本,换来的是对主力机稳定性和节点承载力的硬要求。
allow-lan 打开之后,数据包到底走了哪条路 这一段是全文的地基,看懂了后面所有问题都能自己推理出来。
Mihomo / Clash 内核默认只监听回环地址 127.0.0.1。配置里的 allow-lan 其实是一个「把监听面扩大」的开关:
| 配置 | 实际监听 | 谁能连上 | 典型误用 |
|---|---|---|---|
allow-lan: false | 127.0.0.1:7897 | 只有本机进程 | — |
allow-lan: true + bind-address: "*" | 0.0.0.0:7897(全部网卡) | 局域网 + 所有虚拟网卡 | 绑定到 WSL / VMware / Hyper-V 的虚拟网卡,局域网连不上 |
allow-lan: true + bind-address: 192.168.1.20 | 仅该网卡 | 同网段设备 | IP 变了之后配置失效 |
划重点:bind-address: "*" 在多网卡机器上是个坑。0.0.0.0 表示监听所有接口,本身没问题,但如果你的路由器做了 IP-MAC 绑定、或者电脑 IP 是 DHCP 随机分配的,第二天 IP 一变,所有客户端配置全废。生产做法是:路由器里做静态 DHCP 绑定 + bind-address 写死内网 IP。
以 Switch 通过 HTTP 代理上网为例:
Switch(SOCKS? 否, 仅 HTTP CONNECT)
→ 二层交换机 / AP(同网段 ARP 直连,不过路由器 NAT)
→ 电脑物理网卡 (192.168.1.20:7897)
→ 内核 TCP 栈 → Mihomo 入站(inbound)
→ 规则匹配 (rule / geoip / geosite)
→ 出站(outbound):vmess/Reality/Hysteria2 over TLS
→ 节点服务器 → 目标网站三个关键推论:
很多人担心共享会「变慢」。实测口径下:
+0.3 ~ +1.2ms 区间;netsh int tcp set global congestionprovider 一类操作对共享流量基本无感——因为出口拥塞控制发生在节点服务端,不在你这里。单人使用时,公网中转和 IEPL 专线的差距可能只有 10ms;但多设备并发时差距会被指数级放大:
+5ms 以内。换句话说,局域网共享是天然的「超售检测器」——一家机场是不是在超售,单人测速看不出来,三台设备同时拉流五分钟立刻现原形。
关于专线类型的技术差异,可以对照阅读 IEPL 与 IPLC 线路到底差在哪。
同样是「让其他设备用上代理」,至少有五种实现路径,成本与收益完全不同:
| 指标 | A. mixed-port 局域网共享 | B. TUN 模式 + 网关指向 | C. 路由器透明代理 | D. 电脑热点共享 | E. NAS 常驻 Mihomo |
|---|---|---|---|---|---|
| 配置复杂度 | 低(改 3 行配置) | 中高(需改路由表) | 高(刷机 + 分流) | 低 | 中 |
| 理论吞吐上限 | 网卡线速,受 CPU 制约 | 网卡线速 | 路由器 CPU 决定 | 无线协商速率 | NAS 网卡线速 |
| 延迟增量 | +0.3 ~ 1.2ms | +0.5 ~ 2ms | +0.2 ~ 1ms | +3 ~ 15ms | +0.3 ~ 1ms |
| 终端兼容性 | 需支持 HTTP/SOCKS5 | 全透明,零配置 | 全透明,零配置 | 全透明 | 需支持代理 |
| Switch 支持 | ✅(HTTP CONNECT) | ⚠️ 需网关指向 | ✅ | ✅ | ✅ |
| 智能电视 / 机顶盒 | ✅(部分机型无代理项) | ✅ | ✅ | ✅ | ✅ |
| DNS 可控性 | 中(需手动指 DNS) | 高 | 高 | 中 | 高 |
| IPv6 处理 | 需额外关闭/劫持 | 好 | 好 | 差 | 中 |
| 断线影响范围 | 全屋 | 全屋 | 全屋 | 仅热点设备 | 全屋 |
| 推荐指数 | ★★★★☆ | ★★★☆☆ | ★★★★★ | ★★☆☆☆ | ★★★★☆ |
选型速记:
主机是局域网共享最刚需的群体,原因很简单:主机系统压根没有 Clash 客户端。
mixed-port 自带 HTTP + SOCKS5 双协议,分开配的话 port 是 HTTP、socks-port 是 SOCKS5);说实话,手机是最没必要走局域网共享的设备——iOS 有 Shadowrocket / Stash,安卓有 ClashMetaForAndroid,本地跑客户端永远比共享稳定。只有当你要共享的节点是「电脑上登录的独享账号」时,共享才有意义。
移动端客户端选型可以参考 移动端客户端总览。
开发联调、抓包分析海外接口时,把测试机接到电脑代理上是很常见的做法。此时建议开启入站认证:
allow-lan: true
bind-address: 192.168.1.20
mixed-port: 7897
authentication:
- "airpick:yourpassword"
lan-allowed-ips:
- 192.168.1.0/24
lan-disallowed-ips:
- 192.168.1.99/32lan-allowed-ips / lan-disallowed-ips 是 Mihomo 系内核的细粒度白名单,比单纯开 allow-lan 安全得多。
netsh advfirewall firewall add rule name="Mihomo LAN TCP" dir=in action=allow protocol=TCP localport=7897
netsh advfirewall firewall add rule name="Mihomo LAN UDP" dir=in action=allow protocol=UDP localport=7897
Test-NetConnection -ComputerName 192.168.1.20 -Port 7897lsof -nP -iTCP:7897 -sTCP:LISTEN
netstat -an | grep 7897# config.yaml
allow-lan: true
bind-address: 192.168.1.30
mixed-port: 7897
external-controller: 127.0.0.1:9090ss -lntp | grep 7897
# 期望输出:0.0.0.0:7897 或 192.168.1.30:7897防火墙(nftables / ufw):
sudo ufw allow from 192.168.1.0/24 to any port 7897 proto tcp路由器方案本质上是把「共享」下沉到网关层,这是体验最好的形态,因为终端零配置。OpenClash / ShellClash 都支持一键开启局域网透明代理。配置要点:
fake-ip 网段不要和内网网段重叠;路由器折腾的完整流程见 OpenWrt 软路由 Clash 部署。
设置 → 互联网 → 互联网设置 → 选择当前 WiFi → 更改设置
→ 代理服务器设置 → 使用
→ 服务器地址:192.168.1.20
→ 端口:7897
→ 保存 → 连接测试常见报错与对策:
1.1.1.1 / 8.8.8.8;allow-lan 会打架 TUN 模式会接管系统路由表,把所有流量导入虚拟网卡。如果你同时开了 allow-lan,可能出现:
解决:TUN 配置里显式排除内网段:
tun:
enable: true
stack: system