2026-07-02 · 进阶配置 · 约 9 分钟·clashsupport.com
Clash 局域网共享代理设置:mixed-port、allow-lan 与防火墙放行完整步骤
一台电脑跑 Clash,让手机、电视、游戏机共用同一条代理线路,不必逐设备折腾。本文说明 mixed-port 混合端口的含义、allow-lan 的开启方式、bind-address 的取值差异,以及 Windows 与 macOS 两端的防火墙放行和其他设备的代理填写方法。
为什么要做局域网共享代理
Clash 本身是一个跑在单台设备上的代理内核,默认只监听本机地址(127.0.0.1),这意味着只有这台电脑上的软件能通过它出网。但很多场景下,手机、平板、智能电视、游戏机同样需要走同一条线路——单独给每个设备装客户端并不现实,尤其是电视和游戏机往往没有对应的客户端可装。
局域网共享代理的思路很直接:让 Clash 监听局域网内的所有网卡地址,其他设备把系统代理指向这台电脑的 IP 和端口,流量就会经过 Clash 的规则匹配和节点转发再出网。整个过程不需要额外软件,靠的是配置文件里几个字段的组合,以及操作系统防火墙层面的放行。
mixed-port:先搞清楚监听的是哪个端口
Clash 的配置文件里,端口相关字段主要有 port(HTTP 代理端口)、socks-port(SOCKS5 代理端口)和 mixed-port(混合端口)。前两者是历史遗留的分离写法,而 mixed-port 是目前主流客户端(尤其是基于 Clash Meta / mihomo 核心的客户端)推荐的写法:同一个端口同时接受 HTTP 和 SOCKS5 协议的连接,客户端会自动判断协议类型再处理,不必再分别配置两个端口。
mixed-port: 7890
写了 mixed-port 之后,port 和 socks-port 可以不再单独设置(部分客户端界面会把三者合并为一个"混合端口"输入框)。局域网内的其他设备在填写代理时,统一填这个端口即可,不用区分 HTTP 还是 SOCKS5。
如果你使用的客户端图形界面里只有一个"端口"输入框而没有分离的 HTTP/SOCKS 端口,那它底层用的基本就是 mixed-port,不用额外操作。
allow-lan:打开局域网访问的总开关
光设置好端口还不够。Clash 默认的监听行为是"只听本机",这是出于安全考虑的默认值——避免配置文件被随意分享后,别人不小心把自己电脑的代理端口暴露给整个局域网。要让局域网内的其他设备连接进来,必须显式打开这个开关:
allow-lan: true
这一项在多数客户端的图形界面里也能找到,通常标注为"允许局域网连接""Allow LAN"之类的选项,打开效果和写配置文件是一样的。开启之后,Clash 会开始接受来自局域网内其他 IP 的连接请求,而不只是 127.0.0.1 发来的请求。
需要注意的是,allow-lan 打开后并不会自动帮你穿透系统防火墙——它只是让 Clash 进程本身不再拒绝外部连接,后面的防火墙放行步骤仍然需要单独做。
bind-address:决定监听哪些网卡
bind-address 决定的是 Clash 监听端口时绑定在哪个(或哪些)网络接口上,常见取值有三种:
- 127.0.0.1:只监听本机回环地址,局域网设备完全连不进来,这是
allow-lan为 false 时的等效行为。 - 0.0.0.0:监听本机所有网络接口,包括有线网卡、无线网卡以及可能存在的虚拟网卡(比如 VPN 客户端创建的适配器)。这是局域网共享场景下最常用的取值。
- 具体网卡 IP,例如
192.168.1.5:只监听指定的这一张网卡,适合电脑有多个网络接口、只想通过某一张对外提供代理的情况。
mixed-port: 7890
allow-lan: true
bind-address: "*"
不少客户端把 bind-address 简写为 *,等价于 0.0.0.0,效果是监听全部接口。如果你的电脑同时接了有线网和 Wi-Fi,又不确定局域网设备通过哪张网卡访问,直接用 * 或 0.0.0.0 最省心,不用逐一排查网卡分配到的 IP。
找到这台电脑的局域网 IP
确认好 mixed-port、allow-lan、bind-address 三项之后,还需要知道运行 Clash 这台电脑在局域网里的实际 IP 地址,其他设备要填的正是这个地址。
Windows 查看方法
打开命令提示符,执行:
ipconfig
在当前正在使用的网络适配器(有线用"以太网适配器",无线用"无线局域网适配器 WLAN")下面找到"IPv4 地址",形如 192.168.x.x 或 10.0.x.x 的一段,就是要填的地址。
macOS 查看方法
打开"系统设置"→"网络",选中当前连接的网络(Wi-Fi 或以太网),右侧会直接显示 IP 地址;也可以在终端里执行:
ipconfig getifaddr en0
en0 通常对应内置的有线或无线网卡,不同 Mac 型号编号可能不同,如果 en0 没有返回结果可以依次尝试 en1、en2。
Windows 防火墙放行
Windows 的防火墙默认会拦截外部设备访问某个进程新开的端口,即便 Clash 已经在监听 0.0.0.0:7890,局域网设备发来的连接也可能在防火墙这一层被直接丢弹。放行步骤如下:
- 打开"Windows Defender 防火墙"→"高级设置",进入"入站规则"。
- 点击右侧"新建规则",类型选择"端口"。
- 协议选择 TCP,特定本地端口填写
mixed-port对应的端口号,例如7890。 - 操作选择"允许连接",网络类型可以按需勾选"专用"(推荐,避免公共网络也放行)。
- 给规则命名(比如"Clash 局域网代理"),完成创建。
如果客户端本身自带安装包,首次运行时系统通常会弹出"是否允许此应用通过防火墙"的提示,直接勾选"专用网络"并允许即可,效果等同于上面的手动步骤,不需要重复操作。
macOS 防火墙放行
macOS 的防火墙(位于"系统设置"→"网络"→"防火墙")默认对本机主动发出的连接和监听外部连接的处理逻辑不同。如果开启了防火墙,首次有其他设备尝试连接 Clash 监听的端口时,系统会弹出询问是否允许该应用接受入站连接,选择"允许"即可。
如果没有弹出提示,或者提示被误操作拒绝了,可以手动检查:
- 进入"系统设置"→"网络"→"防火墙"→"选项"。
- 在应用列表里找到 Clash 客户端,确认状态为"允许接入连接"。
- 如果列表里没有,点击"+"手动添加客户端应用,再设置为允许。
另外要注意,如果电脑使用了第三方安全软件(部分企业设备或安全套件会额外加一层网络过滤),也需要在对应软件里做同样的放行,系统自带防火墙放行不代表第三方软件也会放行。
其他设备如何填写代理
局域网内的手机、平板、电视、游戏机,基本都在系统的 Wi-Fi 设置里提供手动代理选项,填法大同小异:
- 代理服务器地址:填运行 Clash 那台电脑的局域网 IP,比如
192.168.1.5。 - 端口:填
mixed-port的值,比如7890。 - 协议类型:如果设备只支持填一种协议,选 HTTP 即可,
mixed-port同样能正常接受 HTTP 连接。 - 确认两台设备在同一个局域网段,尤其是家里存在多个 Wi-Fi 网络(比如访客网络)时,访客网络往往和主网络隔离,互相无法访问。
- 确认
allow-lan确实是true,而不是保存配置后客户端没有重新加载。 - 确认
bind-address没有被写成127.0.0.1,这是最常见的遗漏点。 - 确认防火墙规则里填写的端口号和实际
mixed-port一致,改过端口后要同步更新防火墙规则。 - 在运行 Clash 的电脑上用手机浏览器直接访问
http://局域网IP:端口,如果连接被拒绝而不是超时,说明端口已经通,问题更可能出在其他设备的代理配置本身。
安卓设备一般在"Wi-Fi 详情"→"高级选项"→"代理"里选择"手动",填入上述地址和端口;iOS 设备在"Wi-Fi 详情"→"配置代理"里同样选"手动"填写;智能电视和游戏机的入口名称各厂商略有差异,通常也在网络设置的高级选项里能找到"代理服务器"字段。
手动填写系统代理只会转发支持系统代理设置的流量,部分应用(尤其是使用自有网络实现的游戏或直播软件)可能不走系统代理,这属于应用层面的限制,与 Clash 配置无关。
连接不上时的排查顺序
局域网共享代理配置完成后如果其他设备连不上,建议按下面的顺序逐项排查,大多数情况都能定位到问题:
路由器层面一般不需要额外设置,局域网内设备互访不经过路由器的转发规则,只有当代理服务和客户端跨越不同子网(比如通过 VPN 连回家庭网络)时,才需要考虑路由和端口转发的问题,这属于另一个话题,不在常规局域网共享的范围内。