一、共享的是代理入口,不是电脑的全部网络

Clash 局域网共享的常见用法,是让电脑运行代理内核,再让同一网络中的手机或电视连接电脑的 HTTP 代理端口。设备把支持代理的请求送到电脑,内核再按当前规则、策略组与节点处理连接。电脑需要保持开机,Clash 内核也必须持续运行。

这与把电脑设置成路由器不同。手机填写 Wi-Fi 代理后,不代表所有应用、所有协议都经过电脑;应用仍需遵循系统代理设置。游戏的 UDP、部分视频应用的独立网络栈以及自行建立连接的服务,可能绕过这个入口。

开始前准备三项信息

  • 电脑的局域网 IPv4 地址:下文用 192.168.1.20 举例,实际填写时必须换成电脑当前地址。
  • 代理监听端口:下文统一使用 7890,实际以客户端显示的 Mixed 或 HTTP 端口为准。
  • 可用的电脑端配置:先确认电脑通过该代理端口能访问目标网站,再增加局域网共享这一步。

电脑可以接网线,手机连接 Wi-Fi,不要求两者使用相同接入方式;关键是路由器允许设备互访。访客 Wi-Fi、无线客户端隔离、企业 VLAN 都可能阻断这条路径。同一个 Wi-Fi 名称也不能保证设备之间可达。

二、设置 allow-lan、mixed-port 与绑定地址

在基于 Clash 或 Clash Meta(现名 mihomo)的客户端里,通常能找到“允许局域网连接”或“Allow LAN”开关。它对应内核配置中的 allow-lan。不同图形客户端的菜单名称和覆盖机制不同,应同时检查实际运行配置,而不是只看订阅文件里的字段。

字段示例值作用与检查点
mixed-port7890同一端口接受 HTTP 与 SOCKS 代理连接;手机系统代理通常按 HTTP 使用。
allow-lantrue允许来自局域网设备的代理连接,仍受监听地址、防火墙及内核访问控制限制。
bind-address"*"允许绑定到所有地址;需配合防火墙限制来源,并检查实际监听结果。
moderule共享设备的请求仍按规则分流,并非所有连接都固定走远端节点。

把字段合并进当前配置,不要覆盖整份订阅

# 局域网共享相关字段,不是一份完整订阅
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule

这段内容没有节点、策略组和规则,不能当作完整配置导入。应在客户端支持的持久化覆写或合并配置位置修改,保留原有配置。直接编辑下载后的订阅文件,可能在下次订阅更新时被覆盖。保存后按客户端要求重新加载配置或重启内核。

127.0.0.1 只供本机访问;如果实际监听结果仍是 127.0.0.1:7890,手机无法连接。也可将绑定地址收窄为电脑的局域网地址,但要留意:只绑定 192.168.1.20 后,电脑上仍连接 127.0.0.1:7890 的程序可能失效。使用通配绑定时,则必须用防火墙限定可信来源。

如果配置只有 port 和 socks-port,手机的 HTTP 代理应填写 port 对应的端口,而不是 SOCKS 端口。HTTPS 网站通常通过 HTTP 代理的 CONNECT 隧道访问,不需要因此安装额外证书。

三、找对电脑 IP,确认内核真正监听

Windows:查看物理网卡,再查 7890 端口

在 PowerShell 中运行下面两条命令。第一条查地址,第二条查监听。应选择当前联网的“以太网”或“无线局域网适配器 WLAN”,避开 TUN、虚拟机、容器等虚拟网卡。

ipconfig
Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess

如果电脑的 Wi-Fi IPv4 地址是 192.168.1.20,手机代理服务器就填这个地址。监听地址为 0.0.0.0 通常表示所有 IPv4 接口;若出现 ::,还要结合系统的 IPv6 与双栈行为检查,不能只凭这一行认定 IPv4 已可访问。

macOS 与 Linux:区分地址和监听状态

