CLASH KNOWLEDGE BASE

分类: 未分类

客户端教程、配置说明与问题排查资料。

教程

Clash强制更新订阅和普通更新有什么区别?

普通更新是日常使用的标准更新方式,在拉取订阅时会参考本地缓存的数据,如果缓存中存在上次成功解析的配置副本,客户端可能优先使用或合并缓存内容,从而减少网络传输和解析开销,适合订阅配置变化较小的场景。强制更新则完全忽略所有本地缓存数据,直接从订阅服务器重新下载完整的配置文件并从头解析,确保客户端使用的是服务商提供的最新配置副本而非可能已被污染的旧版本。当订阅更新后出现节点全部丢失、配置解析错误或部分节点无法连接时,强制更新是首选的解决方式,它能有效排除缓存数据对更新流程的干扰。在操作上,ClashforWindows用户在Profiles页面点击配置文件旁的三个点菜单选择“ForceUpdate”,ClashVergeRev等新客户端通常在订阅列表的右键菜单中提供“强制更新”选项。如果强制更新后节点仍未恢复,可以删除当前订阅配置并重新添加,或将在浏览器中打开的订阅内容保存为本地YAML文件后通过本地导入方式添加,完全绕过在线拉取环节。日常使用中优先保持普通更新即可,建议在出现节点异常、配置解析错误或服务商通知配置格式变更时再使用强制更新。在路由器或低内存设备上,如果存储空间不足,无论是普通更新还是强制更新都可能因配置文件无法完整保存而失败,需要先清理存储空间再更新。普通更新:依赖本地缓存的常规拉取普通更新的工作流程与特点普通更新是Clash客户端在用户点击“更新”按钮或触发自动更新周期时执行的常规订阅拉取操作。客户端会向订阅服务器发送请求获取配置文件,但这个过程会依赖本地已有的缓存数据。如果本地缓存中存有上次成功拉取的配置副本,客户端在拉取新配置时可能会优先参考或合并缓存内容,而非完全抛弃旧数据从头解析。普通更新的设计初衷是减少不必要的网络流量和解析开销,在订阅服务器正常响应且配置无重大变化时能快速完成更新,对系统资源的消耗相对较小。普通更新在配置变化较小时的适用场景当订阅中的节点列表变化不大(如只调整了几个节点的名称、增加或删除了少数节点),普通更新通常能顺利完成并正确反映这些变化。客户端从服务器拉取最新的配置文件后,会参考本地缓存与远程内容进行对比,只更新有差异的部分,而不是完全重建整个配置结构。这种轻量级的更新方式在网络状况良好时速度较快,适合日常的订阅刷新操作。普通更新可能带来的缓存依赖问题普通更新的核心局限在于对本地缓存的依赖——如果缓存中存储了错误的解析结果、空节点列表或格式异常的数据,再次更新时可能沿用缓存内容,导致即使订阅服务器返回了正确的配置文件,客户端仍然无法正常解析出节点。在订阅链接本身发生变化(如服务商调整了配置结构、更换了协议格式)时,普通更新可能因为读取了过时的缓存索引而导致更新后节点丢失或配置出错。强制更新:忽略缓存从头拉取配置强制更新的执行逻辑与工作流程强制更新是Clash客户端中一种更为彻底的订阅更新方式,会完全忽略本地存储的所有缓存数据,直接从订阅服务器重新下载完整的配置文件并从头开始解析。在ClashforWindows中,用户可以在Profiles页面点击配置文件旁的三个点菜单,选择“Update”下方的“ForceUpdate”选项来执行强制更新。强制更新不依赖任何本地缓存,所有数据都从远程服务器重新获取,确保客户端使用的是服务商提供的最新配置副本,而不是被旧缓存“污染”的版本。强制更新解决缓存问题的有效性当订阅更新后出现节点全部丢失、配置解析错误或部分节点无法连接等异常情况时,强制更新往往是首选的解决方式。由于强制更新完全绕过了本地缓存的干扰,它能有效解决因缓存了错误的旧数据、多次更新累积了冲突配置导致的解析偏差。在日志中表现为“更新了订阅”但实际节点列表未变时,普通更新可能因为缓存的索引与远程内容不匹配导致更新效果未生效,而强制更新可以强制刷新整个配置状态,让问题得到恢复。强制更新在订阅格式变化时的优势当订阅服务商更换了配置文件的格式、新增了客户端不兼容的规则类型或调整了协议结构时,普通更新可能因为参考了旧格式的缓存导致解析失败。强制更新则完全依赖服务器返回的最新内容,能更准确地反映订阅的真实变化。此外在订阅链接本身从Base64格式切换为YAML格式、或从经典Clash格式切换为Surge兼容格式等场景下,强制更新通过抛弃旧缓存从头拉取,可以避免旧解析模式与新版内容不匹配的问题。更新失败后的逐步排查方法验证订阅链接有效性的前提操作在尝试强制更新之前,建议先在浏览器中打开订阅链接验证其有效性。如果浏览器返回的是YAML配置内容或Base64编码文本,说明订阅链接本身是有效的,问题出在客户端拉取或解析环节;如果返回404NotFound或“Invalidtoken”等错误信息,说明订阅链接已失效,需要联系服务商续费或更换新的订阅地址。用无痕模式打开订阅链接可以排除浏览器缓存的干扰,确认返回内容是否正常。这个简单的验证步骤能帮助快速区分“链接本身坏了”和“客户端没拉对”两种不同性质的问题。在客户端中执行强制更新而非普通更新当确认订阅链接有效但更新后节点仍然丢失时,强制更新是优先尝试的修复步骤。在ClashforWindows中点击配置文件旁的三个点菜单选择“ForceUpdate”,在ClashVergeRev等新版本客户端的订阅列表右键菜单中找到“强制更新”选项。强制更新后观察节点列表是否恢复完整——如果恢复,说明问题正是由缓存数据导致的解析偏差;如果仍然为空,则需要进入下一步排查。删除配置重新添加与本地文件导入当强制更新仍然无效时,可以在订阅管理界面中彻底删除当前订阅配置,然后重新粘贴订阅链接并添加。这种操作可以消除配置文件中可能因多次更新累积的残留错误数据。如果在浏览器中访问订阅链接正常但客户端持续无法拉取,最可靠的替代方案是在浏览器中将订阅内容保存为本地YAML文件,然后在Clash客户端中选择“从文件导入”或拖拽到Profiles页面,完全绕开在线拉取环节。普通更新与强制更新的场景选择日常使用优先普通更新在日常使用中,如果订阅服务商未提示配置格式变更,且客户端当前运行状态正常,普通更新已经足够维持订阅内容的同步。普通更新的轻量级机制节省了网络带宽和系统资源,在配置变化较小时完成速度较快,不会因为每次都重新下载全部配置而增加不必要的开销。同时普通更新支持自动定时刷新功能,用户可以设置每24小时或更短的间隔自动执行更新,无需手动干预。出现异常情况时优先强制更新当出现以下情况时,应该优先使用强制更新而非普通更新:更新后节点列表全部丢失或部分重要节点消失、配置解析报错且错误提示指向格式问题、从新的服务商导入订阅后节点列表未显示完整、订阅服务商通知配置格式已变更。强制更新通过完全抛弃本地缓存从头拉取,能最大程度地避免旧数据对新配置的干扰,是解决“更新后节点丢失或配置出错”问题的关键步骤。无法访问订阅URL时的特殊处理当订阅链接在浏览器中无法访问,且Clash客户端更新时报“下载失败”时,无论是普通更新还是强制更新都无法正常工作。这种情况通常意味着订阅地址本身需要代理才能访问,而当前网络环境处于直连状态,形成了“需要代理去拉订阅,但没有订阅就没有代理”的死循环。此时应该先关闭Clash的代理开关让网络恢复直连,或使用其他临时代理工具建立网络环境后再尝试更新。路由器与低内存设备的更新注意事项存储空间不足时的更新失败处理在OpenWrt路由器或Padavan等低内存设备上运行Clash时,更新订阅后节点丢失或更新失败可能与存储空间不足有关——Clash的配置文件保存在存储分区中,如果分区空间不足,配置文件无法完整下载和保存,导致更新失败或节点列表为空。此时普通更新和强制更新都无法解决空间不足的问题,需要清理路由器的闪存空间,删除不必要的日志文件或临时文件,释放足够的存储空间后再尝试更新。部分老毛子固件需要在系统管理中执行双清重置才能彻底清除残留数据。订阅需要每日更换的特殊场景部分免费订阅项目发布的节点更新频率较高,需要用户每日手动更换订阅地址或定时刷新订阅才能获取最新节点。在这类场景中,无论是普通更新还是强制更新都依赖订阅链接本身的有效性。如果免费订阅项目每天发布新的订阅地址,用户需要登录订阅网站复制最新的订阅URL到Clash客户端中,然后通过更新操作拉取最新节点列表。自动更新只能拉取同一链接的最新内容,无法自动更换链接本身。自动更新间隔设置与强制更新的配合Clash客户端支持设置定时自动更新订阅,用户可以在订阅管理页面中设定更新间隔(如每6小时、12小时或24小时)。自动更新默认执行的是普通更新而非强制更新,因此如果服务商频繁调整配置格式,自动更新可能无法每次都正确解析。在这种情况下,用户可以在设置中适当调整自动更新间隔,或在发现节点异常时手动执行一次强制更新来重置配置状态。部分客户端在订阅更新失败时会自动尝试强制更新,但具体行为因客户端版本而异。常见问题FAQ

教程

Clash订阅更新时提示“下载失败”是什么原因?

