Clash 混合端口与允许局域网连接:同一网络设备共用代理的设置步骤
说明 mixed-port 与 allow-lan 的作用,手机、平板、电视如何填写电脑局域网地址接入,以及防火墙放行要点。
一、适用场景:让局域网设备连接电脑的代理端口
手机、平板或电视不方便安装代理客户端时,可以让同一局域网内的电脑提供 HTTP 代理入口。电脑运行 Clash 或使用 mihomo 内核的客户端,其他设备在 Wi-Fi 设置中填写电脑地址与混合端口。流量进入电脑后,仍由电脑上正在运行的配置、规则和策略组决定直连还是代理。
这不是把电脑自动变成路由器。开启“允许局域网连接”只会允许其他设备访问代理监听端口,不会修改手机网关,也不会让所有应用自动使用代理。需要整机接管、UDP 转发或不遵循系统代理的应用时,应另行评估设备本地客户端、网关方案或 TUN,而不是反复切换这个开关。
- 适合:家庭网络中的手机浏览器、平板网页访问,以及支持手动 HTTP 代理的电视应用。
- 前提:电脑与目标设备之间能够互访,电脑保持开机,代理内核运行正常。
- 不适合直接照搬:酒店、访客 Wi-Fi、启用终端隔离的公共网络,以及需要所有游戏流量统一转发的场景。
二、参数区别:mixed-port、allow-lan 与 bind-address
| 配置项 | 作用 | 本文示例 |
|---|---|---|
mixed-port | 同一端口接收 HTTP 与 SOCKS 代理请求 | 7890 |
allow-lan | 允许局域网设备连接代理监听入口 | true |
bind-address | 在允许局域网连接时指定监听地址 | 192.168.1.10 |
mode | 决定流量按规则、全局或直连方式处理 | rule |
mixed-port 的“混合”指代理协议入口,不是将几条节点线路叠加。手机 Wi-Fi 中填写 HTTP 代理时,也可以连接这个端口。HTTPS 网站通常通过 HTTP CONNECT 建立隧道,不需要另外填写一个所谓的 HTTPS 端口。
allow-lan: true 与监听地址必须一起检查。只允许本机访问的 127.0.0.1 不能作为手机的连接目标;手机上的 127.0.0.1 指向手机自己。bind-address: "*" 通常用于监听所有接口,但覆盖面更大。只需要家庭网络共享时,可以绑定电脑当前的局域网 IPv4 地址,再配合防火墙限制来源。
管理接口 external-controller 与混合端口是两件事。手机使用代理不需要连接控制器,更不需要把管理端口开放给整个网络。不要把面板地址或常见的 9090 管理端口填进 Wi-Fi 的代理端口栏。
三、电脑端设置:先确认地址,再开放监听
1. 找到当前使用的局域网 IPv4 地址
Windows 打开终端执行 ipconfig,查看当前联网的“无线局域网适配器 WLAN”或以太网适配器。记录 IPv4 地址、子网掩码和默认网关,跳过未连接的网卡、虚拟机网卡及 TUN 虚拟网卡。macOS 可在「系统设置」→「网络」→ 当前连接 →「详细信息」→「TCP/IP」查看。
例如,电脑为 192.168.1.10,手机为 192.168.1.25,双方掩码均为 255.255.255.0,通常属于同一子网,但路由器的访客隔离仍可能阻断连接。电脑走有线、手机走 Wi-Fi 也可以共享,关键是路由器允许两者互访,而不是必须使用相同的无线频段。
2. 设置混合端口和允许局域网连接
在客户端设置中查找“混合端口”或“Mixed Port”,记录当前数值,再开启“允许局域网连接”或“Allow LAN”。不同客户端菜单名称不完全一致;有些客户端将这些选项放在内核设置或覆写设置中。以最终运行配置和实际监听结果为准,不要只看订阅文件里的字段。
下面是可合并到现有配置顶层的网络参数片段,不是完整订阅。保留原有的 proxies、proxy-groups 与 rules,不要用这个片段覆盖整个文件,也不要重复声明同名顶层字段。
mixed-port: 7890
allow-lan: true
bind-address: "192.168.1.10"
mode: rule
保存并应用配置;客户端提示需要重启内核时,完成重启。若由图形客户端生成运行配置,应使用其持久化覆写机制,避免下次更新订阅时丢失修改。绑定具体地址后,如果电脑换了网络或 DHCP 地址发生变化,监听可能失败,需要同步调整。
3. 确认端口确实在监听
Windows PowerShell 可执行以下命令。应看到 LocalPort 为 7890,LocalAddress 为指定局域网地址或覆盖该地址的监听地址。如果只显示 127.0.0.1,局域网设备仍无法连接。
Get-NetTCPConnection -State Listen -LocalPort 7890 |
Select-Object LocalAddress, LocalPort, OwningProcess
没有结果时,先检查配置应用失败、端口冲突或内核未运行。若端口属于其他程序,不能仅凭端口号判断 Clash 已启动。绑定局域网地址后,本机系统代理如果仍指向 127.0.0.1:7890,也需要核对兼容性;确需同时服务回环与局域网时,可使用全接口监听,并严格限制防火墙来源。
四、防火墙放行:限定端口、地址与可信网络
监听成功不等于其他设备能连入。电脑防火墙可能仍阻止入站连接。家庭网络可以设置为可信的专用网络,但不要为了共享代理,将公共 Wi-Fi 随意改成专用,也不要关闭整机防火墙。
Windows:添加仅限本地子网的 TCP 入站规则
确认当前网络为专用网络后,以管理员身份打开 PowerShell。以下规则只允许 192.168.1.0/24 访问本机 192.168.1.10 的 TCP 7890 端口,适用于本文的 HTTP 代理测试。
New-NetFirewallRule `
-DisplayName "Clash LAN TCP 7890" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 7890 `
-LocalAddress 192.168.1.10 `
-RemoteAddress 192.168.1.0/24 `
-Profile Private
停用共享时,可删除这条规则:
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"
如果电脑已存在范围很大的程序放行规则,还应检查旧规则是否扩大了访问面。上述窄范围规则不会自动撤销其他宽范围许可。TCP 放行也不意味着已经支持手机游戏或其他应用的 UDP 流量。
macOS 与 Linux:检查实际提供代理的进程
- macOS:在「系统设置」→「网络」→「防火墙」→「选项」中检查客户端或内核进程的入站许可。若启用了“阻止所有传入连接”,先确认其影响,不要只反复切换客户端开关。
- Linux:若使用 UFW 且已启用,可按实际子网添加限定规则。其他防火墙工具应采用相同的最小范围原则,不要同时叠加多套不清楚的规则。
sudo ufw allow proto tcp from 192.168.1.0/24 to 192.168.1.10 port 7890
五、手机、平板与电视填写方法
iPhone 与 iPad:配置当前 Wi-Fi 的 HTTP 代理
- 进入「设置」→「无线局域网」,点击当前网络右侧的信息按钮。
- 找到「配置代理」,选择「手动」。
- “服务器”填写
192.168.1.10,“端口”填写7890。服务器栏不加http://,也不附加端口。 - 本文基础配置没有启用代理认证,因此关闭“鉴定”;保存后重新打开浏览器测试。
该设置绑定当前 Wi-Fi,不会自动应用到蜂窝网络或另一处无线网络。若电脑关机,仍遵循这个代理设置的应用可能无法联网。离开共享场景后,将“配置代理”改回“关闭”。
Android:编辑已连接网络的代理选项
常见路径为「设置」→「网络和互联网」→「互联网」→ 当前 Wi-Fi → 编辑 →「高级选项」→「代理」→「手动」。厂商系统可能将入口放在「WLAN」→ 当前网络详情中。主机名填写 192.168.1.10,端口填写 7890;没有明确需求时,绕过列表保持默认。
不要为配置代理顺手切换成静态 IP。IP 获取方式与代理设置是不同项目;随意更改网关或 DNS 容易引入第二个故障。Android 应用是否遵循 Wi-Fi 代理由其网络实现决定,浏览器能访问不代表所有应用都会走相同路径。
电视:先确认系统是否提供手动 HTTP 代理
部分 Android TV 或 Google TV 设备可在「设置」→「网络和互联网」→ 当前网络 →「代理设置」中选择“手动”,填写相同的地址和端口。若设备没有这个入口,或目标应用忽略系统代理,这套方法便不能直接覆盖该应用。不要将电脑地址填到电视的 DNS 栏,两者作用不同。
六、连接验证:按端口、请求、规则逐层检查
先用另一台电脑测试,可以更清楚地区分网络连通性与手机应用兼容性。Windows PowerShell 的端口测试只验证 TCP 能否建立连接,不代表节点可用:
Test-NetConnection 192.168.1.10 -Port 7890
TcpTestSucceeded: True 表示 TCP 连接成功。接着发送明确指定代理的请求;在 Windows 中使用 curl.exe,避免旧版 PowerShell 的同名别名影响参数解析:
curl.exe --proxy http://192.168.1.10:7890 --connect-timeout 5 --max-time 15 -I https://example.com/
macOS 或 Linux 可将 curl.exe 改为 curl。返回目标站响应头后,再查看电脑客户端的连接记录,确认目标域名、匹配规则与实际出口。HTTP CONNECT 的成功提示只说明隧道建立,不能代替对后续 TLS 和目标站响应的检查。
| 现象 | 优先检查 | 判断依据 |
|---|---|---|
| 连接立即被拒绝 | 内核、监听地址、端口号 | 通常没有对应监听,或设备主动拒绝连接 |
| 等待后超时 | 防火墙、访客隔离、电脑休眠 | 请求可能被丢弃,或目标设备不可达 |
| 返回 HTTP 407 | 代理认证设置 | 端口已可达,但请求未通过代理认证 |
| 能连接但目标站失败 | 节点状态、DNS、规则与日志 | 局域网入口已通,应继续检查代理后半程 |
| 浏览器正常,其他应用失败 | 应用是否遵循 HTTP 代理 | 不能据此判断需要继续开放更多端口 |
如果所有请求都走直连,先检查是否处于直连模式,再检查规则顺序和策略组选择。允许局域网连接不会把规则模式自动改成全局代理。对于域名解析,也应结合具体请求路径判断:HTTP CONNECT 可以将目标域名交给代理端处理,但应用可能另外发起本地 DNS 查询,不能把手动代理等同于所有 DNS 都由电脑接管。
七、安全边界与长期使用检查
家庭内网也需要限制访问范围。监听所有接口时,电脑上的其他网卡也可能暴露相同端口;连接 VPN 或虚拟网络后,应重新检查来源限制。路由器不需要为这个方案配置公网端口转发,也不应把 7890 或管理接口映射到互联网。
- 固定电脑地址:优先在路由器中设置 DHCP 地址保留,避免电脑重连后地址变化,导致手机仍指向旧地址。
- 按需使用认证:Clash 系列内核可通过
authentication配置 HTTP/SOCKS 认证,但各设备的代理认证支持不同。启用后必须同步填写凭据,并用 HTTP 407 等响应验证,不要把认证当成防火墙的替代品。 - 保留控制器边界:代理共享不要求远程管理。保持管理接口仅供必要设备访问,单独管理其认证与防火墙规则。
- 更新后复查:订阅更新、客户端升级或网络切换后,检查混合端口、允许局域网连接、绑定地址和实际运行配置是否仍一致。
- 停用时恢复:先关闭手机或电视的手动代理,再关闭电脑的局域网共享及对应防火墙许可,避免设备继续连接已经不存在的入口。