1. 首页
  2. 博客
  3. Clash 混合端口与允许局域网连接设置

Clash 混合端口与允许局域网连接设置:多设备共享代理完整配置

解释 mixed-port 与 allow-lan 两个字段的实际作用,演示如何让手机、电视盒子和游戏机通过局域网内一台电脑的 Clash 上网,并提示防火墙放行与鉴权注意事项。

为什么一台电脑就能让全屋设备上网

很多人对 Clash 的第一印象停留在"帮浏览器换个网络路径",实际上 Clash 的代理内核和系统防火墙没有绑定关系——它本质上是一个监听在本机某个端口上的网络服务,任何能连接到这个端口的设备,无论是不是同一台电脑,都可以把流量交给它处理。这意味着只要局域网内的其他设备知道这台电脑的内网 IP 和 Clash 监听的端口,把自己的网络请求指向这个地址,就能借用这台电脑已经配置好的订阅节点和分流规则上网,而不需要在电视盒子、游戏主机这类难以安装客户端的设备上重复配置一遍。

这种用法在家庭网络里很常见:一台常年开机的电脑或者 NAS 上跑着 Clash,手机、平板、智能电视、游戏机全部通过局域网连接过去,省去了逐台设备安装客户端、逐台设备维护订阅的麻烦。要实现这一点,核心只涉及配置文件里的两个字段:决定监听端口的 mixed-port,以及决定是否接受局域网外部连接的 allow-lan。这两个字段配合得当,一台电脑就能变成全屋的出口网关;配置不当,轻则其他设备连不上,重则把未鉴权的代理端口暴露给了整个局域网甚至更大范围。

mixed-port 字段到底控制什么

Clash 早期版本里,HTTP 代理、SOCKS5 代理是分开监听在不同端口上的,配置文件里会看到 port(HTTP)和 socks-port(SOCKS5)两个独立字段。这种拆分方式在客户端只需要转发浏览器流量时够用,但一旦要接入的设备类型变多——有些客户端只支持 HTTP 代理,有些只认 SOCKS5,维护两套端口就很繁琐。mixed-port 是后来引入的合并方案:同一个端口同时接受 HTTP 和 SOCKS5 两种协议的连接,Clash 内核会自动识别客户端发来的是哪种协议并做相应处理。

目前主流客户端的默认配置里,混合端口普遍设置为 7890,这也是大多数教程里出现这个数字的原因。字段写法很简单:

mixed-port: 7890

把这个端口告诉其他设备,它们只需要在自己的 Wi-Fi 或网络设置里填入"这台电脑的内网 IP + 7890"作为代理地址,就能把流量转发过来。需要注意的是,mixed-port 只决定"用哪个端口接客户端连接",它不管这个端口能不能被局域网里的其他设备访问到——这部分权限完全由另一个字段决定,也就是接下来要说的 allow-lan

allow-lan:决定端口是否对外开放

默认情况下,Clash 出于安全考虑,allow-lan 字段的值是 false。这个状态下,即使 mixed-port 监听着 7890 端口,这个端口也只接受来自本机(127.0.0.1)的连接请求,局域网内的其他设备发起连接会被直接拒绝,表现为连接超时或拒绝连接。这是一种保护机制:如果没有这道限制,任何一台运行着 Clash 且连接了公共 Wi-Fi 的电脑,都可能把自己的代理端口暴露给同一 Wi-Fi 下的陌生设备。

要让局域网内其他设备接入,需要显式打开这道限制:

allow-lan: true
bind-address: "*"

bind-address 决定监听地址绑定在哪个网卡上,写成 * 表示监听本机所有网络接口(包括有线和无线),这样无论其他设备是通过路由器的哪个网段接入,都能连接到这台电脑上的 Clash 服务。如果这台电脑同时插着网线又连着 Wi-Fi,且两者在不同的子网段,绑定 * 能避免遗漏某个网卡上的连接请求。

注意

allow-lan: true 打开后,理论上任何能访问到这台电脑所在网段的设备都可以尝试连接这个端口,不只是你信任的家庭设备。如果这台电脑接入的是公司网络、咖啡馆 Wi-Fi 或者未做隔离的公共网络,打开这个字段前务必先确认鉴权配置(见下文),否则相当于把出口权限交给了整个网段。

从零搭建家庭多设备共享出口

以家庭网络场景为例,完整流程大致分为四步。

  1. 确认承载设备的内网 IP

    在 Windows 上打开命令提示符执行 ipconfig,在 macOS 或 Linux 上执行 ifconfigip addr,找到形如 192.168.x.x10.x.x.x 的地址。这个地址要保持相对固定——建议在路由器管理后台给这台设备的 MAC 地址绑定一个固定 IP(通常叫"静态 DHCP"或"IP-MAC 绑定"),否则路由器重启后这台电脑换了个 IP,其他设备的代理配置就要跟着改。

  2. 配置 mixed-port 与 allow-lan

    在 Clash 客户端的配置文件里加入前文提到的三行:mixed-port: 7890allow-lan: truebind-address: "*"。多数图形化客户端也提供了对应的开关,不需要手动改文件,在设置面板里找到"局域网连接"或"Allow LAN"选项打开即可,效果等同。

  3. 放行本机防火墙

    Windows 系统防火墙、macOS 的应用防火墙默认会拦截外部设备对未知端口的访问请求,即使 Clash 已经在监听 7890 端口,防火墙层面没有放行的话,局域网设备依然连不进来。Windows 上需要在"允许应用通过防火墙"里为 Clash 程序放行私有网络访问权限;macOS 首次运行开启监听时通常会弹出系统权限提示,选择允许即可。

  4. 在其他设备上填写代理地址

    手机、平板在 Wi-Fi 详情页的代理设置里选择"手动",填入这台电脑的内网 IP 和端口 7890。智能电视和游戏机的网络设置里通常也有类似的"HTTP 代理"选项,填法相同。设置完成后打开一个网页测试,能正常加载即说明链路通畅。