遇到Clash订阅更新失败时,最快速的恢复方式是先从浏览器验证订阅链接的有效性——如果浏览器返回正常内容说明订阅本身没有问题,问题出在客户端拉取环节。这种情况下优先执行强制更新而不是普通更新,强制更新能忽略本地缓存直接从服务器拉取最新配置,可以解决大部分因缓存导致的下载失败问题。如果强制更新仍然无效,关闭Clash的系统代理让网络恢复直连,或切换网络环境(如从WiFi切换到手机热点)后再尝试更新。对于日志中显示DNS解析错误的情况,将设备的DNS服务器更换为公共DNS如8.8.8.8后清除DNS缓存再重试。如果以上方法都无法解决,最稳妥的替代方案是在浏览器中打开订阅链接,将返回的配置文件内容保存为本地YAML文件,然后在Clash客户端中通过拖拽或“从文件导入”方式添加配置,完全绕过在线拉取环节。在路由器或软路由环境中,还可以考虑双清重置后重新配置Clash,同时检查闪存空间是否充足,空间不足时配置文件可能无法完整保存导致更新失败。网络环境问题:订阅地址无法被客户端访问直连网络环境下订阅地址被限制订阅链接在浏览器中能打开,但在Clash客户端中更新时却提示“下载失败”,这是最典型的网络访问困境。浏览器可能已经通过其他代理工具或系统代理设置实现了对订阅地址的访问,而Clash客户端在尚未导入有效配置的情况下处于直连状态,无法访问同样的境外订阅域名。在更新客户端或重装系统后,原本已配置好代理的环境丢失,但订阅链接本身需要代理才能访问,形成了“需要代理去拉订阅,但没有订阅就没代理”的死循环。更换网络环境或使用移动热点如果确定订阅地址本身需要代理才能访问,可以尝试切换网络环境——从WiFi切换到手机热点,或从公司网络切换到家庭网络,某些网络环境下订阅域名可能被放开。部分用户反馈过一晚上之后订阅自动恢复的情况,可能是因为网络环境发生了变化或服务商临时恢复了直连访问。也可以暂时使用其他免费的代理工具建立临时网络环境,让Clash在已代理的状态下完成订阅拉取。关闭其他代理软件避免端口冲突系统中同时运行了多个代理工具时,端口冲突可能导致订阅拉取失败。更新订阅前先退出Shadowsocks、VPN等其他代理软件,只保留Clash运行。如果更新时仍然失败,暂时关闭Clash的系统代理开关让网络恢复直连状态再尝试拉取订阅。防火墙或安全软件也可能拦截Clash进程访问订阅服务器的请求,检查防火墙规则中是否放行了Clash的出站连接,必要时为Clash添加白名单或临时关闭防火墙测试。DNS解析失败:域名无法转换为IP地址订阅域名DNS解析失败的典型表现更新订阅时提示“下载失败”,日志中显示curl:(6)Couldnotresolvehost或类似错误信息,说明Clash无法将订阅链接中的域名解析为对应的IP地址。这类问题在路由器环境中较为常见,可能是路由器WAN口的DNS服务器配置失效,或者订阅域名本身被网络运营商的DNS污染导致无法正确解析。在电脑端Clash可以正常更新,但在路由器或特定设备上却报DNS解析错误,说明问题出在该设备或所在网络的DNS配置上。更换DNS服务器恢复域名解析将设备的DNS服务器从当前配置(可能是运营商默认DNS)更换为公共DNS服务器,如8.8.8.8或1.1.1.1,可以绕过运营商DNS对特定域名的污染或限制。在路由器管理界面中修改WAN口的DNS设置,或在电脑的网络适配器属性中手动指定DNS服务器。修改后重启路由器或刷新DNS缓存,在终端执行ipconfig/flushdns(Windows)或sudodscacheutil-flushcache(macOS)清除旧的解析缓存再尝试更新订阅。路由器双清后重置网络配置在OpenWrt或Padavan等路由器固件上运行Clash时,如果出现订阅更新失败且日志中显示DNS解析错误或下载不完整,可能需要进行“双清”操作——在系统管理页面中执行恢复出厂设置和重置配置文件,清除可能存在的网络配置残留。双清后重新在已具备代理环境的状态下安装和配置Clash,确保订阅链接能够在路由器网络环境中正常解析。部分老毛子固件(Padavan)还需要清空Clash配置界面中的DNS配置项并手动粘贴主配置文件才能正常启动。订阅链接本身问题:无效或格式不兼容订阅链接过期或账号状态异常订阅链接可能已经过期、流量用尽或账号被停用,此时Clash更新时会提示“下载失败”或返回空内容。在浏览器中打开订阅链接验证其状态——如果返回404NotFound或“Invalidtoken”等错误信息,说明需要登录服务商后台确认套餐状态并续费,或联系客服获取新的订阅链接。部分服务商更换了订阅地址但未通知用户,旧的订阅链接已失效,需要从服务商后台复制最新的订阅URL。设备连接数超出限制导致拒绝拉取服务商对同一订阅链接可同时连接的设备数量有限制,当在线设备数超过上限时,新设备拉取订阅可能会被拒绝或返回空内容。登录服务商后台查看当前已绑定的设备列表,移除不再使用的设备后重新尝试更新订阅。如果设备列表中没有可移除的条目,可以在服务商后台执行“重置所有设备”操作,然后重新在所有设备上导入订阅,但注意这会中断所有已连接设备的服务。订阅内容格式与客户端核心不兼容订阅链接返回的内容如果包含当前Clash核心不支持的规则类型(如IP-ASN),更新时可能报错“unsupportedruletype”并导致更新失败或节点列表为空。这种情况通常出现在客户端版本较旧,而订阅中使用了新版规则语法的场景。解决方式是更新客户端到搭载ClashMeta核心的最新版本,或下载订阅配置文件到本地手动删除不支持的规则行后再导入。部分订阅返回的不是ClashYAML格式而是Base64编码,需要启用客户端的解析器或使用订阅转换工具处理。客户端缓存与配置残留冲突旧缓存数据导致更新流程异常客户端在多次更新后可能积累了与当前订阅不兼容的旧缓存数据,导致更新时解析流程被干扰而报错。在客户端设置中执行“强制更新”而不是普通更新,强制更新会忽略本地缓存直接从服务器重新拉取配置。如果强制更新仍然无效,在订阅管理界面中删除当前订阅配置,然后重新粘贴订阅链接并添加,彻底消除旧缓存的影响。对于ClashVergeRev等新版本客户端,也可以在设置中执行“清理数据”或“重置配置”操作。手动删除配置目录中的缓存文件如果客户端没有提供一键清理功能,可以手动删除配置目录下的缓存文件。Windows上配置目录位于%USERPROFILE%\.config\clash或%USERPROFILE%\.config\clash-verge,关闭Clash后删除其中的cache文件夹或与订阅名称相关的缓存文件,重启Clash后再重新导入订阅。在路由器环境中,如果闪存空间不足(如红米AX6000部分版本data空间用尽),订阅配置文件可能无法完整下载和保存,需要清理日志文件或临时文件释放存储空间。配置目录中残留文件的完整清理卸载后重新安装时如果旧配置目录未清理,残留的配置文件可能与新版本客户端或新订阅内容发生冲突。在卸载Clash后,手动删除配置目录中的所有文件,确保没有旧的config.yaml、Country.mmdb或profiles子目录残留。对于Windows系统,还需要检查注册表中是否有与Clash相关的残留键值,使用注册表编辑器(regedit)查找并删除。清理完成后重启电脑再重新安装客户端并导入订阅,避免新旧配置交叉干扰。手动导入订阅配置文件绕过在线拉取在浏览器中下载配置文件保存到本地当Clash客户端持续无法通过URL拉取订阅时,最可靠的替代方案是将订阅配置文件下载到本地后通过文件导入。在浏览器中打开订阅链接,如果返回YAML格式内容则直接复制保存为config.yaml;如果返回Base64编码内容,先使用解码工具解码再保存。保存后通过Clash客户端的本地文件导入功能添加该配置——在ClashforWindows中可将文件拖拽到Profiles页面,或点击“Import”按钮选择文件。这种方式完全绕开了客户端在线拉取的网络问题,只要浏览器能访问订阅链接就能完成配置导入。手动搭建本地HTTP服务器提供订阅源如果浏览器可以访问订阅链接但Clash客户端无法拉取,可以在本地手动搭建一个HTTP服务器解决。在浏览器中下载订阅配置文件后,使用python-mhttp.server8080等命令启动一个简单的HTTP服务,将配置文件放到服务器根目录。然后在Clash客户端中将订阅链接修改为本地HTTP地址(如http://127.0.0.1:8080/free_clash.yaml)进行导入。这种方式将远程订阅转换为本地可访问的源,彻底摆脱了网络环境对订阅拉取的限制,适合需要频繁更新订阅的网络受限场景。从其他设备复制配置文件到当前设备如果同一订阅在其他设备(如手机)上已成功导入,可以将配置文件从正常设备复制到出问题的设备。在已正常运行的Clash客户端中找到配置目录,将包含完整节点信息的config.yaml文件通过文件传输工具(如微信文件传输、U盘或SCP)复制到目标设备的配置目录中,替换原有文件后重启Clash即可生效。这种方式适合在设备间迁移配置或在无法联网的环境下快速恢复代理服务。常见问题FAQ

教程

Clash更新订阅后节点全部丢失了怎么办?

遇到Clash更新订阅后节点全部丢失时,可以按照“先验链接、再清缓存、后查兼容”的顺序排查,而不是反复尝试同一操作浪费时间和精力。首先在浏览器中打开订阅链接,根据返回内容判断是链接失效、格式不匹配还是需要代理才能访问——如果返回404或Invalidtoken说明需要联系服务商续费或更换链接,如果返回的内容不是ClashYAML格式则需要通过订阅转换工具处理。然后回到Clash客户端执行强制更新而不是普通更新,强制更新会忽略本地缓存直接拉取最新配置,能解决大部分因缓存导致的空节点问题。如果强制更新无效,删除当前订阅配置并重新添加,或在ClashVergeRev中尝试切换到其他网络环境(如手机热点)再更新。如果以上步骤都无法恢复,在浏览器中将订阅内容保存为本地YAML文件,通过Clash的本地文件导入功能添加配置,完全绕过在线拉取环节。最后一步排查节点本身——如果所有节点都显示超时,切换到其他测试节点或检查网络环境是否允许代理通信。当单个订阅反复出现更新后节点丢失的情况,且其他订阅正常,说明问题出在该订阅本身,建议联系服务商确认配置格式是否兼容当前核心版本。在路由器设备上遇到此问题时,注意检查存储空间是否充足,低内存设备有时需要手动清理才能保存完整的订阅配置文件。在浏览器中验证订阅链接的有效性用浏览器打开订阅链接查看返回内容更新订阅后节点全部丢失,首先要确认订阅链接本身是否还有效。在浏览器中打开订阅链接,观察返回的内容——如果看到一段YAML配置或Base64编码的文本,说明链接有效,问题出在客户端拉取或解析环节。如果返回404NotFound、Invalidtoken或“订阅已过期”之类的错误信息,说明订阅链接已失效,需要联系服务商续费或更换新的订阅地址。这个简单的验证步骤能快速区分“链接本身坏了”和“客户端没拉对”两种不同性质的问题。区分订阅失效与格式错误的返回内容当浏览器能打开但返回的内容不是ClashYAML格式时,比如返回的是SS/SSR节点链接列表而非标准Clash配置,客户端同样无法解析出节点。此时需要检查服务商是否提供了专用的Clash格式订阅链接,或者使用订阅转换工具将返回内容转换为Clash标准格式后再导入。如果返回的是一段带“Invalid”或“expired”字样的JSON信息,说明账号状态异常,优先联系服务商确认套餐和流量状态。订阅地址需要代理才能访问的情况当浏览器也无法打开订阅链接时,可能是因为订阅地址本身需要代理才能访问,而当前网络处于直连状态。这种情况在有代理需求和没有代理环境的“先有鸡还是先有蛋”困境中尤为常见。如果之前曾通过代理成功拉取过订阅,可以先关闭Clash的系统代理开关让网络恢复直连,再尝试在浏览器中打开订阅链接。如果直连仍然无法访问,则需要借助其他临时代理工具完成订阅文件的下载。第二步:在客户端中执行强制更新而不是普通更新强制更新与普通更新的区别普通更新(Update)可能会读取本地缓存的数据,如果缓存中存储了错误的解析结果或空节点列表,再次更新时可能沿用缓存内容导致节点依然为空。强制更新(ForceUpdate)则要求客户端忽略所有本地缓存,直接从订阅服务器重新下载完整的配置文件并从头解析。在ClashforWindows中,点击配置文件旁的三个点菜单选择“ForceUpdate”。ClashVergeRev等新版本通常在订阅列表的右键菜单中提供“强制更新”选项,使用后节点列表应重新完整显示。完全删除配置并重新添加如果强制更新仍然无法恢复节点,可以尝试彻底删除当前订阅配置再重新添加。在订阅管理界面中删除有问题的订阅配置,然后重新粘贴订阅链接并执行添加操作。这种方式可以消除配置文件中可能因多次更新累积的残留错误数据。对于ClashVergeRev用户,如果添加后仍然报错,可以尝试切换到其他网络环境(如手机热点)再执行订阅更新。通过本地文件导入绕过在线拉取环节当客户端持续无法通过URL拉取订阅时,最可靠的替代方案是将订阅配置文件下载到本地后通过文件导入。在浏览器中打开订阅链接,将返回的YAML内容保存为config.yaml文件,然后在Clash客户端中选择“从文件导入”或拖拽该文件到Profiles页面。这种方式完全绕开了客户端在线拉取的网络问题,只要浏览器能访问订阅链接就能完成导入。第三步:检查客户端核心版本与订阅格式的兼容性旧版本核心无法解析新协议节点如果订阅中包含VLESS、Hysteria2等新一代协议节点,而Clash客户端使用的是已停更的原版Clash核心,更新后这些节点会被解析器跳过或直接报错,导致节点列表部分缺失或完全为空。这类问题的典型表现是浏览器能显示订阅内容,客户端也能显示拉取成功,但节点列表中只有少数节点或完全没有可用的节点。解决方案是将客户端切换到搭载ClashMeta(mihomo)核心的版本,如ClashVergeRev,以获得对新协议的完整支持。订阅格式与客户端解析模式不匹配部分订阅内容需要客户端以特定解析模式(Parser)处理才能正确读取。在ClashforWindows的Profiles页面中,查看已导入配置的解析器设置,尝试切换不同模式——Classic模式适用于标准YAML格式,Surge模式适用于兼容Surge配置的订阅。如果订阅内容是Base64编码格式,需要开启能够解码的Parser,或在导入前先用转换工具将Base64转换为标准YAML格式。某些ClashVerge版本默认不开启自动转换,需要在设置中手动启用。内核更新后配置格式的变化部分用户反馈在更新Clash客户端或内核版本后,原本可用的自建节点突然全部无法连接,可能是新版本对配置文件格式的要求更严格了。此时检查日志中的错误提示,如果显示配置文件解析错误,说明配置格式与新版本不兼容,需要根据新版本的要求调整配置字段。如果只是节点超时而非配置错误,尝试重启电脑或客户端后再测试连接。第四步:清理客户端缓存与本地配置文件清除客户端缓存数据客户端在长时间使用后可能积累了与当前订阅不兼容的旧缓存数据,导致新订阅拉取后解析异常。在客户端设置中查找“清理数据”或“重置配置”功能,执行后清除所有缓存的配置数据再重新导入订阅。如果客户端没有提供一键清理功能,可以手动删除配置目录下的缓存文件——Windows上位于%USERPROFILE%\.config\clash或%USERPROFILE%\.config\clash-verge,删除其中的缓存文件夹(如cache目录)后重启客户端。删除残留配置文件防止冲突旧配置文件的残留可能与新订阅内容发生冲突,尤其在使用proxy-providers或rule-set等高级功能时更为常见。在删除订阅配置后,检查配置目录中是否存在以订阅名称命名的缓存文件或临时文件,一并删除。对于ClashVergeRev用户,可以在设置中执行“恢复出厂设置”操作,彻底清除所有配置后再重新导入订阅。如果不想全部重置,至少删除订阅管理中的错误配置后再重新添加。路由器或低内存设备上的特殊处理在OpenWrt路由器或Padavan等低内存设备上,更新订阅后节点丢失可能与存储空间不足有关——Clash的配置文件保存在storage分区,如果分区空间不足,配置文件无法完整保存,导致节点列表为空。此时需要清理路由器的闪存空间,删除不必要的日志或临时文件,或通过系统管理中的“恢复/导出/上传设置”执行双清重置。重置后重新在已具备代理环境的状态下安装和配置Clash,通常能恢复正常。第五步:联系服务商确认订阅状态与设备限制检查账号状态与套餐有效期如果订阅链接在浏览器中返回“Invalidtoken”或“订阅已过期”等错误信息,说明账号状态异常,需要登录服务商网站确认套餐是否到期或流量是否耗尽。续费完成后部分服务商需要手动重置订阅链接,在用户面板中点击“重置订阅”或“重新生成”获取新的URL后再导入Clash客户端。部分服务商续费后旧链接自动延期,无需更换,但建议在后台确认链接的有效状态。检查设备连接数是否超出限制多数代理服务商对同一订阅链接可同时连接的设备数量有限制,当在线设备数超过上限时,新设备拉取订阅可能被拒绝或返回空节点列表。登录服务商后台查看当前已绑定的设备列表,移除不再使用的设备后重新尝试更新订阅。如果设备列表中没有可移除的条目,可以尝试在服务商后台执行“重置所有设备”操作,然后重新在所有设备上导入订阅,但注意此操作会中断所有已连接设备的服务。通过服务商提供的备用订阅链接部分服务商提供多个格式的订阅链接(Clash、Shadowsocks、Surge等),尝试切换到Clash专用格式的订阅链接后再导入。如果服务商网站提供了“一键导入Clash”的功能按钮,点击后系统会自动唤起Clash客户端并完成导入,这种方式通常能避免手动复制链接导致的格式错误。如果服务商处于维护状态或客服无响应,可以暂时使用备用订阅链接或等待服务恢复后再尝试。第六步:检查网络环境与防火墙设置关闭其他代理软件避免端口冲突如果系统中同时运行了其他代理工具(如Shadowsocks客户端、VPN软件),可能与Clash争夺网络端口或干扰流量路由,导致订阅更新后节点无法正常加载。在更新订阅前先退出所有其他代理工具,只保留Clash运行。如果更新时仍失败,暂时关闭Clash的系统代理开关,让网络恢复直连后再尝试拉取订阅。检查防火墙是否拦截了订阅请求防火墙规则可能阻止Clash进程访问订阅服务器,导致拉取到的配置文件为空或不完整。在WindowsDefender防火墙中为Clash可执行文件添加出站和入站的允许规则,或临时关闭防火墙进行测试。如果关闭防火墙后订阅更新恢复正常,说明需要调整防火墙规则而不是关闭防护功能。对于企业网络环境,可能存在网关层面的访问限制,可以尝试切换网络环境(如使用手机热点)来验证。使用CDN加速链接替换原始订阅地址部分GitHub上的免费订阅项目或自建订阅源可能在国内网络环境下访问不稳定,导致客户端更新时超时或返回空内容。查看项目README中是否提供了CDN加速地址或反向代理链接(如gh-proxy),使用加速链接替换原始订阅地址后再尝试导入。如果订阅链接本身可靠但网络环境不稳定,也可以考虑在浏览器中先下载配置文件,再通过本地文件导入方式添加到Clash中。常见问题FAQ

教程

Clash订阅链接是从哪来的?服务商提供的吗?

获取Clash订阅链接的渠道主要有三条:付费机场服务商、GitHub免费聚合项目和自建服务器生成。最稳定的方式是付费订阅,用户登录服务商后台复制Clash格式的订阅URL导入客户端即可使用,这些链接与服务商的套餐流量和设备限制绑定,节点质量和稳定性有保障。预算有限的用户可以尝试GitHub上的免费项目,在搜索栏输入"clash免费订阅"或"clash-subscription"找到活跃的开源项目,从README文档中复制Clash订阅地址或CDN加速链接,添加到Clash客户端后能自动获取公开节点,但这些节点来源不明且随时可能失效,仅适合临时应急测试。自建服务器生成的订阅链接完全自主可控,将节点信息整理成ClashYAML格式并托管在可公开访问的服务上即可生成专属订阅地址。如果手中有多个订阅来源,可以使用聚订阅等聚合工具将付费和免费订阅合并成一个统一链接统一管理。无论哪种获取方式,在Clash客户端中添加订阅都是相同的操作路径:进入订阅管理页面粘贴URL并设置更新间隔。日常使用中建议优先选择有口碑的付费服务,免费节点仅作为备用或技术体验。付费服务商提供:最稳定可靠的订阅来源付费机场的订阅获取流程代理服务商(俗称“机场”)是付费订阅链接最主要的来源。用户登录服务商网站,注册账号并购买套餐后,在用户面板的“订阅”页面可以找到Clash格式的订阅链接。服务商会将租用的海外服务器节点信息打包成订阅链接出售,Clash导入该链接后会自动解析出节点列表——每个节点包含服务器地址、端口、加密协议和密码等完整信息。以搬瓦工旗下机场JustMySocks为例,用户可直接在客户区复制Mihomo/Clash.MetaYAML格式的订阅URL,导入ClashVerge等客户端即可使用。订阅链接与套餐流量的绑定关系付费订阅链接与用户的账号和套餐绑定,包含流量配额、有效期和设备数量限制等信息。用户在客户端中更新订阅时,Clash会从服务商服务器拉取最新的节点配置,同时服务端会同步更新该账号的流量使用情况。付费订阅通常提供稳定的节点质量、专属带宽和流媒体解锁支持(如Netflix、ChatGPT等),并配有售后群和客服支持。价格区间从入门级每月10-20元到高端IPLC专线套餐不等,年付通常比月付更划算。付费订阅的选型建议选择付费服务商时,应优先通过朋友推荐、知名VPS商家推荐或活跃的Telegram频道获取信息。需要警惕的危险信号包括:价格过低(如5元月付无限流量)、无官方网站仅有Telegram频道、不提供试用期、需要实名认证等。建议首次选择时先购买短周期套餐(月付或季付),验证线路质量、流媒体解锁能力和晚高峰表现后再决定是否长期续费。免费公开订阅:GitHub与社区分享GitHub上的免费节点聚合项目GitHub上存在大量免费节点聚合项目,定期抓取互联网上的公开代理节点并生成Clash订阅链接。例如MetaFetch项目每天异步并发抓取多个来源的免费节点,自动识别地区并分流,生成ClashYAML格式的订阅地址。freeSub项目同样提供免费Clash订阅,单次统计中可用节点数量可达500个,支持国内直连加速链接。这类项目通常通过jsdelivr等CDN提供加速访问,用户可直接将生成的订阅地址导入Clash客户端使用。免费订阅的获取渠道与使用方法用户可以通过GitHub搜索关键词如“clash免费订阅”或“v2r免费订阅”找到相关项目,也可通过开源搜索工具查找免费订阅网站。部分项目(如Free-Node)每小时更新一次节点信息,并提供Clash源地址和多个CDN加速地址供用户选择。在Clash客户端中订阅管理页面添加订阅URL并设置更新间隔(推荐24小时),即可自动获取最新节点列表。需要注意的是,这类免费公开订阅的节点来源不明,部分可能来自互联网上任何人搭建的节点,安全性和隐私保护难以保障。免费节点的局限性与使用建议免费节点普遍存在不稳定、速度慢、频繁失效等问题,多人共享带宽导致高峰期延迟高、速度慢。更严重的是,节点由不可信的第三方提供,存在窃取流量或记录用户访问记录的风险。社区用户反馈中明确提到“这种节点需要每日进订阅网站更换订阅地址”,维护成本较高。免费订阅仅适合临时应急体验或技术测试,不建议作为日常主力方案。自建节点生成订阅:完全自主可控自建节点订阅的实现路径有条件的用户可以通过自建服务器并生成专属订阅链接。基本路径包括:申请免费域名和VPS,在服务器上部署代理服务(如Vless、Trojan协议),然后将节点信息整理成Clash格式的YAML配置文件,托管在GitHub或CloudflarePages等服务上,生成专属的订阅链接。这种方式让用户完全掌控服务器和节点配置,不依赖第三方服务商,隐私性和安全性最高。利用CloudflarePages生成订阅借助CloudflarePages服务,用户可以利用CF的全球节点自建节点订阅并导入Clash等客户端使用。CFPages允许托管配置文件并生成可通过CDN加速访问的订阅链接,节点搭建过程相对简单,无需复杂的Linux指令和远程服务器操作,部署代码完全开源可自定义。这种方法生成的订阅链接可以在Clash客户端中直接导入,支持定期刷新节点信息。但需要注意避免使用中国大陆或香港的CF节点(CF香港服务与阿里云合作),且部分节点IP可能存在被某些网站标记的风险。自建方案的适用场景与成本自建方案适合有一定技术基础、对隐私安全要求较高或需要长期稳定使用的用户。成本主要包括VPS或云服务器的费用(部分提供免费额度),以及域名注册费用(可使用免费域名)。自建方案的节点质量完全取决于服务器线路和带宽,用户可以根据需求选择不同地区的服务器优化访问速度。与付费机场相比,自建需要自行维护服务器和更新配置,但避免了第三方服务商的数据留存和隐私泄露风险。多订阅聚合工具:合并与管理多个来源聚合工具的核心功能与使用场景聚订阅等聚合工具允许用户将多个订阅链接(包括付费和免费的)合并为一个统一链接,通过关键词或正则表达式筛选节点,并一键导入Clash等客户端。用户可以将多个服务商的订阅、GitHub免费订阅以及手动添加的自定义节点(支持SOCKS5、VMess、Trojan等协议)整合到一起,实现集中管理。这类工具特别适合跨境电商用户管理大量代理服务器,也适合同时使用多个订阅来源的进阶用户。聚合链接的生成与安全考量聚合工具会从用户添加的各订阅中拉取节点信息,去重后生成新的聚合链接。用户在Clash中导入该聚合链接,相当于一次性加载了所有来源的节点。但需要注意,聚合服务会接触到用户的原始订阅数据,对隐私敏感的用户需评估工具的可信度。部分聚合工具提供临时分享功能,可自定义链接有效期和最大访问次数,方便临时分享给他人使用。聚合工具的付费模式聚订阅在iOSAppStore上架,定价¥8.00并提供App内购买选项,属于付费工具。用户在选择聚合工具时需留意收费模式,免费聚合服务可能在隐私保护或功能完整性上有所妥协。如果不需要合并功能,Clash客户端本身支持在配置管理界面保留多个独立订阅,手动切换不同来源的配置,这种方式不依赖第三方聚合工具,隐私风险更低。订阅链接的格式与转换Clash订阅链接的标准格式Clash订阅链接通常是包含/subscribe?token=或/api/v1/client/subscribe?token=参数的URL,指向服务商或托管平台上的YAML配置文件。导入Clash后,客户端会拉取该地址返回的配置文件内容,自动解析出节点列表和路由规则。如果订阅返回的是Clash标准YAML格式,导入即可直接使用;如果返回的是Base64编码格式,ClashVergeRevv2.5.x及以上版本支持自动转换,无需额外工具。非Clash格式订阅的转换方法部分服务商提供的订阅链接可能返回SS/SSR/V2Ray等其他协议的节点列表格式,而非ClashYAML配置。这种情况需要通过订阅转换工具(如subconverter)将原始订阅转换为Clash标准格式。用户将非Clash格式的链接粘贴到转换工具中,选择输出格式为Clash,转换后即可在Clash客户端中导入使用。转换工具也可以将多个不同格式的订阅合并为一个Clash配置文件。配置文件中的节点信息结构Clash订阅配置文件包含三个核心部分:proxies定义节点(含服务器地址、端口、协议类型和加密参数)、proxy-groups定义策略组(如手动选择、自动测速切换)、rules定义路由规则。用户导入订阅后,Clash自动解析这些内容并在客户端界面中展示节点列表和策略组,用户无需理解底层配置即可选择节点开始使用。获取订阅链接的实操步骤从付费服务商获取订阅登录服务商网站后进入用户面板的“订阅”页面,找到Clash格式的订阅链接并复制。打开ClashVergeRev等客户端,进入订阅管理页面点击“添加”,粘贴订阅URL并设置名称和更新间隔(推荐24小时),点击导入后客户端会自动下载节点列表并解析。切换到代理页面即可看到所有可用节点和策略组,选择节点后开启系统代理即可使用。从GitHub免费项目获取订阅在GitHub上搜索“clash免费订阅”或“clash-subscription”等关键词找到相关项目,在README文档中找到Clash订阅地址。推荐使用CDN加速链接以获得国内更稳定的访问速度。复制订阅地址后在Clash客户端中按相同方式添加,更新后即可获取公开的免费节点列表。需要注意的是,部分免费订阅链接本身可能被网络限制,可以尝试使用项目提供的反代或CDN加速地址。订阅更新的维护建议无论使用哪种来源的订阅链接,都建议在客户端中设置自动更新间隔。付费订阅通常每24小时更新一次即可,免费订阅由于节点失效较快,可缩短更新间隔至每6小时或手动频繁刷新。如果订阅链接在客户端中更新失败,可以先在浏览器中打开链接确认是否返回正常内容,排除链接本身失效的可能性。对于GitHub上的免费订阅项目,如果项目停止维护或账号被注销,订阅链接将完全失效,需要寻找替代来源。常见问题FAQ

教程

Clash中secret密钥不设置会有什么安全风险吗?

在Clash中设置secret密钥之前,首先检查配置文件中是否已存在secret字段,没有的话在external-controller同级位置添加secret:"强密码",密钥应至少包含16个大小写字母、数字和特殊字符的组合,避免使用常见词汇或简短密码。修改保存后重启Clash使配置生效。如果使用图形化客户端,检查General或设置页面中是否有Secret输入框,有的话直接填写即可。生效后访问管理面板Yacd或Metacubexd时会弹出密钥输入提示,填入密钥才能查看节点和状态信息。对于自动化脚本中的API请求,需要在HTTP头部添加Authorization:Bearer密钥才能正常调用。如果之前没有设置secret且管理接口绑定在0.0.0.0,建议同时将监听地址改回127.0.0.1,减少局域网内的暴露面。对于仍在使用原版ClashforWindowsv0.20.12及更早版本的用户,设置secret可以关闭CVE-2023-26190漏洞的主要攻击路径,但更彻底的方案是备份订阅链接后迁移到ClashVergeRev等仍在维护的新版本客户端。日常使用中如果发现http://127.0.0.1:9090/version无需任何认证就能返回信息,说明管理接口处于开放状态,应尽快按上述步骤设置secret。如果长期不需要使用管理面板,也可以注释掉external-controller字段彻底关闭API接口,从根本上消除攻击面。未授权API访问:管理接口缺乏认证保护external-controller接口的默认开放状态当Clash配置文件中未设置secret字段时,external-controller管理接口默认处于完全开放状态。这意味着任何能够访问该IP地址和端口的人或程序,都可以通过RESTfulAPI获取Clash的运行状态、查看节点列表、切换代理节点甚至修改配置。在单机使用场景中,管理接口通常绑定在127.0.0.1,只有本机进程可以访问,风险相对可控。但一旦管理接口被绑定到0.0.0.0或局域网IP,同一网络下的任何设备都可以直接调用管理API,无需任何认证。CORS跨域请求带来的浏览器风险Clash的external-controller接口存在CORS(跨域资源共享)配置问题——它允许来自任意来源的跨域请求,这是浏览器安全机制中的“宽松”策略。当用户在使用Clash的同时浏览恶意网页时,该网页中的JavaScript代码可以向http://127.0.0.1:9090发送请求,调用Clash的管理API。由于管理接口没有secret认证,这些跨域请求会被Clash正常处理,攻击者可以在用户完全不知情的情况下通过浏览器操作Clash的全部功能。未认证接口的信息泄露风险未设置secret的管理接口不仅允许操作,也允许查询。攻击者可以通过GET/proxies接口获取当前所有节点名称、类型和服务器地址信息,通过GET/connections查看用户正在访问哪些网站和使用的代理节点。这些信息组合在一起可以还原出用户的网络行为模式,甚至通过节点名称推断出代理服务商的部署架构。虽然节点密码等敏感字段不会直接暴露,但服务器地址和端口信息已经构成了相当程度的攻击面情报。远程命令执行漏洞的历史教训CVE-2023-26190漏洞的成因与影响ClashforWindows在未设置secret的情况下曾存在CVE-2023-26190远程命令执行漏洞。攻击者通过构造恶意网页,利用未认证的API接口向Clash写入恶意配置文件,再借助配置加载机制触发命令执行。该漏洞影响ClashforWindowsv0.20.12及更早版本,攻击者可以在用户浏览网页时在后台执行任意系统命令,完全控制目标电脑。虽然该漏洞在后续版本中已修复,但继续使用未设置secret的旧版本Clash仍然存在被利用的可能。CVE-2024-27316漏洞与XSS攻击链后续发现的CVE-2024-27316漏洞进一步暴露了secret未设置的安全隐患。该漏洞允许攻击者通过XSS(跨站脚本)攻击方式注入恶意脚本,在用户访问恶意网站时触发Clash的配置修改和命令执行。攻击链的核心同样是利用了未认证的管理API和CORS宽松配置。未设置secret相当于关掉了Clash管理接口的最后一道大门,使得这类攻击路径畅通无阻。漏洞修复与版本升级的重要性上述漏洞在ClashforWindowsv0.20.13及更高版本中已得到修复,修复方案包括加强API认证要求和限制CORS来源。但修复仅针对后续版本生效,继续使用旧版本且未设置secret的用户仍然面临完全相同的风险。对于已停止维护的原版ClashforWindows,即使升级到最新版本也无法获得后续安全更新,最彻底的解决方案是迁移到仍在活跃维护的ClashVergeRev等新客户端。局域网内未授权使用与流量盗用绑定到0.0.0.0时的暴露风险如果将external-controller绑定到0.0.0.0:9090以实现远程管理,且未设置secret密钥,则整个局域网内的任何设备都可以访问该管理接口。同一WiFi下的室友、同事或公共网络中的其他用户都可以通过端口扫描发现该服务,然后直接调用API切换节点或获取配置信息。代理节点流量可能被他人盗用,策略组设置可能被恶意篡改,用户却无法追溯到操作源头。恶意脚本自动发现与攻击局域网中可能存在自动化的扫描脚本,专门探测开放的管理端口并尝试调用API。未设置secret的Clash管理接口会被这些脚本迅速识别,随后被纳入攻击目标池。脚本可以在数秒内完成节点切换、配置篡改等一系列操作,用户甚至可能没有察觉到任何异常,因为Clash本身仍正常运行,只是流量被导向了攻击者指定的节点。这种隐蔽性使得用户很难在第一时间感知到安全事件的发生。管理接口的探测与滥用成本在未设置secret的情况下,调用Clash管理API不需要任何凭证,攻击者只需发送正确的HTTP请求即可。这意味着攻击的技术门槛极低,任何具备基础网络知识的人都可以通过curl命令或浏览器开发者工具完成操作。相比之下,设置secret后攻击者必须先破解或窃取密钥才能进行任何操作,攻击成本大幅上升。配置篡改与节点替换的潜在危害节点列表被恶意替换的后果攻击者通过未认证的API可以修改Clash的策略组配置,将用户选中的节点替换为攻击者控制的节点。当用户访问境外网站时,流量实际上被导向了攻击者的服务器,而用户看到的节点名称可能仍然显示为熟悉的名称。这种“中间人”攻击模式下,攻击者可以记录用户访问的所有网站、窃取登录凭证和敏感信息,甚至对流量内容进行篡改后返回给用户。代理规则被篡改导致流量泄露攻击者还可以通过API修改Clash的路由规则,将原本应该走代理的境外流量改为直连。这种操作可能导致用户的真实IP地址暴露给境外网站,在需要保护隐私的场景中构成严重风险。同样,攻击者也可以修改规则让特定网站的流量被日志记录或重定向到钓鱼网站。由于Clash在规则修改后仍正常运行,用户很难察觉到规则已被悄然变更。配置文件的持久化篡改某些版本的Clash允许通过API直接修改配置文件并保存到磁盘。攻击者可以写入包含恶意节点或危险规则的配置文件,并设置开机自动加载。即使Clash重启或被用户重置,恶意配置仍然存在,形成持久化的后门。未设置secret且允许API写操作的情况下,这种风险尤为突出。图形客户端自动生成的默认配置情况ClashforWindows的默认行为原版ClashforWindows在首次安装后,默认配置文件中通常不包含secret字段,管理接口绑定在127.0.0.1:9090。这意味着管理接口仅在本地可访问且未设认证,但CORS漏洞使得浏览器中的恶意网页仍然能够通过127.0.0.1发起跨域请求。用户如果不手动添加secret字段,就始终处于这种默认开放状态。ClashVergeRev的安全性改进ClashVergeRev等新版本客户端在安全性方面有所改进,部分版本默认生成带随机密钥的配置文件,或在启动时自动为管理接口分配随机secret。但仍然存在部分版本或用户自定义配置中未设置secret的情况。用户可以检查配置文件确认是否存在secret:"xxx"字段,如果不存在则需要手动添加以提高安全性。用户主动配置与默认配置的差异大多数用户导入的订阅配置中通常不包含secret相关字段,用户的配置是订阅文件内容与客户端默认配置的合并结果。如果用户从未主动在配置文件中添加secret,那么该字段就是缺失状态。用户需要意识到默认配置不代表安全配置,主动设置secret是对自身安全负责的必要操作。正确设置secret密钥的操作方法在配置文件中添加secret字段在Clash的config.yaml配置文件中,在顶层位置添加secret:"你的强密码"字段即可启用API认证。密钥建议使用长度至少16位的随机字符串,包含大小写字母、数字和特殊字符的组合,例如secret:"k8#mP2$qL9@nR5^wX3z"。避免使用123456、password等常见弱密码。添加后保存文件,重启Clash使配置生效。之后所有API请求和面板连接都需要携带该密钥才能通过认证。图形客户端中的secret配置入口在ClashforWindows中,可以在General页面找到“Secret”输入框,直接填写密钥即可生效,无需手动编辑配置文件。ClashVergeRev用户可能在设置页面或配置编辑入口中修改,具体位置因版本而异。部分客户端在首次启动时会自动生成随机密钥并在界面中显示,用户可以记录或修改该密钥。如果客户端界面中没有显式的secret配置入口,则仍需要通过编辑配置文件的方式添加。密钥变更后的同步更新修改或新增secret密钥后,所有使用该管理接口的工具都需要同步更新密钥配置。浏览器中的Yacd或Metacubexd面板在连接时会要求输入密钥,需要更新为新的密钥值。自动化脚本中的curl请求也需要在Authorization头部中更新为新的密钥。如果在面板中输入旧密钥或未携带密钥,API会返回401Unauthorized错误,Clash拒绝提供服务,确保未授权请求被正确拦截。secret未设置时的应急加固措施立即检查当前配置状态用户可以通过在浏览器中访问http://127.0.0.1:9090/version测试管理接口是否可访问。如果返回了包含版本信息的JSON响应,说明管理接口已启用且未设置secret(或面板未携带正确密钥)。如果返回401错误或连接拒绝,则说明管理接口可能已被保护或未启用。这是快速判断当前安全状态的最直接方式。临时关闭external-controller如果暂时无法设置secret但担心安全风险,可以直接在配置文件中注释掉或删除external-controller字段,重启Clash后管理接口即被关闭。这样虽然失去了远程管理能力,但完全消除了API暴露带来的风险。在需要管理面板时再临时开启并设置密钥,使用完毕后再次关闭。这种“按需开启”的方式适合对安全管理要求较高的场景。迁移到仍在维护的新版本客户端对于仍在使用原版ClashforWindows等已停更客户端的用户,最根本的安全加固措施是迁移到ClashVergeRev等仍在活跃维护且默认安全策略更强的分支版本。新版本客户端不仅修复了已知的CVE漏洞,部分版本还默认启用随机secret或提供了更直观的安全配置入口。迁移时只需将订阅链接导入新客户端即可,配置文件无需完全重写。常见问题FAQ

教程

Clash中external-controller API接口是干什么用的?

external-controller是Clash内置的管理API接口,通过该接口可以实现对Clash运行状态的完整控制,包含节点切换、配置重载、连接监控和流量统计等核心管理功能。在配置文件中将external-controller设置为127.0.0.1:9090即可启用该接口,需要远程管理时改为0.0.0.0:9090并配合secret密钥提高安全性。接口启用后,在浏览器中访问http://127.0.0.1:9090/ui可以加载Yacd或Metacubexd等管理面板,实现图形化的节点管理和流量查看。在命令行环境中,通过curl-XGEThttp://127.0.0.1:9090/proxies可以查询当前所有策略组和节点的状态,通过curl-XPUT-d'{"name":"节点名"}'http://127.0.0.1:9090/proxies/策略组名可以实时切换节点而无需重启Clash或编辑配置文件。如果管理面板无法连接,首先检查http://127.0.0.1:9090/version能否返回JSON响应,如果不能则说明external-controller未正确启用或端口被占用。基本定义:RESTfulAPI管理接口接口在配置文件中的声明方式external-controller是Clash配置文件中用于启用RESTfulAPI管理接口的顶层字段,通过指定IP地址和端口号来定义管理服务的监听地址。典型的配置写法为external-controller:127.0.0.1:9090,表示管理接口监听在本机回环地址的9090端口上。配置该字段后,Clash核心会启动一个HTTP服务器,对外提供RESTfulAPI接口,允许外部程序通过HTTP请求查询和修改Clash的运行状态。如果配置文件中未声明该字段,Clash默认不会开启管理接口。管理接口的核心功能定位external-controller提供的API接口是Clash与外部管理工具之间的桥梁,它允许用户在不直接修改配置文件或重启Clash的情况下,动态调整代理的运行参数。通过这个接口可以获取当前节点列表、切换选中的节点、查看实时连接状态、更新订阅配置以及获取流量统计信息。这个接口的存在使得Clash能够被图形化管理面板(如Yacd、Metacubexd)或自动化脚本所控制,是Clash可运维性的核心组件。RESTfulAPI的基本调用方式RESTfulAPI通过标准的HTTP方法(GET、POST、PUT、DELETE)进行调用,请求路径对应不同的管理功能。例如GET/proxies请求可以获取所有策略组和节点的信息,PUT/proxies/策略组名可以切换策略组中的选中节点。请求返回的数据格式为JSON,便于程序解析和处理。如果需要通过命令行快速查询Clash状态,可以使用curl命令直接调用这些API接口而无需打开图形界面。在配置文件中的标准配置与参数说明监听地址与端口的选择策略external-controller字段的配置格式为IP:端口,其中IP地址决定了管理接口监听在哪个网络接口上。设置为127.0.0.1:9090时,管理接口仅允许本机访问,外部设备无法连接,这是默认且最安全的配置。设置为0.0.0.0:9090时,管理接口监听所有网络接口,局域网内的其他设备也可以通过本机的局域网IP访问管理面板,适合需要在手机或平板上管理Clash的场景。端口号可以选择任意未被占用的端口,推荐使用9000以上的端口避免与常用服务冲突。secret密钥参数的安全配置external-controller接口可以配合secret字段设置访问密钥,增强管理接口的安全性。在配置文件中添加secret:"自定义密码"后,所有访问管理接口的请求都需要在HTTP头部携带Authorization:Bearer自定义密码才能通过认证。如果没有设置secret,管理接口默认不设防,任何能访问该IP和端口的人都可以获取和修改Clash的配置信息。在生产环境或局域网共享场景中,强烈建议设置secret密钥以防未授权访问。配置修改后的生效方式修改external-controller或secret字段后,需要让Clash重新加载配置才能生效。在图形客户端(如ClashforWindows)中修改配置文件保存后,客户端通常会自动重载配置。在命令行或systemd服务方式下,需要重启Clash进程或发送SIGHUP信号触发配置重载。修改生效后,可以通过访问http://127.0.0.1:9090/version测试API是否可访问——如果返回包含版本信息的JSON响应,说明管理接口已正常启动。API接口的核心功能与常用调用场景获取和切换代理节点通过external-controller接口,用户可以无需打开客户端界面就能获取节点列表和切换节点。调用GET/proxies可以获取所有策略组的详细信息,包括每个策略组下的可选节点列表和当前选中的节点。调用PUT/proxies/{策略组名}并在请求体中指定新的节点名称,可以实时切换该策略组使用的节点。这种操作方式非常适合集成到自动化脚本中,例如根据时间段自动切换节点或结合网络质量监测实现故障转移。查询实时连接状态与流量统计GET/connections接口可以获取当前所有活跃的网络连接信息,包括每个连接的目标地址、使用的代理节点、传输的数据量以及连接持续时间。这个接口是图形化管理面板展示实时流量图的底层数据来源。GET/traffic接口提供实时的流量速率统计,返回每秒的上传和下载速率数据,可用于制作流量监控看板。这些接口在排查网络问题或监控代理使用情况时非常有用,比登录服务器查看日志更加直观高效。管理配置与触发订阅更新PUT/configs接口允许在不重启Clash的情况下动态更新配置,请求体中携带新的配置内容即可完成热加载。POST/configs接口触发Clash重新加载现有配置,适用于订阅链接已更新但Clash未自动拉取的情况。通过这些接口可以实现配置的自动化管理——例如编写定时任务从订阅链接拉取最新配置,然后通过API推送到正在运行的Clash实例中,实现无需人工介入的配置更新。图形化管理面板的访问方式Yacd面板的部署与访问Yacd(YetAnotherClashDashboard)是最常用的Clash图形化管理面板之一,通过external-controller接口与Clash核心通信。用户可以通过浏览器访问http://127.0.0.1:9090/ui来加载Yacd面板(前提是面板文件已放置在Clash配置目录的ui子目录中)。如果Clash配置中未包含UI静态文件,也可以从GitHub下载Yacd的发布版本,解压到配置目录中。面板加载后会自动连接external-controller接口,展示节点列表、连接状态和流量信息。Metacubexd面板的接入方式Metacubexd是ClashMeta生态中推荐的现代化管理面板,支持更丰富的节点信息和流量展示。接入方式与Yacd类似,需要将面板静态文件下载到Clash配置目录的ui文件夹中,Clash会自动托管这些文件并通过external-controller接口提供数据。Metacubexd面板在ClashVergeRev等新版客户端中已经内置,用户无需手动部署即可通过菜单栏的“Dashboard”或“管理面板”入口直接访问。在浏览器输入http://127.0.0.1:9090/ui如果页面能正常加载,说明面板已正确配置。面板连接失败时的排查要点访问管理面板时如果显示“连接失败”或“无法连接到API”,首先检查external-controller是否已在配置文件中正确配置且Clash正在运行。确认http://127.0.0.1:9090/version能否返回JSON响应,如果不能则说明管理接口未正常启动或端口被其他服务占用。如果配置了secret密钥,需要在面板的设置页面中填入正确的密钥才能完成认证。端口号与配置文件中的声明不一致也是常见原因,检查面板配置中的APIBaseURL是否与配置文件中的external-controller端口匹配。通过命令行工具调用API接口使用curl命令获取代理状态curl是最常用的命令行API调用工具,可以直接从终端查询和修改Clash状态。curl-XGEThttp://127.0.0.1:9090/proxies会返回所有策略组的完整信息,包括节点列表和当前选中节点。curl-XGEThttp://127.0.0.1:9090/proxies/策略组名可以查看特定策略组的详细信息。如果设置了secret密钥,需要在请求中添加-H"Authorization:Bearer你的密钥"头部进行认证。这些命令在服务器运维场景中可以快速确认代理状态,不需要登录图形界面。使用PUT请求切换代理节点通过curl发送PUT请求可以实时切换策略组中的节点。命令格式为curl-XPUT-H"Content-Type:application/json"-d'{"name":"节点名称"}'http://127.0.0.1:9090/proxies/策略组名,其中节点名称必须是该策略组proxies列表中存在的节点名。执行成功后,Clash会立即将所有匹配该策略组的流量切换到指定的节点。这种操作方式在自动化脚本中非常实用,可以实现基于规则或时间表的自动节点切换。使用API进行自动化脚本编写external-controller接口提供了完整的自动化管理能力,用户可以将多个API调用组合成脚本实现复杂的运维逻辑。例如编写Shell脚本定期调用GET/proxies获取所有节点的延迟信息,当检测到当前节点延迟过高时自动切换到延迟最低的节点。或者编写脚本在订阅更新后自动调用POST/configs让Clash重新加载配置。这种自动化能力将Clash从纯手工操作的工具提升到了可编程管理的平台层面。安全配置与公网暴露防护绑定到127.0.0.1的本地访问限制将external-controller设置为127.0.0.1:9090是限制访问的最直接方式,这样管理接口只能被本机进程访问,外部网络无法连接。这是最安全的基本配置,适用于单机使用且不需要远程管理的场景。即使是本机访问,如果系统中存在其他恶意进程,理论上也可以探测并调用该接口,因此仍需考虑额外安全措施。secret密钥的强制启用无论是否将管理接口绑定到127.0.0.1,都强烈建议为external-controller设置secret密钥。密钥应使用强密码(长度大于16位,包含大小写字母、数字和特殊字符),避免使用常见的弱口令。设置了密钥后,所有API请求都需要携带正确的认证头信息,即使管理接口被错误地暴露到公网,攻击者在没有密钥的情况下也无法执行任何操作。某些版本的Clash客户端在面板连接时会要求输入密钥,输入正确后才能加载数据。通过Nginx反向代理增加认证层对于需要远程管理Clash的场景,可以使用Nginx作为反向代理在external-controller之前增加一层认证。Nginx可以配置HTTP基本认证或更复杂的认证方式,并将请求转发到Clash的管理接口。这种方式的优势在于可以利用Nginx更强大的访问控制能力(如IP白名单、限流、请求日志等),同时避免将Clash的管理接口直接暴露在网络中。配置时需要注意Nginx与Clash之间的通信路径,确保两者在同一网络可达。常见问题FAQ

教程

Clash中allow-lan参数是什么意思?开启后有什么用?

allow-lan开启后如果想让同一WiFi下的手机通过电脑代理上网,先在电脑上运行Clash并确保配置文件中的allow-lan为true且bind-address为"*",然后查看电脑在局域网中的IP地址。在Windows系统中打开命令提示符执行ipconfig,找到当前网络适配器的IPv4地址;macOS用户进入系统设置的网络部分查看IP;Linux用户执行ipaddr命令。确认IP地址后,在手机的系统WiFi设置中选择当前连接的网络,进入高级选项,将代理模式设为手动,代理服务器地址填写电脑的IP,端口填写7890。保存设置后打开手机浏览器访问一个测试网站,如果能正常加载且出口IP显示为代理节点的IP,说明共享配置已经成功。如果连接失败,检查Windows防火墙或macOS防火墙是否阻止了入站连接,需要为Clash添加允许入站规则放行7890端口。如果电脑的IP地址是动态分配的,可能每隔一段时间会变化,可以考虑在路由器中为电脑设置静态IP分配或DHCP固定IP,避免需要频繁更新手机上的代理设置。不使用时建议将allow-lan设回false以避免不必要的安全风险。参数定义:控制局域网设备能否连接本地代理参数在配置文件中的声明方式与默认值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端口,从而实现境外游戏更新或特定服务的加速访问。这种方式在SteamDeck等移动掌机的手动网络配置中也有实际应用,无需在设备上安装复杂软件。配置要点与正确写法标准配置示例与各字段含义正确的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重新加载配置才能使新设置生效。在图形化客户端(如ClashforWindows)中,可以直接在General页面点击“AllowLan”开关,客户端会自动修改配置文件并重载,无需手动编辑文件。在配置文件中手动修改后,需要重启Clash核心或执行配置重载操作。修改后可以用局域网内其他设备尝试连接本机的IP加端口来验证是否配置成功——在另一台设备上打开浏览器,将代理设置为本机IP和7890端口,访问测试网站如果能够加载说明配置成功。安全风险与防护建议公共WiFi环境下开启的风险在公共WiFi网络(如咖啡馆、酒店、机场等)中开启allow-lan存在显著的隐私和安全风险。同一网络中的其他用户可以通过端口扫描发现Clash代理服务,如果代理未设置认证机制,任何人都可以使用该代理进行网络访问,代理服务商的套餐流量可能被他人盗用。更为严重的是,未经加密的HTTP代理流量在局域网内传输时可能被截获,导致浏览记录等敏感信息泄露。在公共网络环境中,除非绝对必要,否则不应开启allow-lan。通过防火墙限制访问来源IP如果需要在公共网络中开启allow-lan,可以通过操作系统防火墙限制只允许特定IP地址的入站连接。在Windows高级防火墙中添加入站规则时,在“作用域”选项卡中指定只允许特定的局域网IP地址(如自己的手机IP)访问Clash端口。这种方式比完全开放更加安全,即使开启了allow-lan,也只有被授权的设备才能连接代理。在家庭网络中,如果担心其他家庭成员误用代理,也可以采用同样的方式限制。代理认证机制的启用部分Clash分支支持代理认证功能,可以为代理服务设置用户名和密码。开启认证后,其他设备连接代理时需要提供正确的认证凭据,否则请求被拒绝。但原版Clash核心和ClashMeta核心对代理认证的支持程度不同,部分版本可能不支持或在特定协议下不支持认证。目前更安全的方式仍是通过防火墙控制访问来源,而不是依赖代理协议本身的认证机制。Windows系统防火墙配置指引允许Clash通过防火墙的入站通信在Windows系统中开启allow-lan后,如果其他设备连接失败,最常见的原因是WindowsDefender防火墙阻止了入站连接。进入“控制面板”->“WindowsDefender防火墙”->“允许应用或功能通过防火墙”,如果Clash不在列表中则点击“更改设置”并“允许其他应用”,浏览找到Clash的可执行文件添加。添加时需要同时勾选“专用”和“公用”网络类型,或者至少确保当前网络类型对应的复选框被勾选。添加完成后保存,其他设备应可正常连接。高级防火墙规则配置如果需要更精细的控制,可以进入“高级安全WindowsDefender防火墙”添加入站规则。在入站规则中新建规则,选择“端口”,在特定本地端口中填写Clash的监听端口(如7890、7891),选择“允许连接”,然后在“作用域”中指定远程IP地址范围。例如如果只允许192.168.1.0/24网段的设备连接,则在作用域的远程IP地址中输入该网段。这种方式比直接允许所有连接更加安全,推荐在需要局域网共享时使用。防火墙配置变更后的验证防火墙规则变更后,可以用另一台局域网设备通过telnet本机IP7890命令测试端口是否可达,如果连接成功说明防火墙已放行。在手机上设置代理为本机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终端中设置环境变量exporthttp_proxy=http://宿主机IP:7890和exporthttps_proxy=http://宿主机IP:7890,其中宿主机IP可以通过cat/etc/resolv.conf查看nameserver来获取。设置完成后,在WSL2中执行curlhttps://www.google.com测试是否通过代理访问成功。如果WSL2重启后IP变化,可以在~/.bashrc中动态获取IP。游戏主机代理接入配置游戏主机连接Clash代理时,获取电脑的局域网IP地址,记录Clash监听的HTTP端口(7890)。在游戏主机的网络设置中选择手动配置代理,输入HTTP代理地址为电脑IP和7890端口,部分游戏主机还支持SOCKS5代理,对应端口为7891。配置完成后在游戏主机中访问网络测试功能确认连通性,如果测试失败,检查防火墙是否放行端口以及Clash是否已开启allow-lan。常见问题FAQ

教程

Clash配置文件里的port和socks-port分别是什么?

Clash配置文件中的port和socks-port是两个独立的监听端口,分别对应HTTP/HTTPS代理和SOCKS5代理服务,默认值分别为7890和7891。查看当前端口值可以在ClashforWindows的General页面直接看到,ClashVergeRev用户则需要在配置文件的编辑入口中查看port和socks-port字段的具体数值。修改端口时先在配置文件中找到对应的字段并更改数值,保存后让Clash重新加载配置。浏览器和系统代理的端口配置应填写7890,应用程序中如果支持SOCKS5代理则填写7891。如果希望简化配置,可以使用mixed-port字段让同一个端口同时提供两种代理服务。修改端口后注意检查防火墙是否放行了新端口,以及所有使用代理的应用是否同步更新了端口配置,避免因端口号不匹配导致代理连接失败。如果修改端口后遇到问题,回到配置文件中确认端口声明是否正确,以及是否有其他应用占用了新端口。port是HTTP/HTTPS代理端口端口负责接收HTTP协议的代理请求Clash配置文件中的port字段定义了HTTP和HTTPS代理服务的监听端口,默认值为7890。这个端口专门负责处理浏览器、支持HTTP代理的应用程序以及通过系统代理设置走HTTP协议的网络请求。当用户在浏览器或系统网络设置中配置代理服务器地址为127.0.0.1:7890时,所有HTTP/HTTPS流量就会被引导到Clash客户端,由Clash根据规则决定是转发到代理节点还是直接连接。这是最常用的代理端口,覆盖了绝大多数日常上网场景。系统代理设置通常使用port端口在Windows、macOS和Linux的系统网络设置中配置代理时,填写的端口号通常对应的是Clash的port字段。系统代理本身是基于HTTP协议的,因此系统将网络请求发送到Clash的HTTP代理端口,Clash再根据配置文件中的规则进行流量路由。用户在Clash客户端界面中看到的“系统代理”开关,本质上就是将系统的代理地址设置为127.0.0.1:7890,让所有遵循系统代理设置的应用自动走Clash的HTTP代理通道。port端口与HTTPS流量的处理值得注意的是,虽然字段名称为port(HTTP端口),但它同时也处理HTTPS加密流量的代理转发。当浏览器访问HTTPS网站时,请求首先通过HTTP代理协议与Clash建立连接,然后Clash将加密的HTTPS流量通过代理节点转发到目标服务器。因此用户不需要为HTTP和HTTPS分别配置不同的端口,一个port端口就能同时覆盖两种协议。如果配置文件中未声明port字段,Clash可能无法正常启动代理服务。socks-port是SOCKS5代理端口SOCKS5协议的特点与端口职责socks-port字段定义了SOCKS5代理服务的监听端口,默认值为7891。SOCKS5是一种更底层的代理协议,与HTTP代理不同,它不关心传输内容的具体格式,支持TCP和UDP流量的转发,也支持域名解析的代理。它适用于需要代理TCP/UDP流量的应用场景,比如即时通讯软件、游戏客户端、FTP传输以及那些不遵循系统HTTP代理设置的应用程序。将应用的SOCKS代理地址配置为127.0.0.1:7891即可使用Clash的SOCKS5代理功能。SOCKS5相比HTTP代理的优势SOCKS5代理在协议层面比HTTP代理更加通用。HTTP代理只能处理HTTP和HTTPS协议的请求,而SOCKS5可以代理任何基于TCP或UDP的流量,包括但不限于FTP、SMTP、远程桌面等非HTTP协议。SOCKS5还支持UDP转发,这对于需要低延迟的实时通信应用(如VoIP、在线游戏)尤为重要。在Clash中,socks-port为用户提供了HTTP代理无法覆盖的更多应用类型的代理支持,是补充port功能的重要配置项。SOCKS5与HTTP代理的并存价值很多应用开发者在设计网络功能时会优先支持SOCKS5代理,因为它对应用层的协议没有限制,实现起来更加灵活。终端命令行工具如curl可以通过--socks5参数使用SOCKS5代理,即时通讯软件如Telegram支持SOCKS5代理配置,部分下载工具也优先支持SOCKS5。port和socks-port两个端口并存的设计,使得Clash能够同时满足HTTP协议应用和更广泛应用类型的代理需求,用户根据应用支持情况灵活选择使用哪个端口。混合端口mixed-port的多协议复用mixed-port的配置方式与默认值Clash还提供了mixed-port字段,允许用户在同一个端口上同时提供HTTP/HTTPS和SOCKS5两种代理服务。如果配置文件中设置了mixed-port:7890,则port和socks-port可以省略,Clash会在该端口上同时接收HTTP代理请求和SOCKS5代理请求,并自动识别协议类型进行相应处理。这种混合模式简化了代理配置,用户只需要记住一个端口号即可满足两种协议的需求。新版本的Clash核心对混合端口的支持已较为成熟,越来越多的用户开始采用这种简化配置方式。混合端口的适用场景与局限性混合端口特别适合需要在不同应用之间频繁切换代理协议的场景——用户只需在各类应用的代理配置中统一填写同一个地址和端口,应用会自动选择合适的协议。但部分老旧应用对混合端口的兼容性不如单独端口稳定,如果某个应用通过混合端口连接Clash时出现频繁断开或连接失败的情况,可以尝试切回标准的port和socks-port分置方案,分别使用7890和7891两个独立的端口。混合端口的适用性在不同客户端和核心版本中略有差异。混合端口与单独端口的对比选择使用混合端口可以减少配置文件中的字段数量,降低配置复杂度和端口管理成本。但使用单独端口时,用户可以更清楚地从端口号上区分流量来源——7890端口的连接来自HTTP应用,7891端口的连接来自SOCKS5应用,在排查问题时更容易定位。对于大多数普通用户来说,混合端口足够稳定且更加便捷;对于需要精细化流量管理的进阶用户,单独端口提供了更清晰的区分度。端口在界面中的查看与修改ClashforWindows中的端口显示在ClashforWindows的General(常规)页面中,Port和SocksPort会直接显示在界面顶部区域,用户可以在界面上看到当前监听的端口号。点击端口数字可以直接复制端口号,方便在浏览器或应用中粘贴配置。界面中还会有一个终端图案按钮,点击后可以打开一个已经配置好代理环境变量的命令行窗口,方便在不手动设置代理的情况下直接使用终端命令通过代理访问外部网络。ClashVergeRev等新客户端的端口配置入口在ClashVergeRev等新版本图形客户端中,端口设置通常在配置文件的编辑功能中调整,而非直接在界面上提供独立的端口输入框。用户需要进入设置页面找到配置编辑入口,在YAML配置文件中手动修改port和socks-port或mixed-port字段的值,保存后客户端会自动重新加载配置使新端口生效。部分版本可能在“代理设置”或“网络设置”区域提供了可视化端口输入框,具体位置因客户端版本而异,如果找不到可优先使用配置文件编辑方式。修改端口后的生效与验证修改配置文件中的端口号后,需要让Clash重新加载配置才能生效。在ClashforWindows中可以在General页面点击“GeneralYML”编辑保存后客户端自动重载,或者通过重启客户端强制加载新配置。在ClashVergeRev中修改配置文件保存后,客户端通常会检测到变化并提示“配置已更改,是否重新加载”,点击确认即可生效。如果修改后网络连接异常,先检查客户端状态栏是否显示了正确的端口号,再确认防火墙是否放行了新的端口。端口对应的应用配置指南系统代理中的端口配置在Windows系统中,进入“设置”->“网络和Internet”->“代理”,在手动设置代理部分将地址填写为127.0.0.1,端口填写7890(对应HTTP/HTTPS代理)。macOS用户进入“系统设置”->“网络”->“高级”->“代理”,在HTTP和HTTPS代理中填入相同的地址和端口。这些设置生效后,所有遵循系统代理设置的应用(包括大多数浏览器和桌面软件)会自动通过Clash的HTTP代理端口转发流量。如果使用混合端口,系统代理端口同样填写混合端口的端口号。浏览器扩展中的端口配置使用SwitchyOmega等浏览器代理管理扩展时,在扩展配置中新建一个代理情景模式,协议选择HTTP或SOCKS5,服务器地址填写127.0.0.1,端口根据需求填写7890(HTTP)或7891(SOCKS5)。配置完成后可以在扩展工具栏中一键切换代理模式,比修改系统代理设置更加灵活方便。如果需要在浏览器中同时测试两种协议,可以分别创建HTTP和SOCKS5两个情景模式,在不同场景下快速切换。命令行终端中的端口配置在Linux或macOS终端中,通过设置环境变量exporthttp_proxy=http://127.0.0.1:7890和exporthttps_proxy=http://127.0.0.1:7890可以让支持环境变量的命令行工具使用HTTP代理端口。如果应用只支持SOCKS5代理(如部分IRC客户端或特定网络工具),则需要使用127.0.0.1:7891并设置exportall_proxy=socks5://127.0.0.1:7891。设置完成后用env|grepproxy确认环境变量已生效。如果使用混合端口,环境变量中的端口号填写混合端口的端口值。端口相关的常见故障排查端口被占用导致Clash无法启动如果Clash启动时提示“addressalreadyinuse”或“端口已被占用”,说明7890或7891端口已经被其他应用程序占用,导致Clash无法绑定端口。解决方式有两种:一是通过命令netstat-ano|findstr7890(Windows)或lsof-i:7890(macOS/Linux)查找占用端口的进程并终止;二是修改Clash配置文件中的端口号,改为其他未被占用的端口值(如port:7892),然后重启Clash。建议优先修改端口号,因为终止其他进程可能影响其正常运行。修改端口后防火墙配置的更新修改Clash的监听端口后,如果系统防火墙或第三方杀毒软件之前已为旧端口配置了放行规则,新端口默认可能被防火墙阻止,导致外部应用无法连接到Clash代理。用户需要进入防火墙设置中为新的端口号添加入站和出站规则,允许Clash进程通过该端口通信。对于WindowsDefender防火墙,可以在“高级安全”规则中添加针对Clash可执行文件的新端口放行规则。云服务器场景下还需要在安全组策略中更新端口放行配置。应用配置端口与Clash监听端口不匹配最常遇到的连接问题是应用代理设置中的端口号与Clash实际监听的端口号不一致。如果Clash配置文件中port已改为7892,但系统代理设置中仍填写7890,则网络请求无法到达Clash。用户在修改端口后需要同步更新所有使用Clash代理的应用中的端口配置,包括系统代理设置、浏览器扩展配置、命令行环境变量和各类软件的代理设置。可以在修改完成后用curl-xhttp://127.0.0.1:新端口https://www.google.com测试端口是否可达。常见问题FAQ

教程

Clash配置文件的Mode(规则/全局/直连)怎么选?

在Clash客户端界面选择正确的模式其实比想象中更简单,只需要理解三种模式分别解决什么问题就能快速做出判断。打开ClashVerge或ClashforWindows客户端,在主界面或Home标签页中找到“ProxyMode”或“模式”下拉选择器,默认情况下它处于Rule(规则)状态,这也是绝大多数推荐配置所依赖的模式。日常上网保持Rule模式可以让国内流量直连保证速度、境外流量根据配置走代理,同时节省套餐流量。如果遇到某个特定网站无法访问,可以先切换到Global(全局)模式快速确认问题出在规则还是节点——全局模式下能访问说明是规则配置问题,不能访问则说明节点本身可能有故障。测试完成后及时切回Rule模式,避免国内流量持续消耗套餐资源。在需要访问纯国内业务或暂时不想使用代理时,切换到Direct(直连)模式可以让所有流量直连而不需要关闭Clash客户端,后续只需一键切回Rule即可恢复代理。三种模式在ClashVerge中通过Home界面的ProxyMode下拉菜单即可快速切换。规则模式Rule:日常使用的最佳默认选项规则模式的核心理念与工作机制规则模式是Clash默认推荐的运行模式,它要求配置文件中的路由规则来决定哪些流量走代理通道、哪些流量直连访问。配置文件中的rules段落会按照从上到下的顺序匹配网络请求的域名、IP地址或进程信息,一旦匹配成功就执行对应的处理策略(如Proxy走代理、Direct直连、Reject拒绝)。这种模式的核心价值在于实现了“按需代理”——只有被规则明确指定的境外网站流量才会经过代理节点,国内网站和局域网流量则保持直连。规则模式对国内访问速度和套餐流量的双重优化规则模式最重要的实际优势在于它不会将国内网站的流量错误地送入代理节点。当访问百度、淘宝等国内网站时,Clash会根据规则直接返回直连结果,请求不会经过代理服务器,访问速度与未开启代理时基本一致。同时代理服务商的套餐流量不会被国内访问消耗,用户只需要为真正需要代理的境外网站付费。在日常使用中,这种“该走代理的走代理、该直连的直连”的分流策略是兼顾网络体验和成本控制的最优解。规则模式与PAC模式的相似性及关键差异许多从Shadowsocks等工具迁移过来的用户会将规则模式类比为“PAC模式”,两者的核心思路确实相似——都通过预设规则判断哪些流量走代理。但Clash的规则模式提供了更精细的控制维度:不仅支持域名匹配(DOMAIN/DOMAIN-SUFFIX),还支持IP-CIDR网段匹配、GEOIP国家地区匹配、DST-PORT目标端口匹配甚至PROCESS-NAME进程名称匹配。PAC文件只能做域名层面的判断,而Clash的规则引擎可以覆盖更复杂的路由需求。全局模式Global:所有流量强制走代理全局模式的流量处理方式全局模式将Clash配置文件中所有匹配的流量强制通过代理服务器转发,无论目标是国内还是境外网站,所有网络请求都会先经过Clash再转发到代理节点。在这种模式下,配置文件中的rules规则段落被完全忽略,Clash直接将所有流量视为需要代理的请求。全局模式在配置文件中通过mode:Global声明,用户可以随时在客户端界面切换。全局模式的适用场景与局限性全局模式最典型的适用场景是测试代理服务器的全球连通性和排查规则配置问题——当某个网站在规则模式下无法访问时,切换到全局模式可以快速判断问题出在规则配置还是节点本身。但全局模式有明显的副作用:国内网站的访问也会被强制送入代理通道,导致访问速度变慢且无谓地消耗套餐流量。部分用户反映在全局模式下某些国内网站反而无法正常访问,而切换回规则模式就恢复正常,这正是因为国内流量本不应该走代理通道。全局模式在特定应用场景中的价值对于某些不遵循系统代理设置的命令行工具、游戏客户端或特定软件,在规则模式下它们可能无法被Clash识别和接管。此时切换到全局模式,配合TUN模式可以强制将这些应用的流量也送入代理通道,解决应用无法代理的问题。此外在需要确保所有流量都经过加密通道的场景(如公共WiFi环境下的安全需求)中,全局模式提供了比规则模式更彻底的流量保护。直连模式Direct:完全不使用代理直连模式本质上是“禁用代理”直连模式是三种模式中最容易被误解的选项——它并不是“某些流量直连、某些走代理”的灵活模式,而是要求所有被Clash接管的流量都直接连接目标服务器,完全不经过任何代理节点。在直连模式下,即使配置文件中定义了丰富的节点列表和复杂的规则,它们都不会生效。这相当于告诉Clash“不要使用任何代理,所有流量都按原始路由出去”。直连模式与关闭Clash的区别直连模式并非退出Clash,而是让Clash内核继续保持运行状态,但将流量走向强制设置为直连。在ClashVerge等客户端中,从规则模式切换到直连模式只需要在界面下拉菜单中选择“Direct”,Clash内核依然在后台运行且系统代理/TUN接管状态不变。如果希望彻底释放系统资源并解除Clash对网络设置的全部接管,则需要停止内核(StopKernel)而非切换到直连模式。直连模式的合理使用场景直连模式最适合暂时需要绕过代理的场景——例如需要访问仅限国内IP访问的内部系统、调用国内API接口时希望避免代理带来的额外延迟、或者暂时不想让特定业务流量经过代理但又不希望重新配置规则。切换到直连模式后,当需要恢复代理时只需将模式切换回“规则”即可,Clash内核保持运行状态,无需重新启动。这种快速切换能力比完全退出Clash再重新启动要高效得多。规则与全局的底层差异:配置文件的显式声明三种模式在配置文件中的声明方式Clash的三种运行模式在配置文件中通过mode字段显式声明,位于配置文件的最顶层段落。mode:Rule启用规则路由模式,mode:Global启用全局代理模式,mode:Direct启用直连模式。如果配置文件中未声明mode字段,Clash会默认使用规则模式。在ClashVerge等图形化客户端中,用户可以在主界面一键切换模式,切换后客户端会自动修改配置文件中的mode值并通知Clash核心重新加载配置。规则优先级在执行层面的区别在规则模式下,Clash严格按照rules段落中声明的规则顺序从上到下匹配。域名规则(DOMAIN/DOMAIN-SUFFIX)、IP规则(IP-CIDR/GEOIP)和最终兜底规则(MATCH)共同构成完整的决策链——所有流量都会被逐一匹配,直到命中某条规则并执行对应的处理策略。而在全局模式下,rules段落被完全忽略,Clash直接将所有流量标记为代理。在直连模式下,rules段落同样被忽略,所有流量被标记为直连。规则模式中兜底规则的重要性规则模式的配置文件中必须包含一个兜底规则(MATCH),否则未匹配任何规则的流量会陷入处理异常状态。标准的兜底规则写法是-MATCH,Proxy,表示所有未被前面规则匹配的流量都走代理。这意味着即使用户没有为目标网站配置特定规则,只要兜底规则指向代理,该网站的流量依然会被代理。如果用户希望默认直连、仅特定网站走代理,则将兜底规则写为-MATCH,DIRECT。脚本模式Script:可编程规则的进阶选项脚本模式的工作原理与能力边界部分Clash客户端(如ClashforWindows)提供了脚本模式,允许用户通过JavaScript脚本文件来控制路由决策,而不局限于YAML配置中的静态规则。在脚本模式中,用户编写的脚本可以访问请求的域名、目标IP、进程名称等信息,通过逻辑判断返回Proxy、Direct或REJECT等处理结果。这种模式提供了静态规则无法实现的动态决策能力,例如基于时间、基于请求频率或基于更复杂的组合条件做出路由判断。脚本模式与规则模式的适用场景对比脚本模式适合需要高度定制路由逻辑的进阶用户,例如需要根据当前网络延迟动态切换节点、根据请求来源进程自动分流、或者实现黑白名单的动态维护。但脚本模式的配置复杂度远高于规则模式,且脚本执行本身会带来额外的性能开销。对于绝大多数用户来说,标准规则模式已经足以覆盖日常使用中的所有分流需求,脚本模式更适合需要编程能力的特定场景。普通用户应该优先使用规则模式,仅在有明确脚本需求时才考虑切换。脚本模式的配置方式与风险提示启用脚本模式需要准备一个符合Clash脚本规范的JavaScript文件,在客户端中导入该脚本并切换模式后才能生效。脚本编写错误可能导致所有流量路由异常甚至无法访问网络,因此使用前应在非关键环境中充分测试。大部分用户在日常使用中不需要接触脚本模式,官方文档和社区讨论中将其定位为面向高级用户的可选功能而非推荐选项。结合实际使用场景的选择建议新手用户的模式选择策略对于刚刚接触Clash的新手用户,规则模式是最稳妥且推荐的首选。规则模式能够自动处理国内外流量的分流,避免全局模式导致国内网站访问变慢或直连模式完全无法使用代理。导入代理服务商提供的订阅配置后,通常已经包含了完善的分流规则,用户只需要在客户端中选择“Rule”模式并开启系统代理即可正常使用。除非遇到特定网站在规则模式下无法访问的情况,否则不应该轻易切换到全局模式。故障排查时的模式切换技巧当某个境外网站在规则模式下无法访问时,可以暂时切换到全局模式进行快速验证。如果全局模式下该网站能够正常访问,说明问题出在规则配置而不是节点本身——可能是该域名的匹配规则缺失或顺序不当。此时回到规则模式,检查配置文件中的规则列表是否包含了该域名,或者是否被前面的规则错误地指向了直连或拒绝。如果全局模式下依然无法访问,则问题指向节点状态或网络连通性,需要检查节点是否可用或更换其他节点测试。多场景下的模式组合使用日常办公或浏览场景使用规则模式是最高效的配置——国内网站直连保证速度,境外网站走代理保证可访问性。当需要访问仅限国内IP访问的内部系统或进行网络诊断时,临时切换到直连模式可以快速绕过代理而不需要关闭Clash。当需要测试新节点、排查规则问题,或者确保所有流量都经过加密通道时,临时使用全局模式可以快速验证问题归属。掌握三种模式在不同场景下的快速切换能力,比死守某一种模式更能灵活应对日常使用中的各种变化。常见问题FAQ