先确认共享范围:电脑提供入口,设备主动连接

Clash 局域网共享的常见做法,是让电脑监听一个代理端口,再让手机、平板或电视把代理服务器设为电脑的局域网 IP。电脑继续使用已有订阅、代理组与规则处理这些连接。手机不需要复制电脑上的节点配置,但电脑必须保持开机、联网,且 Clash 内核正在运行。

这不是把电脑自动变成路由器。仅开启 allow-lan,不会强制接管同一 Wi-Fi 下所有设备的流量;其他设备仍需手动指定代理,或由另行配置的网关转发。本篇只讲显式 HTTP/SOCKS5 代理,不涉及旁路由、路由器透明代理与端口映射。

  • 电脑:先确认本机使用当前配置可以访问目标网站,避免把节点故障误判成共享问题。
  • 网络:电脑与接收设备之间必须允许直接通信。同一个路由器下的有线与无线设备通常可以互通,访客网络则可能禁止互访。
  • 示例地址:下文假定电脑 IPv4 为 192.168.1.20,混合端口为 7890。操作时替换成实际地址与端口。

mixed-port、allow-lan 与 bind-address 分别控制什么

字段示例值作用
mixed-port7890在同一端口接收 HTTP 与 SOCKS5 代理请求。
allow-lantrue允许局域网设备访问代理入口。
bind-address"*"指定监听地址;星号表示所有地址,需配合局域网访问设置。
moderule进入规则模式,按运行配置中的规则处理连接。

同一个端口,不代表同一种协议

mixed-port 根据接入请求识别协议。手机 Wi-Fi 设置中的“HTTP 代理”可以连接 7890,支持 SOCKS5 的应用也可以连接这个端口。HTTPS 网站通常通过 HTTP 代理的 CONNECT 隧道传输,不需要为了打开 HTTPS 网页另开一个“HTTPS 端口”,也不需要安装证书。

单独的 port 用于 HTTP 代理,socks-port 用于 SOCKS 代理;使用混合入口时,不要再让其他监听字段占用同一个地址和端口。电脑已有程序监听 7890 时,应先确认占用者,或者选择空闲端口并同步修改设备设置。

监听范围与放行范围要一起检查

127.0.0.1 是回环地址,只服务本机。即使手机能连到电脑的 Wi-Fi,也不能通过电脑的回环监听进入代理。bind-address: "*" 便于首次测试,但可能同时覆盖有线、无线及其他网络接口;长期使用可绑定固定局域网地址,并用防火墙进一步限制来源。

配置共享入口,并确认客户端实际加载的值

先备份当前可用配置。以下内容是要合并到现有配置顶层的片段,不是一份包含节点的完整订阅。保留原来的 proxies、proxy-providers、proxy-groups 和 rules,不要用这几行覆盖整个文件。

mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
  1. 在客户端设置中确认“混合端口”和“允许局域网连接”的实际值;不同客户端菜单名称可能略有差别。
  2. 若客户端提供配置覆写、合并或补丁功能,用它保存共享设置。直接编辑订阅生成的文件,可能在下一次订阅更新后丢失。
  3. 保存并重新加载配置,必要时重启内核。查看日志,确认没有 YAML 解析错误或端口占用错误。
  4. 再次查看生效配置或监听状态。图形界面可能覆盖 YAML 中的端口与开关,以内核运行结果为准。

YAML 顶层字段不应额外缩进,同一字段也不要重复声明。星号需要放在引号内;未加引号的 * 在 YAML 中具有特殊含义,可能导致解析失败。若只绑定有线网卡地址,可改为 bind-address: "192.168.1.20",但电脑地址变化后也要更新配置。

查电脑 IP,按网络范围放行防火墙

Windows:检查地址与 TCP 监听

Windows 11 可在“设置”→“网络和 Internet”→当前的“Wi-Fi”或“以太网”连接属性中查看 IPv4 地址,也可在终端执行 ipconfig。选择正在连接路由器的物理网卡地址,不要抄到 TUN 虚拟网卡、VPN 或其他虚拟适配器的地址。

