先分清混合端口、电脑地址与路由器网关
手机和电视不一定要各自运行代理客户端。电脑上的 Clash 系客户端可以开放一个局域网代理入口,其他设备把请求交给电脑,再由电脑上的内核按照当前配置选择直连或代理。前提是电脑保持开机、客户端内核运行正常,并且设备之间能够直接通信。
本文以使用 mihomo 内核的 Clash 系桌面客户端为主要说明对象。不同客户端可能把开关叫作“允许局域网连接”“允许局域网”或“Allow LAN”;端口也可能由图形界面覆盖。操作时以当前客户端的实际生效设置为准,不要只看订阅文件。
| 参数 | 本文示例 | 填在哪里 |
|---|---|---|
| 电脑局域网 IPv4 | 192.168.1.20 | 手机或电视的代理服务器地址 |
| 混合端口 | 7890 | 手机或电视的代理端口 |
| 路由器网关 | 192.168.1.1 | 保留在网络参数中,不作为本文的代理服务器 |
| 本机回环地址 | 127.0.0.1 | 仅用于同一台电脑上的程序连接 |
混合端口 7890:同一入口识别 HTTP 与 SOCKS5
mixed-port 让内核在同一个端口接收 HTTP 代理和 SOCKS5 代理请求,根据连接开头的协议数据区分类型。它并不要求应用同时启用两种代理;应用支持哪种,就选哪种,再填同一个端口。
- HTTP 代理:适合手机系统 Wi-Fi 代理、浏览器等场景。访问 HTTPS 网站时,通常通过 HTTP CONNECT 建立隧道,目标网站的 TLS 连接仍由应用与目标服务器建立。
- SOCKS5 代理:适合具有独立代理设置的应用和命令行工具。域名在本地解析还是交给代理解析,取决于应用选项。
- 7890 只是常用值:如果界面显示混合端口为 7897,就使用 7897;不能把 HTTP 端口、SOCKS 端口和混合端口混为一谈。
混合端口也不是内核控制接口。配置里的 external-controller 用于管理内核,不能填到手机的代理端口栏。不要为了共享代理而把控制接口开放到整个局域网。
混合端口不等于自动接管所有流量
手机设置 HTTP 代理后,只有遵循该设置的应用请求会进入电脑。游戏 UDP、部分视频应用、自带网络栈的程序可能仍然直连。SOCKS5 虽然有 UDP ASSOCIATE 机制,但还需要客户端应用、内核和防火墙共同支持,不能因为开启了 7890 就认定所有 UDP 都能转发。
同样,电脑开启 TUN 模式不代表手机自动进入 TUN。TUN 接管的是电脑本机路由到虚拟网卡的流量;手机若没有显式使用代理,仍然沿自己的默认路由访问网络。
电脑端设置:开放监听,确认实际生效端口
- 先确认电脑本机可用。导入有效订阅或配置,选择规则模式及可用策略。先让电脑浏览器正常访问目标网站,再处理共享,避免把节点问题误判为局域网故障。
- 找到混合端口。在客户端“设置”中的“端口”或“端口设置”查看“混合端口”,记录实际数值。若界面没有这个字段,查阅客户端当前配置与内核日志。
- 开启允许局域网连接。找到“允许局域网连接 / Allow LAN”并启用。部分客户端需要应用配置或重启内核,切换后检查日志是否报告监听失败。
- 确认监听地址。如果存在“绑定地址”选项,不要限制为
127.0.0.1。监听全部地址的设置会扩大可连接范围,后续要用防火墙限制来源。
使用 YAML 时,对照这三个字段
下面是 mihomo 支持的最小相关片段,只展示共享所需字段,不是完整订阅,也不应覆盖原有的节点、代理组和规则:
mixed-port: 7890
allow-lan: true
bind-address: '*'
allow-lan: true 允许局域网连接;bind-address: '*' 表示绑定全部地址,具体 IPv4、IPv6 监听表现还取决于系统。若只想监听某个固定的本地 IPv4,也可以把绑定地址设置成电脑该网卡的地址,但地址变化后需要同步修改。
查找电脑 IP,并放行局域网入站连接
Windows:确认网卡与专用网络配置
按 Win + R,输入 cmd,执行 ipconfig。找到当前联网的“无线局域网适配器 WLAN”或“以太网适配器”,读取 IPv4 地址。不要选到 TUN 虚拟网卡、虚拟机网卡或已经断开的适配器。
在 Windows 11 中,可以通过“设置”→“网络和 Internet”→当前 Wi-Fi 或以太网连接查看网络配置文件。只有确认是可信的家庭网络时,才设为“专用网络”;不要把酒店、学校等共享网络改成专用来绕过限制。
防火墙需要允许访问电脑的代理监听端口,而不是只允许客户端出站。可以在“Windows 安全中心”→“防火墙和网络保护”→“高级设置”→“入站规则”中新建端口规则:TCP、本地端口 7890、允许连接、仅勾选“专用”。再打开规则属性,在“作用域”中把远程 IP 限制为“本地子网”。
熟悉 PowerShell 的用户,也可以在管理员终端创建同等范围的规则。下例只适用于实际混合端口为 7890 的情况:
New-NetFirewallRule -DisplayName "Clash LAN TCP 7890" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7890 -Profile Private -RemoteAddress LocalSubnet
普通手机 HTTP 代理测试先放行 TCP 即可,不必顺手开放一大段端口。若之后确实使用 SOCKS5 UDP,再根据实际监听与应用需求单独检查 UDP 规则。
macOS 与 Linux:先确认地址,再检查应用权限
- macOS:进入“系统设置”→“网络”→当前连接→“详细信息”→“TCP/IP”,查看 IP 地址。在“系统设置”→“网络”→“防火墙”→“选项”中检查客户端或实际内核进程的传入连接权限;名称会随客户端打包方式变化。
- Linux:执行
ip -4 addr查看物理网卡地址,再用ss -lntp检查 7890 的监听。使用 UFW、firewalld 或其他防火墙时,仅允许可信网段访问实际端口,不要直接清空防火墙规则。
建议在路由器里为电脑设置 DHCP 地址保留。这样重启电脑后仍获得相同地址,手机和电视就不必反复修改代理服务器。
手机与电视:代理服务器填电脑地址,端口填 7890
iPhone 与 iPad
- 进入“设置”→“无线局域网”,点当前 Wi-Fi 右侧的信息按钮。
- 打开“配置代理”,选择“手动”。
- “服务器”填写电脑的局域网 IP,例如
192.168.1.20;“端口”填写实际混合端口,例如7890。 - 未启用代理认证时保持“鉴定”关闭,保存后用 Safari 发起一次访问。
这项设置针对当前 Wi-Fi,不会自动应用到蜂窝网络。测试完成后,如果离开电脑所在网络或电脑已经关机,记得回到“配置代理”选择“关闭”,否则遵循代理设置的应用可能无法联网。
Android 手机
常见原生 Android 路径是“设置”→“网络和互联网”→“互联网”→当前 Wi-Fi→编辑→“高级选项”→“代理”→“手动”。有些厂商把编辑入口放在网络详情底部。代理主机名填写电脑 IP,代理端口填写 7890,IP 设置继续保留 DHCP。
不要在主机名里添加 http://,也不要把地址与端口一起塞进同一个输入框。Android 系统 Wi-Fi 手动代理通常是 HTTP 代理,不是 SOCKS5 代理;应用不读取系统代理时,需要查看应用自身是否提供代理设置。
Android TV 与其他电视系统
在电视“设置”→“网络和互联网”→当前网络中查找“代理设置”。如果支持“手动”,同样填写电脑 IP 和混合端口。菜单因系统版本而异,有的电视仅在重新添加 Wi-Fi 时提供高级设置,有的系统根本没有代理入口。
找不到入口时,不要修改默认网关来碰运气。可改用电视应用自身提供的 HTTP 或 SOCKS5 设置;若应用和系统都不支持,需要另外设计路由器侧或网关侧方案,这已经不是勾选 Allow LAN 能解决的问题。
分层测试:先看连接是否到达,再看规则和节点
不要只靠“某个网站打不开”判断设置失败。先测试电脑本机代理,再测试另一台设备到电脑的连接,最后看 Clash 客户端的“连接”和“日志”。下面的地址是示例,运行时替换为电脑实际局域网地址。
用 curl 验证 HTTP 与 SOCKS5
在电脑本机用回环地址测试 HTTP 代理;Windows 中明确使用 curl.exe,避免旧版 PowerShell 的同名命令别名影响参数解析:
curl.exe -I --connect-timeout 5 --max-time 15 --proxy http://127.0.0.1:7890 https://example.com/
再在另一台具备 curl 的局域网设备上测试电脑地址。macOS、Linux 使用 curl;Windows 可改用 curl.exe:
curl -I --connect-timeout 5 --max-time 15 --proxy http://192.168.1.20:7890 https://example.com/
curl -I --connect-timeout 5 --max-time 15 --proxy socks5h://192.168.1.20:7890 https://example.com/
socks5h 要求代理端处理目标域名解析,与 socks5 的本地解析行为不同。HTTP 测试中看到 CONNECT 成功,只能说明隧道建立;还要继续确认目标站的响应。即便收到目标站的 403,也应结合日志区分是站点拒绝访问,还是代理根本没有连通。
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 本机回环地址也连不上 | 内核是否启动、端口是否冲突 | 查看启动日志与实际监听端口 |
| 本机可用,手机请求超时 | Allow LAN、绑定地址、防火墙、设备隔离 | 确认监听不局限于回环地址,并检查入站规则 |
| 出现连接被拒绝 | 目标 IP 是否正确、该端口是否监听 | 重新核对电脑网卡地址与端口 |
| 客户端能看到请求但访问失败 | 命中规则、所选节点、上游解析 | 在“连接”中查看策略链,再查错误日志 |
| 浏览器可用,某个应用不行 | 应用是否遵循 HTTP 代理 | 检查应用内代理选项,确认是否依赖 UDP |
同一个 Wi-Fi 名称也不保证设备互通。访客网络、AP 隔离、不同 VLAN 都可能阻断设备间访问。反过来,电脑接网线、手机连 Wi-Fi 并不天然有问题,只要两者所在网络允许通信即可。Ping 失败也不能单独证明 TCP 7890 不通,因为 ICMP 可能被防火墙拦截。
共享范围、认证与用完后的恢复
允许局域网连接会让其他设备有机会使用电脑的代理入口。家庭网络中也应限制防火墙来源,不要在路由器上把 7890 映射到公网,不要因排障而关闭整套系统防火墙。如果电脑还有其他网络接口或公网 IPv6 地址,更要核对实际监听与入站规则。
mihomo 支持通过 authentication 设置 HTTP、SOCKS 代理认证,但接入端必须能够填写并发送用户名和密码。部分 Android 系统 Wi-Fi 代理界面不提供相应输入项,电视支持情况也不一致;启用前要逐台验证。认证不是加密链路的替代品,普通局域网 HTTP/SOCKS 接入不应视为 VPN 隧道。
- 共享前:确认网络可信、电脑 IP 固定、端口准确、防火墙仅放行必要来源。
- 共享中:观察客户端“连接”中的来源地址与流量,确认请求来自预期设备。共享设备通常沿用同一套规则与策略组,并不会自动各用一套订阅。
- 共享后:先把手机和电视的手动代理关闭,再关闭 Allow LAN。临时创建的防火墙规则可以禁用或删除。
如果测试后要删除上文创建的 Windows 规则,可在管理员 PowerShell 中执行以下命令;它只删除使用该名称创建的规则:
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"
最后记住这条排查顺序:电脑本机代理可用 → 局域网端口可达 → 设备正确使用代理 → 规则和节点正常。把四层分开检查,比反复切换全局模式、TUN 和端口更容易找到原因。