Clash 文档中心中文使用手册

Clash 怎样验证代理入口没有开放到意外网卡

Clash 怎样验证代理入口没有开放到意外网卡。了解适用条件、操作步骤与常见问题的排查方法。

更新于 2026/10/4

要验证代理入口没有开放到意外网卡,不能只看「某一台熟知的设备能不能连」,而要把生效配置翻译成本机每一张网卡、每一个地址是否构成合法入口。官方把 allow-lan 定义为是否允许其他设备经过 Clash 的代理端口访问互联网。bind-address 为 * 时绑定所有 IP 地址;写成单个 IPv4 或单个 IPv6 时,仅允许其他设备通过这个地址访问。验证的目标是:意外接口上的地址要么根本不在绑定范围内,要么即使地址存在,来源也会被地址段拒绝。

从生效配置读出当前暴露面

适用条件:本机有多张网卡(有线、无线、虚拟网卡、热点、隧道等),需要确认代理端口不会被其他设备从非预期接口连入。

操作步骤:打开当前正在使用的全局配置,逐项抄下 allow-lan、bind-address、lan-allowed-ips、lan-disallowed-ips。若 allow-lan 为 false,则不应把代理端口按已向其他设备开放来验收,验证结论应写成「未允许局域网」,而不是「已绑定某网卡」。若 bind-address 为 *,则本机当时持有的地址都在绑定范围内,包括容易被忽略的虚拟接口地址。这是判断「有没有可能开放到意外网卡」的第一依据。

同时单独记录 external-controller。文档示例为 127.0.0.1:9090,改成 0.0.0.0 会监听所有 IP。该项是 API,不是代理入口;验证代理端口时必须分开写结论,避免把控制面暴露误判成代理入口暴露,或反过来漏看。

把绑定结果对照到每张网卡的地址

第二步在主机上列出全部接口地址,与 bind-address 做对照。只有当绑定值等于某一网卡上的那个单地址时,才能认为入口被限制在该接口。绑定值是 * 时,列表中的非回环地址都应视为潜在入口。绑定值与某网卡地址不一致,则该网卡地址不应作为合法代理入口。IPv6 单地址按文档使用方括号形式,核对时不要只看 IPv4。

判断依据:意外网卡上是否存在「等于绑定地址」或「被 * 覆盖」的地址。存在即具备被连到的前提。若 ipv6 为 false,内核不接受 IPv6 流量,则 IPv6 地址即使出现在接口上,也不应按 IPv6 入口去验收,但仍要继续核对 IPv4 是否被 * 覆盖。

用源地址段验证是否被意外放行

第三步检查来源侧。lan-allowed-ips 仅作用于 allow-lan 为 true,默认 0.0.0.0/0 和 ::/0,表示不按来源收缩。主观上只想给某一局域网使用,但未改默认白名单时,任意源 IP 仍可尝试连接已经绑定的地址。lan-disallowed-ips 黑名单优先于白名单,默认空,不会自动排除意外网段。

判断依据:意外网卡上的地址已被绑定,且测试源 IP 落在白名单、未落在黑名单,则该路径是开放的。若还配置了 authentication,未提供 user:pass 的客户端会被拒绝;skip-auth-prefixes 文档示例为 127.0.0.1/8 与 ::1/128,不要把免验证前缀扩大到意外网段,否则地址绑定收紧后仍可能被空口令连入。

确认过宽后的收紧步骤与失败下一步

若验证结果是 * 覆盖了不该使用的接口,按适用条件二选一收紧:把 bind-address 改成预期网卡上的单个 IPv4 或单个 IPv6,使其他设备只能通过这个地址访问;或保持 *,把 lan-allowed-ips 改成预期客户端网段,并用 lan-disallowed-ips 排除确定不想放行的地址(文档示例为 /32 主机)。

收紧后再次核对:预期网卡地址仍可作为入口;意外网卡地址要么不再等于 bind-address,要么来源会被白名单或黑名单拒绝。单地址绑定后连预期设备也失败,说明该地址已不在网卡上或对端填错,应更新地址或先改回 * 再缩小来源段。配置已与文档一致但系统仍在其他地址监听时,到操作系统查看实际套接字,并检查防火墙是否让意外接口的流量进入。不要用出站 interface-name 或 routing-mark 代替入站绑定验证。必要时提高 log-level 观察拒绝类日志。

参考资料:https://wiki.metacubex.one/config/general/

返回文章索引使用教程