Clash mixed-port 与 allow-lan 设置:让局域网手机、电视共用电脑代理
从 mixed-port 与 allow-lan 两个字段讲起,覆盖防火墙放行、局域网 IP 查询、手机与电视的手动代理填写,以及只允许指定网段接入的写法。
共享代理的条件:监听端口、局域网可达、应用遵循代理
让手机或电视借用电脑上的 Clash,通常只需开放一个局域网代理端口,再在设备的 Wi-Fi 设置里填写电脑地址与端口。电脑充当代理服务器,不必同时充当路由器。设备与电脑之间先建立连接,再由电脑上的规则和策略决定流量直连还是转发到代理节点。
本文使用 7890 作为混合端口示例,电脑局域网 IPv4 地址设为 192.168.1.10。这些是配置示例,不是自动适配所有网络的固定值。实际操作前必须查出电脑当前地址,并确认该端口没有被其他进程占用。
- 电脑与手机、电视应处于能相互访问的局域网。相同 Wi-Fi 名称不代表设备之间一定可达。
- 电脑上的客户端需要保持运行,所选配置和节点须先在电脑本机验证可用。
- Wi-Fi 手动代理主要服务于遵循系统 HTTP 代理设置的应用,不等同于全设备流量接管。
- 电脑休眠、关机、切换网络或更换 IP 后,设备原先填写的代理可能失效。
mixed-port 与 allow-lan 的实际配置
三个字段分别控制什么
| 字段 | 示例值 | 作用 |
|---|---|---|
mixed-port | 7890 | 让同一个监听端口接受 HTTP 与 SOCKS 代理连接。 |
allow-lan | true | 允许局域网设备访问代理监听服务。 |
bind-address | 192.168.1.10 | 绑定指定的本机网卡地址;该地址必须实际存在。 |
下面片段适用于已有可用配置的情况。把字段合并到 YAML 顶层,与 rules、proxies 同级,不要缩进到某个策略组里,也不要重复写同名键。
mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.10
mode: rule
此片段不是独立配置文件,不包含节点、策略组和规则。保留原有可用配置后再合并。mode: rule 表示共享请求仍按电脑上的规则分流;开启局域网共享并不会把规则模式自动改为全局代理。
绑定所有网卡与固定地址的区别
bind-address: '*' 是监听所有地址的常见写法,但会扩大可访问接口的范围。电脑同时连接以太网、Wi-Fi、虚拟机网络时,优先绑定需要共享的局域网地址,并结合防火墙限制来源。绑定 127.0.0.1 只供电脑本机使用,手机无法通过该地址连接电脑。
图形客户端可能在启动时重新生成内核配置。应使用客户端提供的持久化配置覆写或合并功能,而不是只修改临时运行文件。不同客户端的菜单名称并不统一。保存并重载后,以实际运行配置和监听结果为准;订阅更新后也要再次确认这三个字段仍然生效。
查电脑局域网 IP,并验证 7890 正在监听
Windows:区分当前网卡与虚拟网卡
在 PowerShell 或命令提示符运行 ipconfig,找到当前联网的“无线局域网适配器 WLAN”或以太网适配器,读取 IPv4 地址与子网掩码。不要选到 VPN、虚拟机或已断开的网卡。若电脑地址为 192.168.1.10、掩码为 255.255.255.0,对应网段是 192.168.1.0/24。
ipconfig
随后检查端口。下面命令适用于 Windows PowerShell,结果中的 LocalAddress 应是预期的局域网地址,或表示所有 IPv4 接口的 0.0.0.0。如果只显示 127.0.0.1,说明服务仍仅供本机访问。
Get-NetTCPConnection -State Listen -LocalPort 7890 |
Select-Object LocalAddress, LocalPort, OwningProcess
macOS 与 Linux:确认接口和进程
macOS 可在“系统设置”→“网络”中选择当前连接,再进入“详细信息”→“TCP/IP”查看 IP 地址。终端运行下面命令可检查监听进程;进程信息不完整时再按需使用 sudo。
lsof -nP -iTCP:7890 -sTCP:LISTEN
Linux 可分别查询 IPv4 地址与 TCP 监听状态:
ip -4 addr show
ss -lntp 'sport = :7890'
建议在路由器的 DHCP 设置中为电脑建立地址保留,让同一网卡长期取得同一 IP。不要在未确认 DHCP 地址池和网关配置的情况下,随意给电脑填写静态地址,否则可能与其他设备冲突。
防火墙只放行可信来源,不关闭整机防护
allow-lan: true 不会替操作系统创建防火墙规则。监听正常却连接超时,首先检查电脑入站防火墙与路由器的客户端隔离。对于本文的 Wi-Fi HTTP 手动代理,先放行 TCP 7890 即可,不必顺带开放 UDP 或外部控制端口。
Windows:按专用网络和来源网段放行
仅在可信家庭网络中使用下列示例。先确认当前网络配置文件为“专用”,再以管理员身份打开 PowerShell。命令将访问限定为本机 192.168.1.10 的 TCP 7890,且来源只能是 192.168.1.0/24:
New-NetFirewallRule `
-DisplayName "Clash LAN TCP 7890" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalAddress 192.168.1.10 `
-LocalPort 7890 `
-RemoteAddress 192.168.1.0/24 `
-Profile Private
不再共享时,可以用对应显示名称删除该规则:
Get-NetFirewallRule -DisplayName "Clash LAN TCP 7890" |
Remove-NetFirewallRule
如果已有针对客户端程序的宽泛入站放行规则,新增窄规则不会自动收紧旧规则。应同时检查“高级安全 Windows Defender 防火墙”中的现有入站规则,避免其他允许规则仍向更多来源开放端口。
macOS 与 Linux:沿用系统现有防火墙体系
macOS 可在“系统设置”→“网络”→“防火墙”→“选项”检查实际接收连接的客户端或内核程序是否允许传入连接。内置应用防火墙的界面主要按程序管理;若需要按来源网段精细限制,可配合下文的 mihomo 访问控制字段。
Linux 如果已经启用 UFW,可添加下面的来源限制规则。没有使用 UFW 的系统,应在现有防火墙体系内配置,不要为了这一条命令临时启用另一套规则管理工具。
sudo ufw allow from 192.168.1.0/24 to 192.168.1.10 port 7890 proto tcp
手机与电视填写 HTTP 手动代理
iPhone 与 iPad
- 打开“设置”→“无线局域网”,点当前 Wi-Fi 右侧的信息按钮。
- 进入“配置代理”,选择“手动”。
- “服务器”填写
192.168.1.10,“端口”填写7890。 - 未配置代理认证时关闭“鉴定”,保存后用 Safari 打开网页测试。
服务器栏只写电脑 IP,不加 http://,不附带路径,也不把端口拼进地址栏。这项设置属于当前 Wi-Fi;切换到蜂窝网络或另一组 Wi-Fi 后,不会自动沿用同一连接。
Android 手机
通常从“设置”→“网络和互联网”→“互联网”进入当前 Wi-Fi 的编辑页面,在“高级选项”中把“代理”改为“手动”。厂商系统可能把入口放在“WLAN”或“修改网络”内;实际需要填写的字段相同:
- 代理主机名:
192.168.1.10。 - 代理端口:
7890。 - 绕过代理的地址:首次验证时可先留空,避免测试目标被排除。
Android TV 与其他电视系统
如果电视网络设置提供“代理设置”→“手动”,填写相同地址和端口。有些系统会要求重新编辑或重新连接当前 Wi-Fi;有些电视根本不提供系统代理入口,此时不能只靠本文的两个字段完成接入,需要应用自身支持代理,或另行规划网关方案。
Wi-Fi 界面中的代理通常是 HTTP 代理。mixed-port 同时支持 HTTP 与 SOCKS,并不意味着这里需要选择 SOCKS。HTTPS 网页通常通过 HTTP 代理的 CONNECT 隧道访问;这不要求在手机上安装解密证书。
mihomo:只允许指定网段或指定设备接入
在 mihomo 中,可使用 lan-allowed-ips 与 lan-disallowed-ips 进一步限制来源。这两个字段应以所用内核的配置文档为准,不应假定旧版原版 Clash 或所有衍生客户端都支持。下例允许一个 IPv4 网段,并排除其中一台设备;拒绝列表优先于允许列表。
mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.10
lan-allowed-ips:
- 192.168.1.0/24
lan-disallowed-ips:
- 192.168.1.50/32
若只共享给一台手机和一台电视,可以把允许列表收紧为两个单地址,而不是整个网段。例如手机是 192.168.1.21、电视是 192.168.1.31:
lan-allowed-ips:
- 192.168.1.21/32
- 192.168.1.31/32
/32 表示单个 IPv4 地址,/24 则覆盖该示例下的整个子网。来源地址也应通过 DHCP 保留稳定下来,否则手机地址变化后可能失去权限。使用 IPv6 或监听所有接口时,应另外审查 IPv6 的监听与访问规则,不能把 IPv4 限制误认为完整的双栈安全边界。
还可使用 authentication 配置 HTTP/SOCKS 用户名与密码,但部分手机和电视的系统代理界面不支持认证。不要把用户名密码放进订阅分享截图;对仅供家庭设备使用的场景,网段限制、单地址限制和防火墙应优先落实。
按链路排错:监听、连通、代理、规则
先验证电脑自身的代理入口
在电脑上显式指定代理发起请求,可以排除浏览器缓存或系统代理开关的干扰。Windows 使用 curl.exe,避免旧版 PowerShell 中 curl 别名的差异:
curl.exe -I --connect-timeout 5 --max-time 15 --proxy http://192.168.1.10:7890 https://example.com/
macOS 与 Linux 可把命令中的 curl.exe 换成 curl。命令返回 HTTP 响应,说明这一次请求经过指定代理入口完成;它本身不能证明最终使用了远端代理节点,因为规则也可能选择 DIRECT。
再从另一台局域网设备检查入口
如果有第二台 Windows 电脑,可运行下面命令测试 TCP 可达性。TcpTestSucceeded 为 True 只说明端口可连接,不代表节点、域名解析和目标网站都正常。
Test-NetConnection -ComputerName 192.168.1.10 -Port 7890
| 现象 | 优先检查 |
|---|---|
| 连接被拒绝 | 内核是否运行、端口是否写错、是否只绑定回环地址。 |
| 连接超时 | 入站防火墙、访客网络隔离、VLAN 隔离、电脑是否休眠。 |
| 返回 HTTP 407 | 代理要求认证,设备是否填写了匹配的用户名和密码。 |
| 端口可达但网页失败 | 电脑本机节点是否可用、日志中的解析错误、规则命中的策略组。 |
| 浏览器可用但电视应用失败 | 应用是否遵循系统代理,是否依赖未被接管的 UDP 或独立网络连接。 |
最后在客户端的连接列表或日志中查找手机、电视的源 IP,确认请求是否进入内核,以及命中哪条规则、选择哪个策略。要验证代理出口,应使用明确走代理的测试目标,并结合连接记录判断,不要仅凭网页能打开就认定所有设备流量都已代理。
排错期间一次只改一项。先让电脑本机代理成功,再检查另一设备到端口的连通性,最后处理具体应用。这样能把问题缩小到监听、防火墙、应用代理支持或规则选择,而不是同时重置所有设置。
停止共享与配置维护
停止使用时,先把手机或电视的 Wi-Fi 代理改回“关闭”或“无”,避免电脑关机后设备继续请求不存在的代理。随后将电脑配置中的 allow-lan 改为 false,重载配置,并删除不再需要的防火墙放行规则。
长期共享则需要保留三项记录:电脑的 DHCP 保留地址、实际混合端口、允许接入的设备地址。更新订阅、升级客户端或切换网卡后,重新检查运行配置和监听结果。基础字段含义可查 配置进阶;初次安装和导入配置可从 使用教程 开始。
配置依据
- mihomo 文档:入站配置,用于核对混合端口、局域网访问、绑定地址及认证字段。
- Microsoft Learn:New-NetFirewallRule,用于核对入站规则、来源地址和网络配置文件参数。