Clash 混合端口与局域网代理:手机和其他设备共享设置
讲清 mixed-port、允许局域网访问、监听地址、防火墙放行及共享失败时的检查重点。
共享代理的工作路径
Clash 或 Mihomo 在电脑上启动后,会创建一个或多个本地代理监听端口。通常情况下,这些端口只供本机应用使用;开启局域网访问后,同一网络中的手机、平板、电视盒子或另一台电脑,也可以把请求发送到这个监听端口,再由运行 Clash 的主机完成规则匹配和节点转发。
完整路径可以概括为:客户端设备发起请求,家庭路由器或局域网交换设备把数据交给 Clash 主机,Clash 根据当前模式与规则决定使用代理节点还是直接连接,响应随后沿原路径返回。远端设备不需要读取 Clash 配置文件,也不直接连接订阅中的节点,它只需要知道主机的局域网 IP、监听端口和代理协议。
这类共享方式并不等同于把电脑变成完整路由器。手动填写 HTTP 代理时,只有遵循系统代理设置的应用会经过 Clash;忽略系统代理、直接建立连接或自行使用 VPN 接口的应用,可能继续直连。需要接管设备全部流量时,应使用旁路由、透明代理或在设备本机部署支持 TUN 的客户端,而不是仅依赖 Wi-Fi 代理字段。
mixed-port 同时接收 HTTP 与 SOCKS5
mixed-port 是混合代理端口。它允许 HTTP 代理连接和 SOCKS5 代理连接进入同一个端口,减少分别维护 port 与 socks-port 的需要。常见端口号是 7890,但它只是约定俗成的配置值,并非固定要求;只要没有被其他程序占用,可以改成其他未使用端口。
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
这段配置表示:在 7890 端口接收 HTTP 与 SOCKS5 请求,允许局域网设备连接,并按规则模式处理流量。YAML 对缩进和字符形式敏感,冒号后需要保留空格,星号建议放在引号中,避免被解析为 YAML 别名语法。
如果配置中同时保留了 port、socks-port 和 mixed-port,应先确认客户端界面最终写入内核的值。不同端口可以并存,但手机填写的端口必须与正在监听的端口一致。图形客户端中的“混合端口”“允许局域网连接”通常会映射到这些字段,修改后还可能需要应用配置或重启内核。
HTTP 与 SOCKS5 应该选哪一个
手机 Wi-Fi 设置页提供的“代理”通常指 HTTP 代理,因此应填写 Clash 主机的局域网 IP 和 mixed-port。浏览器访问 HTTPS 网站时,会通过 HTTP CONNECT 建立隧道,仍然可以使用该端口。支持 SOCKS5 的应用则可以把相同地址和端口作为 SOCKS5 服务器使用。
HTTP 代理更容易通过系统网络设置部署,但并非所有应用都会遵循。SOCKS5 能承载更多应用层连接方式,并支持由代理端解析域名的用法,但系统设置页往往没有 SOCKS5 入口,需要应用自身提供代理选项。对于只想验证共享链路的场景,先用 HTTP 代理测试最直观。
共享请求仍会进入规则系统
远端设备连接混合端口后,请求不会自动进入全局代理。Clash 仍按照当前的规则模式、全局模式或直连模式处理流量。在规则模式下,域名、目标 IP、进程不可见情况下的网络特征以及配置中的规则顺序都会影响最终策略。若测试网站命中了 DIRECT,即使共享设置正确,也可能看到出口地址没有变化。
排查时可临时观察连接列表或日志中的规则命中结果,而不是仅凭页面能否打开判断代理是否生效。验证结束后,应恢复日常使用的模式,避免长期使用全局模式掩盖规则配置问题。
允许局域网访问与监听地址
allow-lan: true 控制其他设备是否可以访问代理端口。只设置混合端口但未允许局域网访问时,内核可能仅接受来自本机的连接,手机会表现为连接超时或立即拒绝。图形客户端中对应的选项常被命名为“允许局域网”“局域网连接”或“Allow LAN”。
bind-address 决定监听哪些本地地址。"*" 表示由内核按其实现监听可用地址,适合主机地址可能变化的家庭网络。只需要 IPv4 共享时,也可以使用 0.0.0.0 监听所有 IPv4 接口。若希望缩小监听范围,可以填写主机当前的局域网 IPv4 地址,例如 192.168.1.20,但 DHCP 重新分配地址后需要同步修改配置。
客户端设备不能填写 127.0.0.1、localhost 或 0.0.0.0。在手机上,127.0.0.1 指向手机自身;0.0.0.0 是监听用途的通配地址,不是可连接的目标。手机代理服务器一栏应填写运行 Clash 的电脑在当前局域网中的实际地址。
查找主机的局域网 IP
- Windows 可运行
ipconfig,查看当前 Wi-Fi 或以太网适配器的 IPv4 地址。 - macOS 可在网络设置中查看已连接接口的 IP,也可使用
ipconfig getifaddr en0;若接口不是en0,应按实际接口调整。 - Linux 可运行
ip addr,在当前联网接口下查找局域网地址。
常见家庭地址以 192.168.、10. 或 172.16. 至 172.31. 开头。主机可能同时存在有线网卡、无线网卡、虚拟机网卡和 VPN 虚拟接口,应选择与手机处于同一局域网的物理接口地址。最简单的判断方式是比较两台设备的网关和网段。
防火墙放行与 Wi-Fi 客户端隔离
内核已经监听局域网地址,并不代表数据一定能到达端口。Windows Defender 防火墙、macOS 防火墙、Linux 的 nftables、iptables 或 firewalld 都可能拦截入站连接。放行规则应针对实际使用的 TCP 端口,并尽量把来源限制在家庭或办公局域网网段。
Windows 首次启动相关客户端时,系统可能询问允许在哪类网络中通信。通常只需要允许“专用网络”。如果当前 Wi-Fi 被识别为公用网络,即使应用已经获得专用网络权限,连接仍可能被阻止。可以先确认网络配置文件类型,再检查应用规则或端口规则是否覆盖当前内核进程。
Linux 主机可先确认监听状态,再处理防火墙。例如使用以下命令查看 7890 端口:
ss -lnt | grep 7890
若结果只显示 127.0.0.1:7890,说明问题仍在 Clash 的监听配置;若显示 0.0.0.0:7890、主机局域网地址或相应的 IPv6 监听地址,则继续检查防火墙和路由器隔离设置。不要为了测试直接关闭全部防火墙,建立范围明确的临时入站规则更容易判断原因,也便于测试后收回。
同一 Wi-Fi 也可能不能互访
部分路由器为访客网络启用了 AP 隔离、客户端隔离或无线终端隔离。此时手机和电脑虽然显示连接到同一台路由器,却不能直接建立局域网连接。企业、酒店和公共热点也常采用类似策略。可先尝试从另一台电脑访问代理端口,或检查手机是否能连接主机上的其他局域网服务。
双频 Wi-Fi 本身通常不会阻断通信,但某些路由器会把访客 SSID、物联网 SSID 和主网络划分到不同网段。若设备地址不在同一网段,应确认路由器是否允许网段之间访问。仅开启 allow-lan 无法绕过路由器的访问控制。
手机、平板与其他电脑的设置方法
iPhone 与 iPad
- 让设备连接到与 Clash 主机相同且允许终端互访的 Wi-Fi。
- 打开当前 Wi-Fi 的详细设置,进入 HTTP 代理,将配置方式改为手动。
- 服务器填写 Clash 主机的局域网 IP,端口填写
mixed-port的值。 - 若内核配置了代理认证,再填写对应用户名与密码;未配置时保持认证关闭。
- 保存后打开浏览器访问一个预期命中代理规则的网站,并同步观察 Clash 连接列表。
iOS 和 iPadOS 的手动 HTTP 代理按 Wi-Fi 网络保存。切换到移动数据、另一个 Wi-Fi 或关闭当前网络后,该设置不会自动迁移。部分应用可能忽略系统 HTTP 代理,因此浏览器测试成功并不表示所有应用都会采用相同路径。
Android 设备
- 进入当前 Wi-Fi 的网络修改或高级设置页面。
- 把代理方式改为手动,代理主机名填写电脑的局域网 IP。
- 代理端口填写混合端口,例如
7890。 - 保存并重新连接 Wi-Fi,随后通过浏览器和 Clash 日志验证请求。
Android 厂商对设置页的命名不同,有的系统要求长按 Wi-Fi 名称后才能看到代理选项。系统级 Wi-Fi HTTP 代理通常不能覆盖所有应用,也不等同于 VPN 或 TUN。需要使用 SOCKS5 的应用,应在应用内部填写同一主机地址和混合端口,并选择 SOCKS5 协议。
另一台电脑
Windows、macOS 和 Linux 可以在系统网络代理中填写 HTTP 代理,也可以只为浏览器、终端或开发工具设置。使用 curl 验证 HTTP 代理时,可运行:
curl -x http://192.168.1.20:7890 https://example.com
验证 SOCKS5 并让代理端处理域名解析时,可使用:
curl --socks5-hostname 192.168.1.20:7890 https://example.com
示例中的 IP 必须替换为实际主机地址。若第一条命令成功而系统中的应用失败,重点检查应用是否读取系统代理、是否设置了代理绕过列表,以及应用是否自行建立了其他网络隧道。
访问控制、认证与暴露边界
监听所有接口会让同一可达网络中的其他设备尝试连接代理端口。家庭可信网络中可以通过防火墙限制来源网段;在成员较多的办公网络、宿舍网络或公共热点中,应进一步限制监听地址,或使用内核支持的代理认证功能。
Mihomo 等实现支持通过配置为 HTTP 与 SOCKS 入口设置用户名和密码,常见配置形式如下:
authentication:
- "lanuser:replace-with-a-strong-password"
认证字段的支持情况会随内核与客户端版本而异,修改前应确认当前客户端实际使用的内核。用户名和密码会交给需要访问代理的设备,适合作为局域网访问控制的一部分,但仍应配合防火墙来源限制。不要把代理端口映射到路由器公网地址,也不要在云主机安全组中对互联网开放该端口。
如果只在家中偶尔共享,可以在使用结束后关闭“允许局域网”,或撤销临时防火墙规则。长期共享时,应固定主机 IP、记录端口用途,并避免与开发服务器、数据库或其他本地服务使用相同端口。
共享失败时的检查顺序
排查应从监听端向客户端逐层推进。一次只修改一个变量,并在每一步记录现象。直接反复切换节点或重装客户端,通常无法定位局域网连接问题。
第一步:确认内核运行与端口占用
先在主机本机使用 127.0.0.1 和混合端口测试代理。如果本机也无法连接,检查内核是否启动、配置是否加载成功、端口是否被其他程序占用,以及日志中是否存在 YAML 解析或监听失败信息。端口冲突时应选择新的未占用端口,并同步修改远端设备设置。
第二步:确认监听范围
检查 allow-lan 是否为 true,再查看端口实际监听地址。只监听回环地址意味着请求无法从网卡进入。修改图形客户端选项后,应确认它已经写入当前生效配置,而不是只修改了某个未启用的配置文件。
第三步:确认 IP、端口和网络
核对手机填写的是主机当前局域网 IP,而不是网关地址、虚拟网卡地址或上一次连接时的旧地址。确认两台设备连接到允许互访的网络,关闭会切换网络路径的移动数据辅助功能后再测试。若路由器启用了访客隔离,应切换到主网络或调整隔离策略。
第四步:检查防火墙
端口已监听但远端连接超时,常见原因是入站防火墙。建立仅允许本地网段访问目标 TCP 端口的规则,再从另一台电脑测试端口连通性。Windows 可在远端 PowerShell 中运行:
Test-NetConnection 192.168.1.20 -Port 7890
TcpTestSucceeded 为真,只说明 TCP 端口可达,不代表代理规则和节点已经工作;为假则应继续检查地址、监听、防火墙和网络隔离。
第五步:查看连接与规则命中
端口可达但网页打不开时,打开 Clash 的运行日志或连接列表。若完全没有新连接,客户端应用可能没有使用系统代理,或代理设置未保存。若能看到连接但失败,继续检查域名解析、节点状态、策略组选择和规则命中结果。
在规则模式下,测试目标可能命中直连;在全局模式下,当前全局策略可能指向不可用节点;在直连模式下,所有请求会绕过代理节点。模式和策略组属于转发层问题,应与局域网端口能否到达分开判断。
第六步:区分 HTTP、DNS 与 UDP 限制
手机 Wi-Fi 中的 HTTP 代理主要处理采用 HTTP 代理机制的 TCP 请求。应用自行发送的 DNS、QUIC、游戏 UDP 或其他不读取系统代理的流量,可能不会进入该端口。出现“浏览器可用、某个应用不可用”时,不应立即判断共享失效,应先确认该应用支持何种代理方式。
如果 SOCKS5 客户端提供“远程解析域名”选项,启用后可由代理端处理目标域名,减少客户端本地 DNS 行为带来的差异。HTTP CONNECT 请求也可能把域名交给代理端,但具体行为取决于客户端实现。涉及 UDP 的应用还需要客户端、入口协议、节点和防火墙共同支持,不能用普通网页测试结果代替。
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 本机代理也不可用 | 内核状态、配置解析、端口冲突 | 查看启动日志并确认本地监听 |
| 远端连接超时 | 主机 IP、防火墙、客户端隔离 | 测试 TCP 端口可达性 |
| 连接被立即拒绝 | 端口号、监听地址、内核是否运行 | 核对 mixed-port 与监听结果 |
| 浏览器可用但应用不可用 | 应用是否遵循 HTTP 代理 | 改用应用内 SOCKS5 或本机 TUN |
| 日志有连接但出口未变化 | 当前模式、规则命中、策略组 | 检查连接详情中的目标策略 |
| 重连 Wi-Fi 后失效 | 主机局域网 IP 是否变化 | 配置 DHCP 地址保留 |
配置完成后的验证清单
- 主机本地能够通过
mixed-port正常访问网络。 allow-lan已开启,端口不是只监听127.0.0.1。- 手机填写的是主机当前局域网 IP 与正确端口。
- 防火墙只对需要的本地网段放行入站连接。
- 路由器未对两台设备启用客户端隔离。
- Clash 连接列表能看到来自局域网设备的新请求。
- 测试目标命中了预期规则与策略组,而不是意外直连。
- 使用结束后按实际需要关闭局域网访问或保留受限规则。
混合端口共享的关键不在于单个开关,而在于入口、网络与转发三层同时成立:Clash 正确监听,局域网允许到达,规则和节点能够完成后续连接。按这一顺序检查,可以把“手机连不上代理”拆解成明确的配置项,而不是在端口、节点和系统设置之间反复试错。
Next route
选择客户端并继续配置
先按系统与维护状态选择 Clash 客户端,再通过使用文档完成订阅导入、规则选择和局域网设置。