混合端口与 allow-lan 设置指南:把代理共享给局域网设备
讲解 mixed-port 与独立 HTTP/SOCKS 端口的差异,如何开启 allow-lan 让手机、电视盒子走电脑的代理,以及绑定网卡、鉴权与安全边界的注意事项。
先分清 mixed-port、port 与 socks-port
mihomo 可以同时提供 HTTP、SOCKS5 与混合代理入口。它们最终都把连接送入同一套代理规则和策略组,但客户端连接入口不同。局域网共享时,最省事的做法通常是开放一个 mixed-port:手机可以把它填写为 HTTP 代理端口,支持 SOCKS5 的应用也能连接同一个端口,服务端会识别接入协议。
| 配置字段 | 常用端口 | 接入协议 | 适用情况 |
|---|---|---|---|
mixed-port |
7890 |
HTTP 与 SOCKS5 | 希望只维护一个局域网入口 |
port |
7890 |
HTTP | 系统代理、浏览器和电视盒子只提供 HTTP 代理栏 |
socks-port |
7891 |
SOCKS5 | 应用支持 SOCKS5,或需要其 UDP 能力 |
redir-port |
7892 |
透明转发入口 | Linux 路由规则重定向,不供手机手工填写 |
tproxy-port |
7893 |
TPROXY 入口 | 路由器透明代理并保留原目标信息 |
mixed-port 并不是把 HTTP 数据改写成 SOCKS5,也不是额外建立一层转发。它只是在同一个监听端口上判断客户端握手类型。对于“电脑运行 Clash,手机填写电脑 IP 和端口”的场景,这能减少端口冲突与防火墙规则数量。
allow-lan 开启了什么
默认只监听回环地址时,代理入口只能被运行 mihomo 的本机访问。allow-lan: true 允许局域网设备连接入站代理,但它不会自动修改手机设置,也不会把电脑变成默认网关。客户端仍需明确填写代理服务器地址,或由路由器、透明代理规则接管流量。
一份适合先行验证的基础配置如下。假设电脑在家庭网络中的 IPv4 地址为 192.168.50.23,手机与电脑连接同一台路由器,端口使用 7890。
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
authentication:
- "livingroom:change-this-password"
bind-address: "*" 表示监听可用地址,实际可达范围仍受操作系统防火墙、路由器访客网络隔离和接入点客户端隔离控制。若电脑长期使用固定局域网地址,也可以把监听地址收紧到指定网卡,例如:
mixed-port: 7890
allow-lan: true
bind-address: 192.168.50.23
mode: rule
authentication:
- "phone:use-a-long-password"
绑定具体地址更利于明确边界,但 DHCP 重新分配地址后,mihomo 可能因该地址不再属于本机而启动失败。长期共享时,可在路由器 DHCP 设置中为电脑网卡保留 192.168.50.23,或者继续监听全部地址并通过系统防火墙限定来源网段。
GUI 开关与 YAML 的关系
不同 Clash 图形客户端的命名略有差别,常见路径是「设置」→「参数设置」→「允许局域网连接」,并在同一区域显示“混合端口”或“端口”。打开开关后,应回到配置或运行日志确认最终值为 allow-lan: true,同时记下实际端口。部分客户端重载订阅时会保留全局参数,部分客户端则以覆写配置为准,不能只看订阅文件中的字段。
还要区分代理端口和控制端口。external-controller: 127.0.0.1:9090 用于面板或 API 控制,不是手机的 HTTP 代理。把 9090 填入手机代理栏通常只会得到连接失败或 HTTP 状态错误。
找到电脑在局域网中的正确地址
手机端需要填写电脑的局域网地址,而不是 127.0.0.1,也不是运营商分配的公网地址。127.0.0.1 在手机上只代表手机自身。家庭网络常见地址段包括 192.168.0.0/16、10.0.0.0/8 与 172.16.0.0/12。
Windows 11 查看地址
- 打开「设置」→「网络和 Internet」。
- 选择当前使用的「Wi-Fi」或「以太网」。
- 进入「硬件属性」,查找“IPv4 地址”。
- 记录类似
192.168.50.23的地址,不要抄写默认网关192.168.50.1。
也可以在终端运行 ipconfig,查看正在联网网卡下的“IPv4 地址”。如果同时存在有线、无线、虚拟机与 VPN 网卡,应选择和手机处于同一子网的物理网卡。手机是 192.168.50.88 时,电脑通常也应是 192.168.50.x。
macOS 查看地址
- 打开「系统设置」→「网络」。
- 选择状态为“已连接”的 Wi-Fi 或以太网。
- 点击「详细信息」→「TCP/IP」。
- 读取 IPv4 地址,例如
192.168.50.23。
手机与电视盒子的代理填写方法
iPhone 与 iPad
- 进入「设置」→「无线局域网」。
- 点当前网络右侧的信息按钮。
- 下滑到「配置代理」,选择「手动」。
- 服务器填写电脑地址,例如
192.168.50.23。 - 端口填写
7890。 - 配置了
authentication时开启鉴定,并填写对应用户名与密码。
iOS 的 Wi-Fi 手动代理主要是 HTTP 代理设置,并不等于系统级 TUN。多数遵循系统代理的应用可以接入,但自行建立网络栈、忽略系统代理或仅发送 UDP 的应用可能不会经过电脑。这也是浏览器访问正常、某个游戏或流媒体应用仍直连的常见原因。
Android 与电视盒子
- 打开「设置」→「网络和互联网」→「互联网」或当前 Wi-Fi。
- 选择编辑网络,展开「高级选项」。
- 把代理改为「手动」。
- 代理主机名填写
192.168.50.23,代理端口填写7890。 - 排除列表可按需要填写局域网域名,保存后重新打开应用测试。
Android 厂商界面可能把入口放在「Wi-Fi」→「已连接网络」→「修改网络」。电视盒子如果只提供“代理服务器”和“代理端口”,同样填写电脑地址与混合端口。部分电视应用不遵循系统 HTTP 代理,这种情况下仅调整盒子的 Wi-Fi 代理不会覆盖全部流量。
若目标是让游戏、UDP、智能电视应用和不读取系统代理的程序统一分流,应把 mihomo 部署到主路由或旁路由,或在具备转发配置的 Linux 主机上设置 TPROXY/TUN。单纯把手机默认网关改成电脑地址,而电脑没有启用 IP 转发、NAT 和透明代理规则,不会自动形成可用链路。
共享后仍由电脑端规则决定出口
局域网设备连接 mixed-port 后,请求会进入电脑上的 mihomo。订阅中的节点、策略组、DNS 设置与 rules 仍以电脑当前加载的配置为准。手机不需要重复导入订阅,也不能绕过电脑端的规则模式直接选择节点。
例如配置处于 mode: rule 时,流量会按规则从上到下匹配。局域网地址通常应直连,避免访问路由器管理页、NAS 或投屏设备时被送往代理节点:
rules:
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- DOMAIN-SUFFIX,example.com,Proxy
- MATCH,Proxy
如果配置启用了 Fake-IP,手机通过 HTTP 代理访问域名时,域名通常会由代理端处理;但手机自身未经过代理的 DNS 请求仍使用当前 Wi-Fi 的 DNS。遇到“网页可以打开,应用内域名解析异常”时,应先判断该应用是否真正使用了系统代理,而不是立即修改订阅节点。
先做一个可重复的验证
- 电脑先确认自身通过
127.0.0.1:7890可以访问目标网站。 - 手机关闭蜂窝数据,避免测试流量从移动网络绕行。
- 手机填入
192.168.50.23:7890后打开一个此前未缓存的网页。 - 查看 Clash 连接列表,确认来源地址出现手机 IP,例如
192.168.50.88。 - 检查该连接命中的规则、策略组和最终节点。
同一 Wi-Fi 下,手机到电脑的局域网往返延迟通常应在 1–10 ms 左右。若持续高于 50 ms,先检查无线信号、2.4 GHz 拥塞和电脑休眠状态。这个延迟只反映局域网链路,不能代表代理节点的跨网质量。
鉴权、防火墙与监听边界
开放局域网监听意味着同一网络中能到达该端口的设备都有机会发起连接。家庭成员设备较少时,也建议配置用户名和长密码,并用操作系统防火墙限制来源。公司、宿舍、酒店等人员复杂的网络不适合直接把代理监听到整个网段。
mihomo 入站鉴权
mixed-port: 7890
allow-lan: true
bind-address: "*"
authentication:
- "phone:V7k9m2Qp4s8L"
- "tvbox:R6w3n8Hx5c2A"
为不同设备分配独立账号,停用某台设备时只需删除对应条目。密码写在 YAML 中,应限制配置文件的本机读取权限。若图形客户端会自动生成运行配置,应在其“覆写”或“全局扩展配置”功能中维护这些字段,防止更新订阅后丢失。
系统防火墙只放行家庭网段
Windows 防火墙创建入站规则时,可选择 TCP、本地端口 7890,配置文件仅勾选“专用”,并在远程 IP 地址中限定 192.168.50.0/24。不要为了排查而长期关闭整个防火墙。macOS 使用第三方防火墙或 pf 时,也应以网段和端口为条件放行。
mixed-port 常规 HTTP 与 SOCKS TCP 接入至少需要 TCP 端口。若通过 SOCKS5 使用 UDP,还要确认客户端能力、mihomo 监听和系统防火墙的 UDP 规则。电视盒子的 HTTP 代理通常不使用 SOCKS UDP,因此开放 TCP 7890 已能完成基础网页与应用验证。
连接失败的分层排查顺序
第一层:确认 mihomo 确实在监听
先查看客户端运行日志和端口设置。Windows 可运行 netstat -ano | findstr :7890,macOS 或 Linux 可运行 lsof -nP -iTCP:7890 -sTCP:LISTEN。只看到 127.0.0.1:7890 时,说明服务仍限于本机;看到 0.0.0.0:7890、*:7890 或电脑的局域网地址,才具备远程接入条件。
第二层:检查二层网络与防火墙
- 手机与电脑是否连接同一个普通 Wi-Fi,而非访客网络。
- 电脑地址是否因 DHCP 更新发生变化。
- Windows 当前网络是否被识别为“公用网络”,导致专用网络放行规则未生效。
- 路由器是否启用了 AP 隔离、客户端隔离或不同 VLAN 间阻断。
- 端口是否被另一个进程占用,导致 Clash 实际改用了其他端口。
第三层:区分“连不上”与“规则走错”
手机立即提示代理服务器拒绝连接,通常是监听地址、端口或防火墙问题;能够在 Clash 连接列表看到请求,但网站超时,则应继续检查节点、DNS 和规则命中。返回 407 Proxy Authentication Required 表示代理已经可达,只是用户名或密码缺失、填写错误。
若只有个别应用失败,可先用浏览器作为基准。浏览器成功意味着局域网链路、HTTP 代理和鉴权基本正常,失败应用可能不读取系统代理、使用 QUIC/UDP,或带有自己的网络设置。此时继续反复切换 allow-lan 通常不会改变结果。
长期使用时的配置取舍
临时把一个手机接入电脑,使用 mixed-port: 7890、allow-lan: true、鉴权和局域网防火墙规则即可。电脑应保持唤醒,Clash 客户端需要持续运行;电脑睡眠、切换 Wi-Fi 或退出内核后,下游设备会立刻失去代理连接。
如果多台电视、游戏机与 IoT 设备都要稳定分流,电脑共享会受到开关机、地址变化和应用代理兼容性的限制。此时更适合让路由器或旁路由运行 mihomo,通过 TUN、REDIR 或 TPROXY 接管转发,再按源 IP、目标域名与规则集分流。混合端口仍可保留给需要手工指定代理的设备,但不再承担整个家庭网络的唯一入口。
最终检查可以归纳为四项:代理端口必须与设备填写值一致;allow-lan 与监听地址必须允许远程连接;操作系统防火墙只放行可信网段;规则模式下为私有地址保留直连。四项分别验证,比一次性修改端口、DNS、TUN 和订阅更容易定位问题。