一、先确定共享方式:设备主动连接电脑代理
最直接的做法是:电脑运行 Clash 或基于 Clash Meta(mihomo)的客户端,开启局域网访问;手机与电脑连接同一家庭网络,在手机的 Wi-Fi 代理设置中填写电脑的局域网 IPv4 地址和混合端口。电脑保持开机、客户端保持运行,手机支持代理的请求就能进入电脑内核,再按电脑当前的规则和策略组转发。
本文统一使用电脑地址 192.168.50.10、家庭子网 192.168.50.0/24、混合端口 7890。这些是示例值,操作时要替换成实际网络信息。手机端不要填写 127.0.0.1:这个地址始终指向手机自己,并不指向电脑。
- 先在电脑上确认订阅已启用,策略组已选好可用节点,电脑浏览器能够正常访问目标站点。
- 确认手机和电脑不在访客网络,也没有开启无线客户端隔离。相同 Wi-Fi 名称不一定意味着设备之间允许互访。
- 记录电脑正在使用的网卡地址;有线电脑与无线手机也可以共享,只要路由器允许两者互通。
二、mixed-port、allow-lan 与绑定地址分别控制什么
混合端口把 HTTP 代理与 SOCKS5 代理的入口合在同一个端口上,内核根据连接握手识别协议。它并不是把所有网络协议都转换成 HTTP,也不是路由器端口映射。手机选择 HTTP 代理时可以填 7890,支持 SOCKS5 的应用也可以连接同一个端口,但必须在应用里选择正确的代理类型。
| 配置项 | 作用 | 本文示例 |
|---|---|---|
mixed-port | HTTP 与 SOCKS5 共用的入站端口 | 7890 |
allow-lan | 允许其他设备连接代理监听入口 | true |
bind-address | 指定接受连接的本机地址 | 192.168.50.10 |
mode | 决定进入内核后的流量分流方式 | rule |
authentication | 为 HTTP 与 SOCKS 入站设置账户密码 | 支持认证的设备建议配置 |
allow-lan: true 只是允许局域网访问的必要设置之一。若实际监听地址仍然只有 127.0.0.1,或者系统防火墙拒绝入站,手机仍然连不上。反过来,绑定所有接口也不代表可以放心暴露端口,必须同时限制网络边界。
传统的 port 通常是 HTTP 代理端口,socks-port 是单独的 SOCKS 端口。已经使用混合端口时,无须为了共享而再开两套入口。若多个配置项使用同一个端口,出现地址占用报错,应删去重复监听或给不同入口分配不同端口。
三、修改有效配置,并确认端口真正生效
先保存配置,再修改顶层字段
先备份现有配置。图形客户端若提供「设置」中的「允许局域网连接」或「Allow LAN」开关,可优先使用;不同客户端的菜单层级和中文名称并不统一。关键是核对最终运行配置,而不是只看开关。订阅由客户端管理时,优先使用它提供的覆写、合并或持久化设置入口,避免订阅更新覆盖手动修改。
下面是应合并到现有配置的顶层字段,不是完整订阅。原有的节点、策略组、规则与 DNS 配置需要保留。YAML 使用空格缩进,不要使用制表符,也不要在同一层重复写两次 mixed-port。
mixed-port: 7890
allow-lan: true
bind-address: '192.168.50.10'
mode: rule
绑定具体局域网地址可以缩小监听范围,但这个地址必须真实属于电脑。建议在路由器 DHCP 设置里为电脑保留固定租约,否则地址变化后可能启动失败。需要同时保留电脑原有的本地回环代理入口时,可考虑使用 bind-address: '*',并依靠防火墙精确限制来源;修改后仍要测试本机代理是否正常。
重新加载后检查监听状态
保存后按客户端提供的方式重新加载配置;若监听参数没有更新,再重启内核。Windows 可在 PowerShell 检查 TCP 监听,macOS 和 Linux 可以使用各自的系统工具:
# Windows PowerShell
Get-NetTCPConnection -LocalPort 7890 -State Listen
# macOS
lsof -nP -iTCP:7890 -sTCP:LISTEN
# Linux
ss -lntp 'sport = :7890'
预期看到的是电脑的局域网地址,或通配监听地址,而不应只有 127.0.0.1:7890。如果完全没有结果,先看内核日志是否出现端口占用、地址不存在或配置解析错误。某些系统只向管理员显示进程信息,必要时以管理员权限查看,不要直接关闭防火墙来试错。
四、只向可信局域网放行防火墙
HTTP 代理与 HTTPS 的 CONNECT 隧道首先需要 TCP 连接。仅用于手机网页浏览时,先放行 TCP 7890 即可,不必一开始就开放 UDP。SOCKS5 的 UDP 转发还依赖客户端支持 UDP ASSOCIATE、内核能力和实际节点链路,不能仅凭混合端口已开启就判定游戏 UDP 可用。
Windows:限制网络配置文件和来源网段
先在「设置」→「网络和 Internet」中进入当前连接的属性,只在可信家庭网络上将网络配置文件设为「专用」。然后使用管理员 PowerShell 添加以下规则。示例中的本机地址、远端子网都必须按实际情况修改:
New-NetFirewallRule `
-DisplayName "Clash LAN TCP 7890" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 7890 `
-LocalAddress 192.168.50.10 `
-RemoteAddress 192.168.50.0/24 `
-Profile Private
已有安全软件还可能维护独立规则。若系统防火墙已经放行却仍然超时,应检查其网络防护日志。不要用“所有端口、所有来源、所有网络”这样的宽泛规则替代定位。停止共享后,可删除本文创建的规则:
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"
macOS 与 Linux:确认真正监听的进程
macOS 可在「系统设置」→「网络」→「防火墙」→「选项」中检查应用的传入连接权限;较旧系统的入口可能位于「安全性与隐私」。代理监听有时属于独立内核进程,应结合监听结果和系统提示核对,而不是仅允许客户端外壳。
Linux 若使用 UFW,可以按来源网段添加规则。未使用 UFW 的系统应采用当前实际管理防火墙的工具,不要为了照抄命令同时启动另一套防火墙管理器。
sudo ufw allow from 192.168.50.0/24 to 192.168.50.10 port 7890 proto tcp
五、手机、电视和游戏机分别怎么设置
iPhone 与 iPad:配置当前 Wi-Fi 的 HTTP 代理
- 打开「设置」→「无线局域网」,点当前网络右侧的信息按钮。
- 找到「配置代理」,选择「手动」。服务器填写
192.168.50.10,端口填写7890。 - 如果内核配置了账户密码,开启「鉴定」并填写对应信息,保存后重新打开浏览器测试。
服务器一栏只填 IP 地址,不要写成 http://192.168.50.10:7890。这项设置属于当前 Wi-Fi,不会自动覆盖蜂窝网络,也不是系统级 VPN。访问 HTTPS 网站时,常规 HTTP 代理通过 CONNECT 建立隧道,不需要为此安装根证书;遇到证书告警应先检查系统时间、站点证书及网络环境。
Android:修改已连接网络的代理选项
常见入口是「设置」→「网络和互联网」→「互联网」→ 当前 Wi-Fi →「修改」→「高级选项」→「代理」→「手动」。厂商系统也可能把入口放在网络详情页。代理主机名填 192.168.50.10,代理端口填 7890。仅测试共享时先不要添加绕过列表,以免目标域名被排除。
部分 Android 系统的 Wi-Fi 手动代理界面没有用户名和密码字段,这种情况下不能直接照搬带认证的配置。应改用支持认证的应用级代理入口,或在可信、隔离的家庭网络里结合严格防火墙规则评估共享方式。应用不遵循系统 HTTP 代理时,修改这个页面也不会强制接管它。
电视与游戏机:先看设备是否提供代理入口
电视浏览器或网络设置若提供 HTTP 代理,可以填写同一组地址和端口。支持 SOCKS5 的播放器则应在应用内选择 SOCKS5。游戏机的 HTTP 代理设置通常只影响部分系统服务或下载流程,不应据此推断联机对战、语音和 NAT 类型也会改变。
若目标是整台设备的 TCP、UDP 都经代理,通常需要路由器侧的透明代理或明确设计的网关方案,涉及转发、路由、DNS 与回程路径。仅把游戏机网关改成电脑 IP,或者只在电脑打开 TUN,都不构成完整方案。没有对应网络经验时,先停留在应用显式代理范围内。
六、用连接记录区分端口、认证和规则问题
验证时只改变一个变量:先保持电脑规则模式与节点不变,从另一台设备测试端口,再测试代理请求,最后核对内核连接记录。下列命令中的域名仅作连通性示例;站点能打开不代表一定走了代理节点,还需要看它实际命中的规则。
# 在另一台 Windows 设备上检查 TCP 可达性
Test-NetConnection 192.168.50.10 -Port 7890
# HTTP 代理测试;Windows PowerShell 可明确调用 curl.exe
curl --proxy http://192.168.50.10:7890 --connect-timeout 5 -I https://example.com/
# SOCKS5 测试,目标域名交由代理侧解析
curl --proxy socks5h://192.168.50.10:7890 --connect-timeout 5 -I https://example.com/
| 表现 | 优先检查 | 下一步 |
|---|---|---|
| TCP 连接超时 | 地址错误、网段隔离、防火墙拦截 | 核对网卡地址与来源网段规则 |
| 连接被拒绝 | 没有监听、端口写错或进程退出 | 检查监听表与内核日志 |
| HTTP 返回 407 | 代理要求认证 | 检查设备是否支持并填写账户密码 |
| 有连接记录但目标打不开 | 节点、规则、DNS 或目标服务 | 查看命中的规则、策略组及错误详情 |
| 浏览器可用但游戏不可用 | 应用绕过代理或依赖 UDP | 核对应用代理能力,不反复切换端口 |
HTTP 测试中看到 200 Connection established 只说明代理接受了 CONNECT 请求,还要看后续 TLS 和目标响应是否成功。在连接面板按手机的源地址筛选,确认目标域名、匹配规则和最终出站链路。共享请求依旧受电脑的规则模式控制,命中 DIRECT 时直连是预期行为,不代表局域网共享失效。
DNS 也要按应用路径判断:HTTP 代理通常会收到目标主机名;socks5h 明确让代理侧处理目标域名解析,而 socks5 的常见用法可能先在请求端解析。Wi-Fi 手动代理不会把手机所有 DNS 查询都改交给电脑。不要为了这个示例直接把手机 DNS 指向电脑,除非已经另外配置并验证 DNS 监听和相应防火墙规则。
七、认证、休眠与停止共享的收尾清单
可信网络内仍建议为支持认证的设备配置独立账户。HTTP 与 SOCKS 的认证并不等于加密局域网这一跳,账户也不应复用重要服务的密码。下列值仅为语法演示,部署前应改成独立的随机凭据,并确认设备确实支持认证:
authentication:
- "lan-device:ChangeThisLocalPass7890"
- 检查旁路认证设置:若配置里存在
skip-auth-prefixes,核对是否把整个共享网段都排除了,否则不能仅凭写了账户就认为认证已生效。 - 保持地址稳定:为电脑保留 DHCP 租约。更换路由器、切换网络或重新拨号后,重新核对地址和防火墙范围。
- 注意睡眠:电脑睡眠、合盖或内核退出后,仍指向该代理的手机可能无法上网。先检查电脑状态,不要急着重置手机网络。
- 退出共享:先将手机「配置代理」改回「关闭」,Android 改回「无」,再关闭客户端的局域网访问并移除专用放行规则。
完成配置后,应能清楚回答三个问题:哪台设备在监听、哪些来源可以连接、请求进入内核后走哪条规则。只要把这三层分开排查,混合端口共享就不需要依赖反复切全局、重装客户端或关闭整套防火墙来碰运气。更多内核与分流设置可查看配置进阶,首次导入订阅则从使用指南开始。