macOS 可在「系统设置」→「网络」→ 当前连接 →「详细信息」→「TCP/IP」查看 IP,再通过终端检查监听进程:

lsof -nP -iTCP:7890 -sTCP:LISTEN

Linux 可用以下命令查看接口 IPv4 地址与监听状态;部分进程信息需要管理员权限才能显示:

ip -4 addr show
ss -lntp 'sport = :7890'

手机端不能填 localhost、127.0.0.1、0.0.0.0 或路由器默认网关。前两者指向手机自身,第三个是监听通配地址,默认网关通常是路由器,均不是电脑代理的访问地址。建议在路由器 DHCP 设置中给电脑做地址保留,避免重启后 IP 改变。

四、防火墙只放行可信局域网来源

“允许局域网”控制内核是否接受连接,操作系统防火墙则决定连接能否到达内核。不要为排查而长期关闭整个防火墙,也不要在路由器上给 7890 做公网端口转发。若系统已有宽泛的应用放行规则,还应检查并收窄旧规则;新增一条限制规则不会自动撤销其他宽泛授权。

Windows:仅对专用网络开放 TCP 7890

仅在可信家庭网络中,将当前连接设为“专用”。Windows 11 的 Wi-Fi 路径通常为「设置」→「网络和 Internet」→「Wi-Fi」→ 当前连接的属性 →「网络配置文件类型」。随后在管理员 PowerShell 中添加规则:

