进阶设置 预计阅读 9 分钟

混合端口 7890 与允许局域网:让手机共用电脑代理

解释 mixed-port 同时承载 HTTP 与 SOCKS5 的原理,演示开启 allow-lan、查看本机局域网 IP 与在手机 Wi-Fi 里填写代理。

先确认条件:电脑能连接,手机与电脑互通

手机共用电脑代理,实际是把电脑上的 Clash 或 mihomo 客户端当作局域网代理入口。手机把支持代理的请求交给电脑,电脑再依据当前配置中的规则与策略组决定直连还是经过节点。手机不需要为这条访问路径再次导入订阅,但电脑必须开机、保持联网,并持续运行代理内核。

先在电脑上打开一个需要代理的网站。确认订阅已启用、策略组已选中可用节点,再设置局域网共享。电脑本身都不能连接时,先处理订阅与节点问题,修改手机代理地址不能解决上游故障。

  • 网络要求:电脑可以接网线,手机可以连 Wi-Fi,但两者之间必须允许局域网通信。最简单的组合是连接同一台家庭路由器。
  • 隔离限制:访客 Wi-Fi、无线客户端隔离、企业网络访问控制可能阻止手机访问电脑。相同的 Wi-Fi 名称不等于一定互通。
  • 使用范围:手机 Wi-Fi 的手动 HTTP 代理主要服务于遵循系统代理设置的应用,不是整机流量接管。

本文示例使用电脑地址 192.168.1.50、手机地址 192.168.1.80、混合端口 7890。这些是讲解用的内网地址,不是自动探测结果。操作时先查到自己的地址,再填写。

理解 mixed-port、allow-lan 与监听地址

mixed-port 是同一个 TCP 监听端口上的协议识别入口,可以接受 HTTP 代理请求与 SOCKS5 连接。它不是把两种协议叠加使用,也不要求手机同时设置两套代理。手机 Wi-Fi 页面一般提供 HTTP 代理,因此填写混合端口后使用的是其中的 HTTP 代理能力。

字段作用本例设置
mixed-portHTTP 与 SOCKS5 共用的代理入口7890
allow-lan允许来自局域网的代理连接true
bind-address限制代理监听的本机地址192.168.1.50

7890 是常见配置值,不是强制标准。客户端可能使用其他端口,必须以当前运行配置和实际监听结果为准。单独的 port 通常是 HTTP 端口,socks-port 是 SOCKS 端口,不要看到任意一个数字就填进手机。

127.0.0.1 是回环地址。电脑监听这个地址时,只接受电脑本机连接;手机填写它,指向的反而是手机自身。bind-address 设为 '*' 通常表示监听所有接口,但暴露范围更广。本文选择具体的局域网 IPv4 地址,并配合防火墙缩小访问范围。

HTTPS 网页为什么也能使用 HTTP 代理

访问 HTTPS 网站时,支持该代理的应用通常通过 HTTP CONNECT 建立隧道,再在隧道内与目标网站进行 TLS 通信。普通转发不要求安装根证书,也不需要关闭证书验证。若设置共享后出现证书警告,先停止敏感操作并检查时间、网络和目标站点,不要靠安装陌生证书来“修好代理”。

第一步:找到电脑当前的局域网 IPv4 地址

Windows:查看正在使用的网卡

按 Win + R,输入 cmd 并回车,执行下面的命令。电脑接网线就看“以太网适配器”,连无线就看正在连接的“无线局域网适配器”。

ipconfig

记录该适配器的“IPv4 地址”。例如 IPv4 地址为 192.168.1.50、默认网关为 192.168.1.1,手机的代理服务器就填写前者,不能填写网关。忽略未连接网卡、VPN 虚拟网卡与 TUN 网卡的地址,也不要复制公网 IP 查询页显示的地址。

macOS:查看网络详情

在 macOS 13 及之后的系统中,进入「系统设置」→「网络」→ 当前使用的 Wi-Fi 或以太网 →「详细信息」→「TCP/IP」,记录 IPv4 地址。也可以在「Wi-Fi」页面打开已连接网络的「详细信息」,再查看「TCP/IP」。

路由器通过 DHCP 分配的地址可能在重连后变化。初次连接成功后,可在路由器的 DHCP 地址保留功能中,为电脑保留当前地址。否则电脑从 192.168.1.50 变成另一个地址时,监听配置与手机代理都要一起更新。

第二步:启用局域网共享并检查端口

不同 Clash 图形客户端的菜单名称并不统一。先在「设置」中寻找「允许局域网连接」或「Allow LAN」,开启后查看「端口」或「混合端口」的实际数值。如果客户端允许编辑持久化配置,可将下面三个顶层字段合并到现有配置;不要用这几行替换整个订阅文件。

合并到现有配置的顶层字段
mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.50

字段前不要增加缩进,不要放到 proxies 或 dns 内,也不要重复定义已有同名字段。保存后通过客户端提供的重载或重启内核操作使其生效。如果电脑实际地址不是示例值,必须先修改 bind-address,否则内核可能无法绑定。

订阅更新可能覆盖直接编辑的订阅文件,图形客户端也可能用界面设置覆写端口和允许局域网字段。优先使用客户端的持久化设置或覆写功能,重载后再检查运行结果。只在文件里看见 true,不代表当前内核已经应用。

确认 7890 确实在监听

Windows 可以在命令提示符中执行:

netstat -ano -p tcp | findstr ":7890"

