手机要连电脑的局域网地址
127.0.0.1 是设备自己的回环地址。电脑上的 127.0.0.1 指电脑,手机上的 127.0.0.1 指手机;把电脑本机入口原样填到手机上,通常连不到电脑。
先在电脑当前网络的信息中查看局域网 IPv4 地址,例如 192.168.1.20;再记下客户端实际的 HTTP 或混合端口。这个示例地址不代表你的电脑一定使用它,换网络或重新分配地址后也可能变化。
手机与电脑还需互相可达。连接同一个 Wi-Fi 名称并不保证设备可互访:访客网络、不同 VLAN 或无线客户端隔离,都可能阻止这条连接。
允许局域网连接,还要核对绑定和认证
只有监听 127.0.0.1 的入口不会接收来自手机的连接。在客户端启用局域网访问后,继续检查绑定地址、允许的来源地址和端口认证。不同客户端界面的名称可能不一样。
mihomo 的 allow-lan 控制是否接受其他设备连接,bind-address 决定监听地址,lan-allowed-ips 限定来源;authentication 可用于 HTTP、SOCKS 和混合入口认证。它们不是同一个开关。
优先只绑定需要的局域网接口,允许需要的来源,并在手机支持时启用入口认证。电脑连接公共网络前关闭共享;不需要把本地端口映射到路由器公网,也不需要关闭整台电脑的防火墙。
按手机实际支持的代理协议填写
| 设置项 | 填写内容 | 容易混淆的地方 |
|---|---|---|
| 服务器 / 主机 | 电脑实际的局域网地址 | 不是手机的 127.0.0.1,也不是远端节点地址 |
| 端口 | 电脑 HTTP 或混合入口的端口 | Wi-Fi 手动代理通常填写 HTTP 入口 |
| 账号与密码 | 入口要求的认证信息 | 不是订阅链接或服务账号密码 |
手机的 Wi-Fi 手动代理通常提供 HTTP 代理设置,不等于可以在同一字段随意填 SOCKS。应用若提供独立 SOCKS 设置,应按它支持的协议填写对应入口。
系统 Wi-Fi 代理也不是所有应用都必然使用。先用支持该设置的浏览器做验证,再测试实际需要的应用;个别应用不走代理,需要检查它自己的入口设置或接管方式。
先验证到电脑的入口,再看远端
如果另一台设备上有 curl,可以用下面命令验证 HTTP 入口。使用前把地址与 2080 换成电脑的实际设置;Windows 中用 curl.exe。
curl --noproxy example.invalid --proxy http://192.168.1.20:2080 --verbose --head --connect-timeout 5 --max-time 20 https://example.com入口要求认证时,还需使用程序支持的代理认证方式。未配置认证而返回 407,与网络不可达是两类问题,排查方向不同。
- 连接电脑入口被拒绝:检查端口、监听地址及客户端是否启动。
- 连接电脑入口超时:检查设备互通、防火墙对该接口和端口的规则,以及 Wi-Fi 隔离。
- 已经到入口但目标失败:在电脑客户端查看命中规则、策略组和最终出站。
- 浏览器可用,某应用不行:先确认该应用确实读取 Wi-Fi 代理或独立代理设置。
共享的是电脑入口,后面仍由电脑分流
手机把请求交给电脑后,通常由电脑上的客户端执行 DNS、分流规则和出站选择。电脑自己的节点测试成功,并不保证手机这条请求命中了同一个策略组。
用同一个域名复测,在电脑连接记录中找到手机来源地址及目标,再沿命中规则追到最终出站。需要 UDP、游戏流量或更多应用接管时,先核对协议和客户端能力;普通 Wi-Fi HTTP 代理不能代表全部流量。
使用后恢复手机与电脑的设置
电脑休眠、客户端退出或局域网地址变化后,手机还会按旧代理地址发请求。出现突然断网时,先检查电脑是否在线,再决定恢复共享或关闭手机的手动代理。
不再使用时,关闭手机对应网络的代理设置、关闭电脑局域网入口,并移除本次单独增加的防火墙放行规则。原有规则和其他服务的设置应保留。
常见问题
同一个 Wi-Fi 下为什么仍然连不到电脑?
可能存在无线客户端隔离、访客网络、不同子网或防火墙限制,也可能入口只监听回环地址。先定位手机到电脑入口这一段,再排查节点。
能把电脑共享端口直接开放到公网吗?
这篇教程只用于可控的局域网共享,不需要公网端口映射。避免把无认证的本机代理入口暴露给外部网络。
参考资料
原理和协议定义可查以下标准与官方文档。文中的流程图由 AFQKit 绘制。