ipconfig
Get-NetTCPConnection -State Listen -LocalPort 7890

第二条命令在 PowerShell 中执行。若 LocalAddress 只有 127.0.0.1,说明仍是本机监听;若为 0.0.0.0,通常表示 IPv4 所有接口;若为 192.168.1.20,则是指定地址。没有结果时,先检查内核是否启动以及实际端口是否为 7890。

确认当前连接确实是可信网络后,可以在“Windows 安全中心”→“防火墙和网络保护”→“高级设置”→“入站规则”中创建 TCP 端口规则。下面是管理员 PowerShell 的等价示例,仅允许专用网络中的 192.168.1.0/24 来源;如果家中网段不同,必须先修改:

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

这条规则用于本文的 HTTP 代理连通测试,不是 UDP 共享配置。停止共享后,可用以下命令删除该规则,避免留下长期开放的入口:

Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

macOS 与 Linux:检查对应内核进程

macOS 可在“系统设置”→“网络”→当前连接→“详细信息”→“TCP/IP”查看地址,并在“网络”→“防火墙”→“选项”中检查客户端或内核程序是否被阻止。不同系统版本的按钮位置可能调整;客户端升级更换了内核程序后,也应重新检查授权。

Linux 可运行 ip -4 addr 查地址,再运行 ss -lntp 查监听。若系统已使用 UFW,且实际家庭网段确为 192.168.1.0/24,可以添加以下限源规则。不要为了这一条规则,在不了解远程登录影响时贸然启用或重置防火墙。

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

手机与电视填写代理地址:服务器是电脑,不是路由器

iPhone 与 iPad

  1. 打开“设置”→“无线局域网”,点当前 Wi-Fi 右侧的信息按钮。
  2. 找到“配置代理”,选择“手动”。
  3. “服务器”填写电脑地址 192.168.1.20,“端口”填写 7890。
  4. 若电脑没有配置代理认证,保持“鉴定”关闭;保存后用 Safari 新建页面测试。

这项设置跟随当前 Wi-Fi,不会自动应用到蜂窝数据。不要把服务器写成手机自己的 IP、路由器网关或 127.0.0.1,也不要在服务器栏添加 http://。若代理入口要求认证,需要填写对应用户名和密码;部分应用对代理认证的支持并不完整,应逐个验证。

Android 手机

在系统 WLAN 设置中编辑当前网络,找到“高级选项”或“代理”,选择“手动”。主机名填写 192.168.1.20,端口填写 7890。以 Pixel 系列常见界面为例,入口为“设置”→“网络和互联网”→“互联网”→当前网络设置→编辑→“高级选项”→“代理”;其他品牌以实际网络编辑界面为准。

“不使用代理的地址”属于设备端绕过列表,与 Clash 的 rules 不是同一层。首次测试先保持该项默认,不要填写含义不明的通配规则。Android Wi-Fi 手动代理主要面向读取系统 HTTP 代理的应用,不能据此认定游戏、视频应用或后台服务也会使用它。

电视与电视盒子

在电视的“设置”→“网络”中打开当前连接,查找“代理设置”或网络编辑选项。如果支持手动 HTTP 代理,同样填写电脑 IP 与 7890。部分电视只在 Wi-Fi 编辑页提供代理项,有线网络未必支持;不要为寻找代理入口随意改成静态 IP,以免把网关或 DNS 填错。

如果电视没有代理选项,可检查目标应用是否自带 HTTP/SOCKS5 设置,或是否适合安装独立兼容客户端。仅把电视的 DNS 改成电脑地址,不能替代代理配置;本文也没有开启供局域网使用的 DNS 服务。

按监听、网络、规则三层验证共享结果