New-NetFirewallRule `
  -DisplayName "Clash LAN TCP 7890" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 7890 `
  -Profile Private `
  -RemoteAddress LocalSubnet

此规则仅在专用网络配置文件下生效,允许本地子网来源访问 TCP 7890。若只需要一台固定地址的手机,可将 LocalSubnet 换成它的实际 IP,例如 192.168.1.30。本文使用 HTTP 代理,不需要额外开放 UDP 7890。

macOS 与 Linux:按当前防火墙机制处理

macOS 可在「系统设置」→「网络」→「防火墙」→「选项」中检查实际接收连接的客户端或内核程序是否被阻止。客户端升级或更换内核文件后,也可能需要重新确认授权。

Linux 如果已经启用 UFW,且家庭子网确实是 192.168.1.0/24,可按下例放行。不要照抄错误网段,也不要在远程维护服务器时未经评估直接启用或重置防火墙。

sudo ufw allow from 192.168.1.0/24 to any port 7890 proto tcp
sudo ufw status numbered

五、在手机和电视上填写 HTTP 代理

iPhone 与 iPad:设置当前 Wi-Fi 的手动代理

  1. 进入「设置」→「无线局域网」,点当前网络右侧的信息按钮。
  2. 找到「配置代理」,选择「手动」。
  3. “服务器”填写电脑实际 IP,例如 192.168.1.20;“端口”填写 7890。
  4. 没有配置代理认证时,不启用“鉴定”;保存后用 Safari 测试网页。

服务器栏只填地址,不带 http://,也不要把 :7890 拼进去。这个设置针对当前 Wi-Fi,切换到蜂窝网络或另一个 Wi-Fi 后不能照此推断连接路径。

Android:在当前网络的高级设置中填写

不同厂商的菜单位置略有区别。常见入口为「设置」→「网络和互联网」→「互联网」→ 当前 Wi-Fi → 编辑 →「高级选项」→「代理」→「手动」。部分设备需要先点网络详情,再打开编辑功能。

  • 代理主机名:电脑 IP,例如 192.168.1.20。
  • 代理端口:7890。
  • 不使用代理的地址:首次测试可保持默认或留空,确认可用后再按需要配置例外。

Android 的系统代理不保证所有应用遵循。浏览器能用而某个应用不能用时,先检查应用是否支持系统 HTTP 代理,不要立即改订阅或重装客户端。部分 Android 设置界面也没有用户名与密码输入项,启用代理认证前应先确认设备能完成认证。

电视与电视盒子:先找代理设置,不改默认网关

Android TV 或厂商电视系统可能在「设置」→「网络和互联网」→ 当前网络 →「代理设置」中提供“手动”选项。填写的仍是电脑 IP 与 HTTP 端口。有些型号只对特定网络提供此入口,也有设备完全不支持。

没有代理选项时,不要把电脑 IP 随意填进“网关”或“DNS”栏。网关转发、DNS 解析与 HTTP 代理是不同功能;要实现网关方案,需要额外配置路由、转发和访问控制,不能靠换一个地址完成。即使电视接受系统代理,具体视频应用也可能不使用它。

六、按“端口 → 请求 → 规则”验证共享结果

先在另一台局域网电脑上测试,通常比直接判断电视应用更容易。Windows 可检查 TCP 是否可达:

Test-NetConnection 192.168.1.20 -Port 7890

TcpTestSucceeded: True 只证明 TCP 连接建立成功,不代表代理认证、节点或分流已经正常。继续使用 curl 发起一条明确经过代理的 HTTPS 请求;Windows PowerShell 中建议写 curl.exe,避免旧环境的命令别名干扰。

curl --proxy http://192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

此处的 5 秒是连接超时上限,20 秒是整条命令的时间上限,不是性能测量结果。HTTPS 代理可能先输出 200 Connection established,还应继续查看目标站点的最终响应。再打开 Clash 的“连接”或日志页面,确认请求来源、目标域名、命中规则和最终策略。

现象优先检查处理方向
连接超时电脑 IP、防火墙、访客网络隔离确认设备互访,检查入站规则及网络配置文件。
连接被拒绝端口是否监听、内核是否运行核对实际端口、监听地址,并重新加载配置。
返回 HTTP 407代理要求认证在支持认证的客户端填写正确凭据。
网页可用,部分应用失败应用是否遵循系统代理查应用代理能力,区分 HTTP 请求与 UDP 流量。
可访问,但出口没有变化命中 DIRECT 或其他策略查看连接详情与规则顺序,不仅看模式开关。
电脑休眠后全部断开主机与内核在线状态调整可信使用场景下的电源设置,或结束共享。

规则模式下,命中 DIRECT 的连接会由电脑直接访问目标;命中代理策略的连接才经过对应节点。手机看到的公网出口因此取决于请求命中的策略,不一定与电脑所有应用一致。DNS 的具体路径也受应用、代理协议及内核配置影响,不能仅凭浏览器能打开网页就判断设备所有 DNS 请求都经过电脑。

七、共享结束后的安全与恢复检查

家庭网络也可能包含访客设备。建议优先用防火墙限制具体来源,必要时再启用内核支持的代理认证。认证不能替代网络隔离,而且不同手机、电视对认证代理的支持并不一致。不要把订阅地址、代理密码或控制接口凭据公开贴到排错截图里。

  1. 换网络前关闭共享:带笔记本去酒店、公司或公共 Wi-Fi 前,关闭 Allow LAN,并检查宽泛的防火墙授权。
  2. 结束使用后恢复设备设置:将手机或电视的 Wi-Fi 代理改回“关闭”或“无”,避免电脑关机后设备仍尝试连接旧地址。
  3. 撤销临时放行:Windows 可运行下方命令删除本文创建的规则;Linux 按实际添加内容删除对应 UFW 规则。
  4. 更新后复核:订阅更新、客户端升级或端口修改后,再查一次运行配置与监听结果,避免界面值和内核实际值不一致。
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

一套可重复检查的共享链路应当是:电脑地址固定、内核监听正确、可信来源获准访问、设备填写 HTTP 代理、连接日志能解释最终去向。按这个顺序排查,比同时切换 TUN、全局模式和 DNS 设置更容易定位问题。需要继续理解规则与网络栈时,可查看协议手册;基础概念可对照概念速查。