Clash Verge 如何设置允许局域网连接?

先厘清:这个开关到底改了什么
在 Clash Verge 里设置允许局域网连接,本质上只做了一件事:把内核的监听地址从回环接口扩展到所有网卡。先把这个前提立住,后面所有操作都会变得顺理成章;反过来,排查问题时也更容易定位到真正的卡点。
Clash 内核默认只监听 127.0.0.1。这是回环地址,只有本机进程能访问,局域网里的其他设备即便知道你的 IP 和端口号,连接请求也会被直接拒绝。打开 allow-lan(界面上通常显示为 Allow LAN 或「允许局域网」)之后,内核改为监听 0.0.0.0,或按 bind-address 指定的网卡地址,同一网段的设备才有机会把流量转发到你这台机器上。
界面上的开关名称在不同版本、不同分支之间可能略有差别,中文措辞也有「允许局域网」「局域网连接」等等,请以你实际安装的界面为准。名称再怎么变,指向的字段没变:它对应的就是内核配置里的 allow-lan,属于内核级设置,不是 Verge 外壳自己发明的功能。
关键区分:开关只决定「监听不监听」,不决定「能不能连上」。防火墙规则、网段隔离、路由器的 AP 隔离、设备 IP 变化,都会在实际使用中拦下你。很多人打开开关后发现手机还是连不上,绝大多数时候就卡在这一步。
你真正要解决的是哪一类问题
在动手之前,先把需求拆开,往往能省掉一半的排查时间,也能帮你判断值不值得开这个开关。下面按风险从低到高,列出三类常见诉求。
场景一:手机、平板借用电脑上的代理
这类需求的特点是设备数量少、流量以网页与视频为主、使用时间零散。例如晚上在家用平板看视频,希望走电脑上已经调好的分流规则,而不是在平板上再装一套客户端、再导入一次订阅。设备和网络都在自己手里,风险可控。
场景二:虚拟机或容器需要走宿主机代理
开发环境里,虚拟机通过 NAT 或桥接网络访问宿主机的代理端口是常见做法。这类场景对稳定性要求更高,因为构建流水线、包管理器往往在后台连续跑很久,中途断流会导致依赖下载失败,排查起来还很费时间。因此建议这类用户优先把代理地址写成宿主机的固定局域网 IP,而不是 host.docker.internal 这类随环境变化的别名。
场景三:临时给同事或家人共享网络
三类需求里,这一类的风险最高。你不确定对方设备上运行着什么程序,也不确定对方会跑什么流量。更现实的问题是:一旦对方把这台机器当成默认出口,你的上行带宽、CPU 占用、甚至账号体系下的行为归属都会被牵连。如果确实需要共享,请先读完本文的安全边界一节再决定。
三种机制的分工:系统代理、TUN 模式与 allow-lan
Clash Verge 里能改变流量走向的开关不止一个,很容易混淆。下面这张表把三者的作用范围摆在一起看,边界会清楚很多。
| 机制 | 作用范围 | 解决什么 | 不解决什么 |
|---|---|---|---|
| 系统代理 | 仅本机 | 让遵守系统代理设置的应用走代理 | 不影响局域网内其他设备 |
| TUN 模式 | 仅本机 | 接管本机全部流量,包括不遵守系统代理的程序 | 不扩大监听范围,其他设备依然连不上 |
| allow-lan | 局域网内可达的设备 | 让别的设备把代理指向你的机器 | 不改变本机流量本身的走向 |
三者可以同时开启,互不替代。一个常见的误解是「我开了 TUN,手机应该也能用了吧」——不会。TUN 改变的是本机数据包如何被接管,它属于入口侧的事情;allow-lan 改变的是内核愿不愿意接受来自外部的连接,它属于监听侧的事情。两件事发生在不同的层面上。
反过来的误解同样存在:只开 allow-lan 而不开系统代理,本机的浏览器依然可能不走代理,但局域网设备照样能用。这不是故障,而是设计如此。
决策树:什么时候该开,什么时候不该开
与其记住一个开关的位置,不如记住一组判断条件。下面这棵树按从宽到严的顺序排列,只要有一条命中「不该开」,就建议先停手。
- 局域网内是否有你信任、且确实需要借道的设备?没有,就别开。
- 这台机器所在的网络是否为你自己控制的家庭或实验室网络?如果是公司网络、酒店 Wi-Fi 或咖啡馆热点,默认不开。
- 这台机器是否直接挂在公网 IP 上,或者路由器上做过端口映射?如果是,默认不开,并且需要额外加固。
- 你是否愿意在不确定对方设备是否干净的前提下,把自己的出口共享出去?如果犹豫,就先只开放给自己名下的设备,用完即关。
把这四条串起来,判断标准其实很朴素:开启范围等于你的信任边界。信任边界是「我家里的这几台设备」,那就开;边界是「任何能连上这个网段的人」,那就需要额外的访问控制手段,而不能只靠一个开关。
桌面端最短操作路径(Windows / macOS / Linux)
Clash Verge 本身是桌面端应用,截至目前的最新版本主要覆盖 Windows、macOS 与 Linux。移动端没有同名客户端,手机上通常使用其他支持同一套订阅格式的应用;它们各自有自己的允许局域网开关,位置和命名都与桌面端不同,不要照搬本文路径。
图形界面路径
三个桌面平台的路径结构基本一致:打开 Clash Verge,进入左侧导航的设置页,在其中查找名为「Clash 设置」或「Clash 字段」的分组,分组里通常能找到 Allow LAN 或「允许局域网」的开关,把它切到开启状态即可。由于不同分支和版本的界面分组名称可能调整过,如果一时找不到,可以先用页面内的搜索功能,或直接翻到字段列表,以实际界面为准。
macOS 上有一个容易忽略的点:系统在应用首次尝试监听非回环地址时,可能弹出「是否允许应用接受传入的网络连接」的提示。如果当时点了拒绝,之后即使开关是开的,外部依然连不上。此时需要到系统设置的网络或防火墙相关面板里,把这个应用重新设为允许。
Linux 上则要注意发行版自带的防火墙。部分发行版默认拒绝所有入站连接,开关打开了、防火墙没放行,现象和没开一样。放行方法见后文。
配置文件路径与合并字段
如果你习惯直接改配置,思路也很直接:在生效的配置里写入 allow-lan 字段。麻烦的地方在于,订阅配置文件由服务端下发,一旦订阅更新,你手写的字段可能被覆盖回去,表现为「开关打开后,过一阵又失效了」。
Clash Verge 提供了一个更稳的做法:把需要覆盖的字段写进全局扩展配置(有的版本叫全局 Merge 或全局扩展脚本),让它在每次生成最终配置时叠加进去。具体做法是在订阅页或设置页找到全局扩展配置入口,按 YAML 语法追加字段。下面是一段最小示例,端口与绑定地址请按你的实际环境替换:
allow-lan: true bind-address: '*' mixed-port: 7890
三个字段的含义分别是:allow-lan 控制是否监听非回环地址;bind-address 指定监听哪张网卡的地址,写成星号表示全部网卡,也可以写成某一个具体的局域网 IP;mixed-port 是 HTTP 与 SOCKS 共用的混合端口号。端口值因配置而异,请以你界面上显示的端口为准,不要照抄示例数字。
写合并字段时要留意覆盖顺序。如果订阅配置里写死了 allow-lan: false,而合并字段没有被正确应用,你会看到开关状态与实际监听行为不一致。判断方法很简单:看监听地址是 127.0.0.1 还是 0.0.0.0,具体命令见验证章节。
让别的设备真的能连上:端口与防火墙
开关打开之后,剩下的工作几乎都在防火墙这一侧。放行原则只有一条:只放行到具体端口,只放行来源为你的内网网段。
Windows Defender 防火墙
通过控制面板进入防火墙的高级设置,新建一条入站规则,类型选端口,协议选 TCP,填入你在界面上看到的混合端口号,动作选允许连接。到了配置文件适用的步骤,只勾选「专用网络」,不要勾选「公用网络」——后者意味着在咖啡馆、机场这类网络上也会放行,这显然不是你想要的结果。
macOS 防火墙
在系统设置的网络防火墙选项里,找到 Clash Verge 这一项,把它设为允许传入连接。如果列表里没有它,通常是之前弹窗时选择了拒绝,重新触发一次监听动作即可让系统再次询问。
Linux 防火墙
使用 ufw 的发行版,可以参考下面的写法,把网段替换成你自己局域网的实际网段:
sudo ufw allow from 192.168.0.0/16 to any port 7890 proto tcp
使用 firewalld 的发行版,思路相同,通过富规则或区域划分限定来源。无论哪种方式,都不要写成「允许任何来源访问该端口」,那等于把你的代理挂在了公网上。
三步验证:确认监听、确认可达、确认可上网
排查网络问题时,最忌讳一步到位地测最终结果。把它拆成三步,任何一步失败都能立刻缩小范围。
第一步,确认监听地址。在运行 Clash Verge 的机器上执行:
# Windows netstat -ano | findstr 7890 # macOS / Linux lsof -nP -iTCP:7890 -sTCP:LISTEN ss -lntp | grep 7890
预期结果是看到 0.0.0.0:7890 或 *:7890。如果显示 127.0.0.1:7890,说明开关没有真正生效,问题出在配置层,先回到上一节检查合并字段与订阅覆盖。
第二步,确认端口可达。换一台同一局域网内的设备,测试目标端口能否建立连接:
# Windows Test-NetConnection 192.168.1.10 -Port 7890 # macOS / Linux nc -vz 192.168.1.10 7890
如果这一步失败,而第一步是成功的,那么卡点几乎一定在防火墙或网络隔离上。注意把示例中的 IP 换成宿主机实际的局域网地址。
第三步,确认能上网。在第二台设备上把代理设置为 http://宿主机IP:端口,然后访问一个你日常能打开的站点。能打开,整条链路就通了;打不开,就回到第一台机器的连接列表里看有没有对应的连接记录——有记录说明流量到达了内核,问题在出口或规则;没有记录说明流量根本没进来。
这三步的价值在于把「连不上」这个模糊感受,拆成了三个各自可观测的指标。养成习惯之后,同类问题的排查时间通常会明显缩短。
安全边界:开启之后,谁能用你的代理
这是全文最需要认真对待的一段。allow-lan 打开后,同一网段内任何知道你的 IP 和端口的人,都可以把你的机器当作代理出口。它跟账号密码无关,跟你在客户端里登录了什么无关。内核层面不认识「你是谁」,只认识「这个连接来自哪个地址」。
部分内核版本提供了访问控制的字段,用来限定允许的客户端 IP 范围,或者为代理端口启用认证。这些字段是否可用、字段名如何拼写,取决于你实际使用的内核及其版本,建议直接查阅对应内核的官方文档后再启用,不要凭记忆填写。下面这段只是字段形态的示例,请务必先核对文档:
# 以下字段是否支持,请以你所使用内核的官方文档为准 lan-allowed-ips: - 192.168.1.0/24
如果内核不支持访问控制,那么你的缓解手段只剩行为层面的几条:只在信任网络开启;用完及时关闭开关;不要把代理端口通过路由器映射到公网;不要把宿主机放到访客网络里共享。这些做法的共同点是缩短暴露窗口,而不是提高门槛,所以更依赖使用习惯。
还有一个容易被忽略的合规侧面:当别人的流量从你的出口出去时,在远端看来这些请求来自同一个地址。如果共享对象的行为产生了后果,你需要准备好解释这条链路。这也是不建议在办公网络长期开启的原因之一。
性能与成本:把一台机器变成网关意味着什么
从性能与成本的角度看,开启这个开关等于把你这台机器变成一个小型出口网关。带宽、CPU、电量都从独占变成共享,取舍判断也就围绕这三项展开。
带宽。所有借用设备的流量都要经过你的网络连接转发一次,实际可用的吞吐受限于你这台机器的上网链路,而不是借用设备自己的链路。经验性观察:一两台设备浏览网页、看在线视频这类中等强度使用,通常感知不到明显差异;当同时有设备做大文件下载或长时间高清串流时,瓶颈更容易出现在宿主机一侧。
CPU 与延迟。每一条经过的连接都需要内核处理与转发,连接数越多、加密负载越重,占用越明显。具体数值因硬件、协议和内核实现而异,不建议直接套用他人给出的参考值。想得到自己环境下的真实结论,可以用同一任务做对照测试:先在借用设备上直连完成一次下载或测速,再把它切到你的代理上重复一次,比较两次的耗时与客户端「连接」页面显示的活跃连接数变化。这个对比是可复现的,比任何估算都有意义。
可用性与电费。最容易被低估的一项成本是「机器必须开着」。笔记本合盖休眠、系统进入睡眠、Windows 的现代待机,都会让代理随之中断。如果借用方是长期运行的虚拟机或服务器流水线,一次中断可能意味着几十分钟的构建重来。需要长期提供服务的话,比起把笔记本一直亮着屏幕,用一台常开的低功耗设备更划算,也更省心。
判断是否值得的标准可以归纳成一句话:借用频次高、借用方固定、宿主机本来就常开,那么开启很划算;三者缺一,就要掂量一下维护成本。
故障排查:按现象定位
下面这张表把常见现象、可能原因、验证方式与处置动作放在一起,便于对照排查。请注意「可能原因」的排序按出现频率从高到低,不代表必然如此。
| 现象 | 可能原因 | 验证方式 | 处置 |
|---|---|---|---|
| 本机监听地址仍是 127.0.0.1 | 开关未生效,或被订阅配置覆盖 | 查看监听命令输出 | 检查合并字段、重新应用配置 |
| 监听正常但外部连不上 | 系统防火墙拦截 | 在第二台设备测端口 | 按网段放行入站 |
| 端口通但打不开网页 | 客户端代理地址填错、规则拦截 | 看宿主机连接列表有无记录 | 核对代理地址格式与分流规则 |
| 隔一段时间就失效 | 订阅更新覆盖了字段,或宿主机休眠 | 记录失效时间点,比对订阅更新日志 | 改用合并字段;调整电源策略 |
| 手机切换网络后连不上 | 宿主机 IP 变化,或两台设备不在同一网段 | 核对双方 IP 与掩码 | 给宿主机设固定内网 IP |
这张表里最值得展开的是「隔一段时间就失效」这一条。它有两种截然不同的成因:一种是配置被覆盖,表现为重启应用或更新订阅后立刻失效;另一种是宿主机进入了休眠,表现为时间不固定、但通常与合盖或长时间无操作相关。区分方法很简单,看失效时刻是不是紧跟在订阅更新或应用重启之后。分清楚之后,处置动作也就自然分岔了。
适用与不适用场景清单
把前面的判断集中成一份清单,方便你在几分钟内做出决定。
适合开启的典型情况:家庭网络内自己的手机与平板数量在一到两台;开发用的虚拟机需要稳定走宿主机出口;宿主机本身就是常开的低功耗设备;你已经为宿主机设置了固定内网 IP,并且愿意在不需要时关掉开关。
不适合开启的情况:在公共无线网络环境下,同网段可能有大量陌生设备;宿主机拥有公网 IP 或做过端口映射,而你没有额外的访问控制手段;办公网络中,出口带宽与合规责任都不由你掌控;只是临时想给一个不熟悉的设备提供网络,而对方设备的用途你不清楚。
最佳实践检查表
下面这份检查表按开、用、关三个阶段排列,可以直接当作操作前的心态检查。
- 开启前:确认当前网络是私人网络而非公共网络。
- 开启前:给宿主机配置固定内网 IP,避免借用方每次都要改地址。
- 开启前:明确这次要服务哪些设备,数量不超过你能一一确认的范围。
- 开启时:优先通过图形开关操作,若配置易被覆盖则改用合并字段。
- 开启时:防火墙只放行到具体端口,来源限定在内网网段。
- 开启时:尽量限制监听绑定的网卡,而不是无脑使用通配地址。
- 开启后:用前面三步验证走一遍,确认监听、可达与可用。
- 开启后:检查宿主机的电源与休眠策略,避免借用方中途断流。
- 使用中:如果借用量明显上升,先观察宿主机负载再决定是否继续。
- 使用后:不再需要时关闭开关,缩短代理端口的暴露窗口。
这十条不必逐句背诵,真正需要固化的是其中的顺序:先确认网络环境,再放行端口,最后才验证连通性。顺序反过来做,排查成本往往会成倍上升。
常见问题
打开开关之后手机依然连不上,应该先看什么?
先看宿主机的监听地址,而不是反复重连手机。在宿主机上执行端口查看命令,如果显示的是 127.0.0.1 而不是 0.0.0.0,说明问题出在配置层,与外网环境无关;如果显示 0.0.0.0 但仍连不上,再换一台设备测目标端口是否可达,把防火墙因素单独排除掉。这个顺序能避免在错误的方向上浪费时间。
开启后会不会影响本机自己的上网方式?
不会。这个开关改变的是内核愿意接受来自哪些地址的连接,属于监听侧设置,不改变本机流量进入内核的方式。本机流量是否走代理,仍由系统代理、TUN 模式以及你当前使用的配置决定。也就是说,它只影响别人能不能找到你,不影响你自己怎么走。
局域网设备应该填哪个端口号?
以你界面上显示的混合端口为准,不要照抄网上流传的默认值。不同配置下端口可能不同,写错端口的表现与没开开关几乎一样。如果界面中有多个端口字段,混合端口通常能同时接受 HTTP 与 SOCKS 两种代理协议,优先使用它,可以少填一次设置。填写格式一般是 http://内网IP:端口。
这个开关长期开着有风险吗?
风险取决于你所在的网段。在家庭网络中,同网段通常只有你自己的设备,风险较低;在办公、酒店、咖啡馆这类共享网络中,同网段可能存在大量陌生设备,长期开启意味着持续的暴露。稳妥的做法是按需开启、用完关闭,并且始终避免把该端口映射到公网。
为什么重启应用后设置又变回去了?
最常见的原因是生效配置由订阅下发,里面写死了相关字段,应用重新生成配置时把手动改动覆盖掉了。解决办法是使用全局扩展配置一类的合并机制,让覆盖字段在每次生成配置时被稳定地叠加进去,而不是直接改下发的文件。调整后再次检查监听地址即可确认是否生效。
小结与下一步
回到最初的问题:在 Clash Verge 中允许局域网连接,操作本身只有一步——在设置里打开对应开关,或在配置中写入 allow-lan。真正决定成败的是它前后的两件事:前面是判断该不该开,取决于你的信任边界和网络环境;后面是让连接真正可达,取决于防火墙、固定 IP 与验证方法。
如果只带走一条结论,那就是:这个开关把「谁可以使用你的网络出口」这件事的边界交给了网段,而网段往往是共享的。所以请把它当作一个按需开启的能力,而不是一个配置一次就遗忘的选项。至于界面措辞或分组位置在后续版本中是否调整,判断方法都不会变——看监听地址落在哪个 IP 上。
下一步可以做三件事:先在宿主机上执行一次监听检查,确认当前状态;然后按三步验证法完整走一遍流程,把每一环的实际表现记录下来;最后根据记录结果,决定是保持开启、限定来源,还是干脆只在需要时临时打开。这三步做完,你对这条链路的掌控会比单纯记住一个开关位置牢靠得多。