建议先用手机浏览器测试一个明确需要代理的 HTTPS 网站,同时打开电脑客户端的连接列表或日志。重点看连接是否进入内核、目标域名是否正确、命中了哪条规则以及最终出口,而不是只看手机状态栏有没有图标。

  1. 先验证端口可达:如果还有一台 Windows 电脑,可执行 Test-NetConnection 192.168.1.20 -Port 7890。TcpTestSucceeded: True 只说明 TCP 入口可达,不代表节点与规则一定正常。
  2. 再验证代理请求:在另一台装有 curl 的电脑执行下方命令,明确指定代理,排除应用忽略系统代理的影响。
  3. 最后看实际应用:浏览器成功后,再单独验证电视应用、局域网投屏或其他业务,不把网页测试结果扩展成“全部流量已接管”。
curl --proxy http://192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

这里 5 秒是连接阶段超时上限,20 秒是整次请求时间上限,不是延迟测量结果。连接列表中若请求命中了 DIRECT,它仍然可能经过电脑代理入口,只是后续由电脑直连目标;需要结合规则与出口判断。

现象优先检查下一步
端口连接超时防火墙、访客网络、AP 隔离、电脑地址确认设备互通,并检查入站规则作用的网络配置文件。
连接被拒绝端口未监听、内核退出、地址绑定错误查监听状态,核对实际混合端口。
返回 HTTP 407代理要求身份认证检查设备是否支持认证,并填写有效凭据。
请求进入日志但失败节点、规则、电脑侧 DNS 或上游连接对照同一目标在电脑本机的访问结果。
浏览器正常,电视应用失败应用不读取 HTTP 代理,或业务依赖 UDP检查应用代理能力,按需要改用设备端方案。

ping 失败不能单独证明代理不可达,因为系统可能禁止 ICMP 回应。反过来,能 ping 通也只证明部分网络连通,仍需测试 7890 的 TCP 连接。若电脑本机也打不开同一目标,应先修复配置或上游节点,而不是不断更换手机端口。

TUN、DNS 与 UDP:共享代理的边界

电脑开启 TUN,不等于手机流量自动进入

TUN 主要处理进入电脑虚拟网络接口的流量。仅在电脑客户端打开 TUN,不会自动给同网段手机下发代理,也不会让普通电脑成为其他设备的默认网关。本文的显式代理方式通常不要求开启 TUN;电脑系统代理开关也不等于局域网共享开关,关键仍是监听入口和设备端设置。

HTTP 代理不覆盖所有协议

普通 HTTP 代理与 HTTPS CONNECT 主要服务 TCP 连接,不能承诺接管游戏 UDP、QUIC、投屏发现或局域网广播。虽然 SOCKS5 协议有 UDP 转发机制,能否实际使用还取决于应用、内核、节点以及防火墙;手机 Wi-Fi 页面填写 HTTP 代理,并不会自动获得 SOCKS5 UDP 能力。

DNS 位置由请求方式决定

HTTP 代理通常会收到目标主机名,再由电脑侧按当前配置处理解析与连接;但应用可能预先解析域名,也可能忽略系统代理。SOCKS5 是否把域名交给代理解析,同样取决于应用的请求方式。因此,不应把“设置了 Wi-Fi 代理”当成设备所有 DNS 请求都由 Clash 处理的保证。

日常使用:固定地址、避免休眠、离开网络前关闭

  • 固定电脑地址:优先在路由器 DHCP 设置中为电脑保留地址,避免重连后从 192.168.1.20 变成其他 IP。手工设静态地址时要核对网段、网关和地址冲突。
  • 确认供电状态:笔记本合盖或休眠后,代理连接通常会中断。需要持续共享时,在系统电源设置中按需调整,并注意通风与用电。
  • 限制接入范围:检查现有防火墙是否已经有更宽泛的应用放行规则;新增限源规则不会自动收紧旧规则。多网卡设备尤其需要复核。
  • 停用时恢复设备:先把手机或电视的代理改回“关闭”或“无”,再关闭电脑共享。否则设备可能持续向已离线的电脑发请求。

完整排查顺序可以压缩为四步:确认电脑本机可用,确认混合端口对局域网监听,确认设备能穿过防火墙连接该端口,最后确认应用请求的规则与出口。沿着这条链路检查,比反复导入订阅或同时打开多个网络开关更容易定位问题。