
参数定义:控制局域网设备能否连接本地代理
参数在配置文件中的声明方式与默认值
allow-lan是Clash配置文件顶层的一个布尔类型参数,用于控制是否允许其他局域网IP地址的设备连接到本机上运行的Clash代理服务。在配置文件中以allow-lan: true或allow-lan: false的形式声明,默认值为false。开启此参数后,Clash的代理端口(如7890、7891)会接受来自局域网内其他设备的连接请求,使得同一网络下的手机、平板、其他电脑甚至游戏主机都能将本机作为代理网关使用。如果配置文件中未声明该字段,Clash会按照默认值false处理。
配合bind-address参数指定监听范围
allow-lan参数通常与bind-address配合使用,共同控制Clash对网络接口的监听行为。当allow-lan设置为true时,需要将bind-address设置为"*"或0.0.0.0,表示Clash监听所有网络接口上的连接请求,而不仅仅是本地回环地址127.0.0.1。如果allow-lan为true但bind-address仍限定为127.0.0.1,其他局域网设备依然无法连接,因为服务只监听在本机地址上,外部请求无法到达。标准配置写法为allow-lan: true搭配bind-address: "*",二者缺一不可。
默认关闭的设计考量与安全意义
Clash默认将allow-lan设置为false,这是一种安全性的设计选择。仅监听本地回环地址可以防止同一网络下的其他设备未经授权访问本机的代理服务,避免代理资源被他人滥用或敏感流量被截获。在公共WiFi网络环境下,开启allow-lan存在安全风险,因为同一网络中的其他用户可能探测到该代理服务并进行连接。普通单机用户不需要修改此参数,保持默认关闭即可满足日常使用,只有确实需要在局域网内共享代理时才需要主动开启。
开启后的实际功能:局域网共享代理
同一WiFi下多设备共享代理节点
开启allow-lan后,同一局域网内其他设备可以通过本机的局域网IP地址和Clash监听的端口号连接代理服务。例如台式机上运行Clash并开启allow-lan,笔记本电脑或手机在同一个WiFi网络下,只需在代理设置中输入台式机的IP地址(如192.168.1.100)和Clash端口(如7890),即可共享这台电脑的代理节点资源。这种方式避免了每台设备单独配置订阅的重复操作,尤其适合家庭或小团队环境中多设备共享一个订阅的场景。
虚拟机或WSL2环境中的必要配置
在WSL2或虚拟机环境中,allow-lan参数有特殊的应用价值。WSL2采用虚拟网络架构,当Clash代理监听在127.0.0.1时,WSL2内的Linux系统无法直接访问宿主机的代理服务,因为127.0.0.1在WSL2中指向的是WSL2自身的回环地址而非宿主机。开启allow-lan并将bind-address设置为"*"后,Clash会监听所有网络接口,WSL2可以通过宿主机的IP地址访问代理。这种配置方式是Windows下使用WSL2开发环境时的常见解决方案。
游戏机与智能设备的代理接入
对于不支持安装Clash客户端的设备,如游戏主机(PlayStation、Xbox、Switch)、电视盒子或智能家居设备,allow-lan提供了共享代理的桥梁。在电脑上运行Clash并开启allow-lan后,这些设备可以在网络设置中手动配置代理地址为电脑的IP和Clash端口,从而实现境外游戏更新或特定服务的加速访问。这种方式在Steam Deck等移动掌机的手动网络配置中也有实际应用,无需在设备上安装复杂软件。
配置要点与正确写法
标准配置示例与各字段含义
正确的allow-lan配置示例为allow-lan: true搭配bind-address: "*",其中"*"表示监听所有网络接口。如果需要更精细的控制,也可以指定具体的IP地址如bind-address: "192.168.1.100",此时Clash只监听该特定IP地址上的连接请求,其他网段的设备无法使用。如果只想监听IPv6地址,也可以填写IPv6地址格式。在配置文件中修改这两个字段时,需要注意YAML格式的缩进正确,且字段名与冒号之间有一个空格。
防火墙规则配合
仅仅开启allow-lan可能不足以让其他设备成功连接,Windows或macOS的系统防火墙可能阻止局域网内的入站连接。需要为Clash可执行文件在防火墙中添加入站规则,允许TCP协议访问Clash监听的端口(如7890、7891)。对于云服务器部署的场景,还需要在云服务商的安全组策略中放行对应的入站端口。如果关闭防火墙后局域网设备可以连接但开启防火墙后无法连接,就说明防火墙规则需要调整,可以添加针对Clash端口的允许规则。
修改后的生效与验证方式
修改配置文件中的allow-lan字段后,需要让Clash重新加载配置才能使新设置生效。在图形化客户端(如Clash for Windows)中,可以直接在General页面点击“Allow Lan”开关,客户端会自动修改配置文件并重载,无需手动编辑文件。在配置文件中手动修改后,需要重启Clash核心或执行配置重载操作。修改后可以用局域网内其他设备尝试连接本机的IP加端口来验证是否配置成功——在另一台设备上打开浏览器,将代理设置为本机IP和7890端口,访问测试网站如果能够加载说明配置成功。
安全风险与防护建议
公共WiFi环境下开启的风险
在公共WiFi网络(如咖啡馆、酒店、机场等)中开启allow-lan存在显著的隐私和安全风险。同一网络中的其他用户可以通过端口扫描发现Clash代理服务,如果代理未设置认证机制,任何人都可以使用该代理进行网络访问,代理服务商的套餐流量可能被他人盗用。更为严重的是,未经加密的HTTP代理流量在局域网内传输时可能被截获,导致浏览记录等敏感信息泄露。在公共网络环境中,除非绝对必要,否则不应开启allow-lan。
通过防火墙限制访问来源IP
如果需要在公共网络中开启allow-lan,可以通过操作系统防火墙限制只允许特定IP地址的入站连接。在Windows高级防火墙中添加入站规则时,在“作用域”选项卡中指定只允许特定的局域网IP地址(如自己的手机IP)访问Clash端口。这种方式比完全开放更加安全,即使开启了allow-lan,也只有被授权的设备才能连接代理。在家庭网络中,如果担心其他家庭成员误用代理,也可以采用同样的方式限制。
代理认证机制的启用
部分Clash分支支持代理认证功能,可以为代理服务设置用户名和密码。开启认证后,其他设备连接代理时需要提供正确的认证凭据,否则请求被拒绝。但原版Clash核心和Clash Meta核心对代理认证的支持程度不同,部分版本可能不支持或在特定协议下不支持认证。目前更安全的方式仍是通过防火墙控制访问来源,而不是依赖代理协议本身的认证机制。
Windows系统防火墙配置指引
允许Clash通过防火墙的入站通信
在Windows系统中开启allow-lan后,如果其他设备连接失败,最常见的原因是Windows Defender防火墙阻止了入站连接。进入“控制面板”->“Windows Defender防火墙”->“允许应用或功能通过防火墙”,如果Clash不在列表中则点击“更改设置”并“允许其他应用”,浏览找到Clash的可执行文件添加。添加时需要同时勾选“专用”和“公用”网络类型,或者至少确保当前网络类型对应的复选框被勾选。添加完成后保存,其他设备应可正常连接。
高级防火墙规则配置
如果需要更精细的控制,可以进入“高级安全Windows Defender防火墙”添加入站规则。在入站规则中新建规则,选择“端口”,在特定本地端口中填写Clash的监听端口(如7890、7891),选择“允许连接”,然后在“作用域”中指定远程IP地址范围。例如如果只允许192.168.1.0/24网段的设备连接,则在作用域的远程IP地址中输入该网段。这种方式比直接允许所有连接更加安全,推荐在需要局域网共享时使用。
防火墙配置变更后的验证
防火墙规则变更后,可以用另一台局域网设备通过telnet 本机IP 7890命令测试端口是否可达,如果连接成功说明防火墙已放行。在手机上设置代理为本机IP和7890后打开浏览器访问测试网站,如果页面正常加载则验证通过。如果连接失败,检查防火墙规则是否已正确应用,以及Clash是否正在运行并监听在正确的端口上。有时需要重启防火墙服务或重启电脑才能使新的规则生效。
实际应用场景与配置案例
家庭网络多设备共享配置
在家庭网络中,一台台式机作为代理服务器,其他设备共享该代理。台式机修改配置文件设置allow-lan: true和bind-address: "*",在路由器中为台式机设置固定IP地址(如192.168.1.100),避免IP变动导致其他设备需要频繁修改代理设置。其他设备在WiFi设置中配置HTTP代理为192.168.1.100:7890,即可使用台式机的代理。如果家中路由器支持DHCP固定IP分配,建议使用该功能绑定台式机的MAC地址,确保每次重启后IP不变。
WSL2开发环境配置
在WSL2中使用Clash代理时,首先在宿主机Windows上确保Clash配置了allow-lan: true和bind-address: "*",并确认防火墙已放行7890端口。然后在WSL2终端中设置环境变量export http_proxy=http://宿主机IP:7890和export https_proxy=http://宿主机IP:7890,其中宿主机IP可以通过cat /etc/resolv.conf查看nameserver来获取。设置完成后,在WSL2中执行curl https://www.google.com测试是否通过代理访问成功。如果WSL2重启后IP变化,可以在~/.bashrc中动态获取IP。
游戏主机代理接入配置
游戏主机连接Clash代理时,获取电脑的局域网IP地址,记录Clash监听的HTTP端口(7890)。在游戏主机的网络设置中选择手动配置代理,输入HTTP代理地址为电脑IP和7890端口,部分游戏主机还支持SOCKS5代理,对应端口为7891。配置完成后在游戏主机中访问网络测试功能确认连通性,如果测试失败,检查防火墙是否放行端口以及Clash是否已开启allow-lan。
常见问题 FAQ
allow-lan开启后,其他设备连接代理需要密码吗?
原版Clash和Clash Meta核心默认不支持代理认证,开启allow-lan后任何能访问本机IP和端口的设备都可以使用代理。如果担心未授权使用,建议通过操作系统防火墙限制访问来源IP,只允许特定的局域网设备连接。
allow-lan和bind-address必须同时配置吗?
是的。allow-lan: true只是允许局域网连接,但bind-address决定了Clash监听在哪个网络接口上。如果bind-address仍为127.0.0.1,服务只监听本地回环地址,局域网设备无法连接。必须将bind-address设置为"*"或具体的局域网IP,局域网连接才能生效。
开启allow-lan后,本机访问代理会变慢吗?
不会。allow-lan只影响Clash是否监听其他网络接口,不影响本机通过127.0.0.1访问代理的性能和稳定性。局域网设备的连接会占用额外的网络带宽和系统资源,但本机自身的代理体验不会受到可感知的影响。