混合端口鉴权:不给整个网段开后门

打开 allow-lan 之后,如果不加任何限制,同一网段内的所有设备(包括你不认识的邻居蹭网设备、公司里的其他同事电脑)理论上都能把流量转发到这台电脑的 Clash 上,白嫖你的节点流量,极端情况下还可能被用来做一些你无法控制的网络行为。给混合端口加一层用户名密码鉴权是低成本的防护手段:

authentication:
  - "homeuser:a-strong-password"

这行配置生效后,设备侧填写代理时需要额外提供这组用户名和密码才能通过鉴权,大多数系统的代理设置界面在填写代理地址后会弹出账号密码输入框,支持这项功能;不支持鉴权弹窗的客户端(某些电视盒子的网络设置菜单)可能无法使用鉴权后的代理,这种设备只能依赖网段隔离或者放宽鉴权限制,需要权衡便利性和安全性。

另一种更彻底的隔离思路是把承载 Clash 的这台电脑放进独立的 VLAN 或者路由器的"访客网络"之外的可信网段,只让家庭内部信任的设备能触达这个网段,即便不设鉴权也不会暴露给外部陌生设备。有能力自定义路由器网络拓扑的用户,这种方式比单纯依赖账号密码更稳妥。

局域网共享时常见的连接失败排查

实际操作中最常遇到的问题往往不是配置文件写错,而是网络环境的细节被忽略。以下几种情况按排查优先级列出:

  • 两台设备不在同一网段:路由器如果开启了 AP 隔离(常见于访客 Wi-Fi)或者手机连的是 5G 蜂窝网络而不是同一个 Wi-Fi,内网 IP 根本互相不可达,这种情况下无论配置怎么改都连不通,先确认两台设备处于同一局域网。
  • 防火墙拦截了入站连接:即使客户端软件层面开了 allow-lan,系统防火墙的默认规则也可能优先拦截,需要单独为 Clash 进程或 7890 端口添加入站放行规则。
  • bind-address 绑定了错误的网卡:如果配置里写了具体的某个 IP 而不是 *,且这个 IP 对应的网卡当前没有连接网络(比如电脑同时装了虚拟机网卡),监听就落在了一个"死"接口上,外部设备自然连不进来。
  • 客户端界面开关和配置文件冲突:部分客户端在图形界面里单独维护一份"局域网连接"开关,和订阅配置文件里的字段是两套逻辑,配置文件写对了但界面开关没同步打开,同样会导致连接失败,建议以客户端界面的实际开关状态为准做二次确认。
  • 端口被其他程序占用:如果这台电脑上还跑着别的代理软件或者数据库服务占用了 7890 端口,Clash 启动时会监听失败或者改用其他端口,查看客户端日志确认实际监听端口是否与设备侧填写的一致。

混合端口共享与其他分流方式的关系

需要说明的是,通过 mixed-port 共享出去的连接,走的是系统代理这条路径,规则分组、DNS 处理等逻辑都在承载设备(那台开着 Clash 的电脑)的内核里完成,接入的手机或电视盒子本身不需要理解任何 Clash 概念,它们只是把流量原样丢给代理端口,处理结果原样收回。这和在设备本机安装 Clash 客户端并开启 TUN 模式是两种不同的思路:TUN 模式接管的是本机全部网络层流量,包括 UDP 与不支持代理协议的程序;而局域网共享本质上仍是应用层的 HTTP/SOCKS5 代理转发,某些强制走系统底层网络栈、不识别代理设置的应用或游戏,即便设备连接到了共享代理,依然可能绕过它直连。

因此,局域网共享方案更适合覆盖浏览器、视频类客户端等遵守系统代理设置的场景,如果某台电视盒子或游戏机的特定应用连不上、绕过了代理,大多是这类应用不读取系统代理配置导致的,不属于 Clash 配置错误,遇到这种情况通常需要该设备本身支持全局透明代理或者路由器层面的旁路由方案才能彻底解决,这也是很多家庭最终选择在路由器上直接部署内核的原因。

小结

mixed-port 决定 Clash 用哪个端口同时接受 HTTP 与 SOCKS5 连接,allow-lan 决定这个端口是否对局域网内其他设备开放,两者配合 bind-address 与鉴权字段,就能让一台电脑变成全屋设备的出口网关。打开局域网访问前先确认所在网络环境是否可信,给端口加上账号密码鉴权是最基本的防护措施。

获取 Clash 客户端

需要一台设备率先跑通订阅、规则与局域网共享配置?前往下载页获取对应平台的官方客户端,或查看安装教程了解从零配置的完整步骤。

下载 Clash 客户端