在软路由上部署Clash时,可以根据自己的硬件条件和网络架构选择最适合的方案。如果路由器已经刷了OpenWrt且闪存空间充裕,直接在Web管理界面安装OpenClash插件最省事。如果路由器闪存较小或固件较老,通过SSH执行ShellClash一键安装脚本是最稳妥的轻量方案。对于爱快或未刷机的路由器,考虑用Docker部署Clash容器提供代理端口,或者用虚拟机运行OpenWrt旁路由再部署Clash。部署时记得先确认订阅链接能否在路由器网络环境中正常访问,如果订阅需要代理才能下载,可以先在电脑上导出配置文件再手动上传。确认配置文件格式正确后再启动服务,并通过内网设备测试连通性,代理端口通顺且延迟正常即表示部署成功。

软路由部署:三种主流方式对比
直接在OpenWrt系统中安装插件
这是最直接的方式,在刷好OpenWrt的软路由上通过软件包管理安装Clash相关插件。OpenWrt的软件源中包含luci-app-openclash等图形化插件,用户可以在Web管理界面中完成配置。这种方式的好处是操作直观,所有设置都在路由器的LuCI面板中完成,适合不熟悉命令行的用户。不过部分老旧的OpenWrt固件可能存在内核版本不匹配或存储空间不足的问题,安装前需要确认路由器的闪存容量和CPU架构是否满足要求。
使用ShellClash脚本在SSH中部署
ShellClash是一个专门为路由器环境设计的轻量级部署脚本,通过一条命令就能在OpenWrt系统中完成Clash核心的安装和配置。用户通过SSH登录路由器后执行脚本,按照交互式指引完成订阅导入、模式选择和开机自启设置。这种方式占用资源极小,特别适合闪存空间紧张的路由器型号,比如仅剩1.5MB可用空间的TP-Link TL-R470GP也能通过开启小内存模式勉强运行。脚本部署的Clash支持混合模式,运行后CPU占用通常能控制在10%到20%之间,性能表现稳定。
Docker容器化部署方案
对于已经刷入OpenWrt且支持Docker功能的软路由,可以通过拉取clash-and-dashboard等镜像完成容器化部署。用户需要提前准备好config.yaml配置文件并挂载到容器中,运行后容器会提供代理端口供内网设备使用。如果软路由底层是PVE或ESXi等虚拟化平台,也可以直接在宿主机上安装Docker运行Clash容器,再配合爱快等路由系统实现流量调度。容器部署的优势在于隔离性好、升级方便,但需要提前确认软路由固件是否包含Docker引擎。
部署模式的选择:主路由、旁路由还是代理服务器
主路由模式的全网接管
将Clash直接安装在主路由上并开启透明代理(TUN模式)后,所有连接到该路由器的设备都会自动走代理通道,无需任何额外设置。这种模式实现了真正的”一次配置,全家上网”,对智能家居设备、游戏主机等无法手动设置代理的设备尤为友好。但需要注意的是,如果代理服务不稳定或节点失效,可能导致整个家庭网络中断,因此建议在配置中为关键流量(如国内网站)设置直连规则以降低风险。
旁路由模式的灵活分流
在旁路由模式中,Clash安装在作为旁路由的设备上(如N1盒子、旧电脑等),主路由保持原有配置不变。用户可以选择两种接入方式:需要代理的设备手动修改网关和DNS指向旁路由IP;或者通过主路由的DHCP选项将旁路由作为默认网关下发给所有设备,实现灵活切换。这种模式的优势在于即使Clash服务出现问题,也不影响主路由的正常工作,网络稳定性更高。N1盒子等低功耗设备搭配旁路由方案是很多用户验证过的成熟配置。
代理服务器模式的手动配置
在软路由上运行Clash但不开启透明代理,仅提供SOCKS5或HTTP代理端口供内网设备手动设置使用。手机、电脑等设备连接WiFi后,在网络设置中填入软路由的IP和Clash代理端口(默认7890),即可单独走代理通道。这种模式流量消耗最可控,不会出现”一晚上跑掉大量流量”的意外情况,但每台需要代理的设备都必须手动配置,适合对流量使用有精细控制需求的用户。
安装方式详解:从零开始部署
OpenWrt插件方式安装
在刷好OpenWrt的软路由上,登录LuCI管理界面后进入系统→软件包,搜索”openclash”或”luci-app-openclash”进行安装。如果软件源中没有该插件,可以通过SSH连接路由器后使用wget命令从GitHub下载对应的ipk安装包,再用opkg install手动安装。安装完成后在服务菜单中会出现OpenClash的配置入口,用户可以在Web界面中粘贴订阅链接、选择节点和调整运行模式。部分固件可能因为内核版本问题导致插件无法正常启动,此时可以尝试更换固件或改用ShellClash方案。
ShellClash脚本一键部署
通过SSH连接到OpenWrt路由器后,执行社区提供的ShellClash安装命令即可拉起安装向导。命令格式通常为export url='[脚本地址]' && sh -c "$(curl -kfsSl $url/install.sh)",首次运行后会进入交互式配置流程。用户需要依次完成订阅链接导入(选择”在线获取配置文件”然后粘贴订阅地址)、运行模式选择(混合模式或TUN模式)、开机自启设置等步骤。对于存储空间紧张的路由器,在配置过程中记得开启”小内存运行模式”以节省空间。
Docker容器方式部署
先在软路由的Docker管理界面或命令行中拉取Clash镜像,例如docker pull laoyutang/clash-and-dashboard。然后在宿主机上准备一个目录存放config.yaml配置文件,通过-v参数将配置文件挂载到容器内的对应路径,例如-v /etc/clash/config.yaml:/root/.config/clash/config.yaml。容器启动后,需要确保内网设备能够访问容器的IP和代理端口,可以通过--network参数为容器分配固定IP以简化后续配置。如果容器启动后立即停止,通常是因为config.yaml文件格式有误,需要检查YAML语法是否正确。
特殊硬件与系统的兼容性
低闪存路由器的部署限制
部分路由器如TP-Link TL-R470GP闪存可用空间仅1.5MB,无法完整安装标准OpenClash插件,但通过ShellClash脚本开启小内存模式后仍能勉强运行。安装过程中可能遇到wget不支持HTTPS的问题,需要手动上传curl工具或从其他固件中提取可用的二进制文件。小内存模式下不建议在LuCI界面中设置开机自启,更好的做法是在/etc/rc.local中写入启动脚本并添加sleep 10延迟,确保路由器网络就绪后再启动Clash服务。
爱快路由系统的Docker限制
爱快系统虽然支持Docker功能,但部署Clash时存在一些局限:容器无法直接作为网关使用,内网设备必须手动在系统代理设置中填写容器IP和端口才能使用代理。此外爱快的Docker环境不支持定时任务,无法自动更新订阅配置文件,用户需要定期手动替换config.yaml文件。更推荐的做法是在爱快虚拟机中安装OpenWrt作为旁路由,然后在OpenWrt中部署Clash,这样能获得完整的透明代理和自动更新功能。
LXC容器在PVE环境中的轻量部署
在PVE虚拟化平台上,相比运行完整的OpenWrt虚拟机,直接创建Debian或Alpine的LXC容器并安装ShellClash是更轻量的选择。LXC容器直接使用宿主机内核,资源开销远小于虚拟机,适合All-in-One服务器上同时运行爱快路由和Clash代理的场景。配置完成后,通过爱快的”下一跳”功能将需要代理的设备流量指向LXC容器的IP即可实现透明代理。
配置要点与常见问题排查
订阅导入的注意事项
在路由器上导入订阅链接时,如果订阅地址本身需要代理才能访问,会出现”订阅失败”的情况。此时可以先在电脑端使用Clash客户端下载订阅配置文件,再通过WinSCP等工具将文件上传到路由器的指定目录(如/etc/clash/config.yaml)手动导入。另外部分订阅链接返回的是Base64编码格式,需要先解码为YAML才能被ShellClash识别。
IPv6相关的兼容性问题
部分路由器的IPv6环境可能导致Clash无法正常连接,表现为订阅导入后节点全部不可用或代理延迟异常。在排查时可以先尝试关闭路由器的IPv6功能,或者在Clash配置文件中为IPv6相关的域名和IP段设置直连规则。如果需要在IPv6环境下使用,确保配置文件中的节点地址支持IPv6,并且DNS设置中包含了IPv6的nameserver。
路由器重启后服务不自动恢复的处理
如果设置了开机自启但Clash在路由器重启后没有自动运行,可能是启动时机过早导致网络尚未就绪。可以在启动脚本中添加sleep延迟(如30秒),或者检查systemd服务或init.d脚本中的依赖关系是否正确配置。使用ShellClash的用户可以进入管理菜单的”启动设置”中调整自启延迟时间,确保路由器获取到IP后再启动Clash服务。
常见问题 FAQ
软路由上安装Clash需要多大的存储空间?
取决于部署方式:OpenClash插件通常需要数MB空间,ShellClash脚本支持小内存模式可在1.5MB可用空间的路由器上运行,Docker部署则需要更大的存储用于镜像拉取。推荐至少预留10MB可用空间以获得更好的使用体验。
OpenWrt的Clash插件和ShellClash有什么区别?
OpenClash是在LuCI Web界面操作的图形化插件,适合不熟悉命令行的用户;ShellClash是SSH命令行脚本,更轻量、适配老设备和低闪存路由器。两者功能基本相同,ShellClash在资源占用上更有优势。
软路由部署Clash后内网设备需要单独设置吗?
取决于部署模式:主路由+透明代理模式下无需任何设置,所有设备自动走代理;旁路由模式下需手动修改设备网关指向旁路由IP;代理服务器模式则需每台设备在系统代理中填写软路由IP和端口。
Clash在爱快Docker中无法自动更新订阅怎么办?
爱快Docker不支持定时任务,需要手动将更新后的config.yaml文件上传到指定目录并重启容器。建议改用爱快虚拟机安装OpenWrt后再部署Clash,或编写外部脚本在支持定时任务的设备上执行更新后scp传输到爱快。