查看本地地址列与状态列。192.168.1.50:7890 且状态为 LISTENING,符合本例;0.0.0.0:7890 表示监听全部 IPv4 接口;只有 127.0.0.1:7890 则仍限本机使用。输出中的远程地址出现 7890 不算本机已经监听。

macOS 可以在终端执行 lsof -nP -iTCP:7890 -sTCP:LISTEN。如果没有监听结果,先检查内核是否启动、端口是否被其他程序占用,以及配置重载是否报错。

允许局域网不等于允许公网访问。不要在路由器上为 7890 设置端口转发,也不要为了共享代理开放外部控制器端口。控制 API 与手机访问用的代理端口是两类入口。

第三步:让防火墙只放行可信来源

监听成功后,系统防火墙仍可能拦截手机的连接。不要直接关闭防火墙。Windows 家庭网络确认可信后,可以在「设置」→「网络和 Internet」→ 当前连接的属性中确认网络配置文件,再为专用网络建立有限范围的入站规则。

下面的 PowerShell 命令需要管理员权限,只允许示例手机 192.168.1.80 访问本机 TCP 7890,且仅在专用网络生效。执行前替换成手机 Wi-Fi 详情里显示的实际地址。

New-NetFirewallRule -DisplayName "Mihomo LAN TCP 7890" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7890 -RemoteAddress 192.168.1.80 -Profile Private

新增窄范围规则不会撤销既有的宽范围放行。到「Windows 安全中心」→「防火墙和网络保护」→「高级设置」→「入站规则」,检查客户端是否已有面向所有来源的允许规则,并按实际需求收紧。手机地址变化后,也需要更新来源范围。

macOS 可在「系统设置」→「网络」→「防火墙」→「选项」检查客户端或实际内核程序是否被阻止。公共 Wi-Fi 不适合开放未认证的代理入口;如果无法控制局域网成员,优先在手机上使用独立客户端,而不是放宽所有入站限制。

第四步:在手机 Wi-Fi 中填写 HTTP 代理

iPhone 与 iPad

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

Android

以原生 Android 常见界面为例,进入「设置」→「网络和互联网」→「互联网」→ 当前 Wi-Fi → 编辑网络 →「高级选项」→「代理」→「手动」。其他厂商可能把入口放在 Wi-Fi 详情内的「修改网络」中。

  • 代理主机名:192.168.1.50,只写地址,不加 http://,也不附带端口。
  • 代理端口:7890,与电脑的混合端口保持一致。
  • 不使用代理的地址:首次排查先保持默认,不要把待测试的网站误填进绕过列表。

保存后重新打开浏览器。这个设置通常跟随当前 Wi-Fi 网络,不会自动变成蜂窝数据代理。部分 Android 应用会忽略系统 HTTP 代理,某些应用还会复用保存前建立的连接;必要时完全退出该应用再打开。

验证路径:先看连接记录,再判断应用范围

在电脑客户端打开「连接」或日志页面,再让手机刷新一个网页。若能看到来自手机地址的新连接,说明手机已经到达电脑代理。接着查看该连接命中的规则与策略组:命中 DIRECT 时走直连,命中代理策略时才会使用对应节点。

因此,手机共用的是电脑当前的分流配置,不是自动让所有网站走同一节点。排查时可以观察单次请求的去向,不要仅凭出口 IP 是否变化判断共享是否成功。也不要把“浏览器可访问”推广成“所有应用与所有协议都已接管”。

现象优先检查下一步
全部网页超时,电脑无手机连接记录IP、端口、监听地址、防火墙、访客隔离按网络入口顺序逐项确认
电脑出现手机连接,但目标访问失败命中规则、策略组、节点状态、内核日志先在电脑测试同一目标
浏览器正常,某个应用仍失败应用是否遵循系统代理,是否使用 UDP改用手机端客户端评估接管
电脑休眠后手机断网代理入口已经停止响应唤醒电脑或关闭手机手动代理
重新连接 Wi-Fi 后失效电脑或手机 DHCP 地址变化更新地址、监听配置与防火墙范围

DNS、UDP 与 TUN 的边界

HTTP 代理请求或 CONNECT 可以携带目标域名,由电脑端按内核配置处理后续解析;但这不保证手机的全部 DNS 请求都经过电脑。应用可能提前解析域名,也可能自行建立其他连接,所以仅设置 Wi-Fi 代理不能视为完整的 DNS 防泄漏方案。

手机 Wi-Fi 的 HTTP 代理也不是通用 UDP 转发入口。游戏、语音与部分基于 QUIC 的访问可能表现不同。即使电脑开启 TUN 模式,也不会凭空捕获没有路由到电脑的手机流量。需要覆盖更多应用时,可在手机安装合适的客户端;需要网关级接管时,则涉及路由与透明代理配置,不能只改这里的三个字段。

结束共享:先恢复手机,再关闭电脑入口

不再共享时,iPhone 回到「配置代理」选择「关闭」;Android 回到当前 Wi-Fi 的代理设置选择「无」。确认网页能按原网络正常访问后,再关闭电脑的允许局域网设置或退出客户端,避免手机继续请求已经停止的代理入口。

如果只为本次测试添加了 Windows 防火墙规则,可在管理员 PowerShell 中删除:

Remove-NetFirewallRule -DisplayName "Mihomo LAN TCP 7890"

最后记住三个对应关系:手机服务器地址对应电脑的局域网 IP,手机端口对应实际监听的混合端口,手机访问范围对应应用对系统 HTTP 代理的支持程度。按“电脑先通、局域网可达、端口监听、手机填写、连接记录验证”的顺序操作,通常能把问题定位到明确的一层。

下载客户端