局域网设备要经过本机 Clash(mihomo)的代理端口上网,不能只改一个开关就结束。官方全局配置把这件事拆成「是否允许局域网」「绑在哪个地址上」「哪些网段能连、哪些被禁」以及「代理是否要账号密码」几层条件。下面按实际接入前的核对顺序说明适用条件、操作和判断依据;任一层不满足,对端都会连不上或只能连到错误地址。
先核对是否已允许其他设备使用代理端口
适用条件:你希望同一局域网内的手机、电脑或其他主机,把流量送到本机 Clash 的 http(s) / socks / mixed 等代理端口。
配置项是 allow-lan,可选值只有 true 和 false。文档写明:允许其他设备经过 Clash 的代理端口访问互联网。
操作步骤:
- 打开当前正在使用的配置文件,定位
allow-lan。 - 若值为
false或该项缺失且行为表现为拒绝局域网,将其设为true。 - 保存后重新加载配置,再进入下一层核对,不要假设「开了局域网」就等于任意地址都能进来。
判断依据:allow-lan 为 true 只是总开关。为 false 时,后续的绑定地址和网段名单即使写对,其他设备也不应被允许走代理端口。
失败时下一步:不要反复只改这一项。确认加载的确实是你刚改的那份配置后,继续核对本机监听地址和对端 IP 是否落在允许范围内。
再核对绑定地址是否就是对端将要访问的地址
适用条件:allow-lan 已为 true,但你需要决定「其他设备只能通过哪个地址进来」。
bind-address 的含义是:仅允许其他设备通过这个地址访问。官方给出三类写法:
"*":绑定所有 IP 地址- 形如
192.168.31.31:绑定单个 IPv4 地址 - 形如
[aaaa::a8aa:ff:fe09:57d8]:绑定单个 IPv6 地址
操作步骤:
- 在运行 Clash 的主机上确认当前局域网 IPv4(以及若使用 IPv6 时的 IPv6 地址)。
- 若只想开放一块网卡上的一个地址,把
bind-address写成该地址,而不是过期的旧地址。 - 若主机有多地址、或地址会因 DHCP 变化,评估使用
"*"是否符合你的暴露范围。 - 对端设备上填写的代理主机,必须与这里实际绑定、且当前仍有效的地址一致。
判断依据:写成单个 IPv4 时,对端不能改用主机的其他 IP 或未绑定的 IPv6 来访问。主机地址已经变了但配置仍写旧值,属于绑定条件不成立。需要 IPv6 访问时,还要对照全局 ipv6(可选 true/false,文档默认 true)是否允许内核接受 IPv6 流量。
失败时下一步:先修正 bind-address 与当前地址的对应关系,再测对端连通性。不要在地址已漂移的情况下继续排查网段名单。
最后核对允许网段、禁止网段和用户验证
适用条件:总开关和绑定地址都已符合预期,仍要避免「开了局域网却把对端 IP 挡在门外」,或「对端连上了但卡在认证」。
相关项:
lan-allowed-ips:允许连接的 IP 地址段,仅作用于allow-lan为true;默认值为0.0.0.0/0和::/0。lan-disallowed-ips:禁止连接的 IP 地址段,黑名单优先级高于白名单,默认值为空。文档示例为192.168.0.3/32。authentication:http(s) / socks / mixed 代理的用户验证,写法为user:pass列表。skip-auth-prefixes:允许跳过验证的 IP 段,文档示例为127.0.0.1/8和::1/128。
操作步骤:
- 记下即将接入的设备 IP,看它是否落在
lan-allowed-ips的某一段内。 - 再看它是否被
lan-disallowed-ips命中;一旦命中,即使白名单很宽也会被拒绝。 - 若配置了
authentication,对端必须使用列表中的用户名和密码。不要假定局域网设备能享受与127.0.0.1/8、::1/128相同的跳过验证待遇,除非你把对端网段写进skip-auth-prefixes。 - 需要 IPv6 客户端时,同时核对允许/禁止名单里是否包含
::/0或对应前缀,以及ipv6是否为true。
判断依据:默认白名单覆盖全部 IPv4/IPv6,并不等于忽略黑名单。认证一旦启用,就作用于上述代理协议,与「是不是同一 Wi-Fi」无自动豁免关系。
失败时下一步:把对端 IP、lan-allowed-ips、lan-disallowed-ips、authentication 和 skip-auth-prefixes 四项对照写下来。若对端在黑名单中,应改黑名单而不是继续加宽无关网段。若认证失败,先在对端按配置提供凭据,而不是回退去关 allow-lan。
完成以上三层核对后,局域网设备才具备「被允许、能打到绑定地址、网段与认证都匹配」的接入条件。外部控制 API 的监听地址(external-controller)是另一套接口,不要把它和代理端口的局域网访问条件混成同一次检查。