首页/教程/命令行启动Clash vpn带哪些参数?
CLASH GUIDE

命令行启动Clash vpn带哪些参数?

约 8 分钟阅读

Clash核心命令行参数包括-d指定配置目录(如./clash -d /etc/clash加载/etc/clash/config.yaml)、-f指定配置文件完整路径(如./clash -f ./config.yaml)、-t测试配置文件格式(如./clash -t -f config.yaml)、-v显示版本信息和-h显示帮助信息。-d-f功能互补,-d适合标准化部署,-f适合灵活测试和配置切换。-t参数在修改配置后用于预验证,避免因配置错误导致服务启动失败。-v确认内核版本是否满足功能需求,-h快速查看所有参数说明。-home-dir-d的别名功能相同,-ext-ui指定外部Dashboard静态文件目录。环境变量(如CLASH_HTTP_PORT)可覆盖配置文件中的端口设置。在systemd服务中通过-d参数指定配置目录实现标准化部署。命令行版本与图形界面客户端使用相同的配置格式,配置文件可互通使用。通过API管理无GUI Clash需在配置文件中启用external-controller,使用curl命令或Dashboard面板进行节点切换和状态查看。

核心启动参数:-d指定配置目录

-d参数的作用与用法

-d参数用于指定Clash的配置目录,Clash会从该目录下加载config.yaml配置文件。执行./clash -d /etc/clash启动Clash,加载/etc/clash/config.yaml作为配置文件。若配置目录中缺少Country.mmdb GeoIP数据库文件,Clash会在启动时自动从网络下载,确保GEOIP规则能正常使用。使用-d参数比-f参数更便于集中管理配置文件,日志和缓存文件也会默认存放在同一目录中,所有Clash相关文件集中在同一位置便于备份和管理。该参数适合将配置文件、GeoIP数据库、日志文件和缓存文件统一管理,是生产环境中推荐的标准启动方式。

-d参数与配置目录结构

Clash vpn配置目录中必须包含config.yaml文件,这是Clash运行的核心配置文件,包含节点、策略组、规则和DNS等全部配置内容。GeoIP数据库文件Country.mmdb可选,缺失时Clash会在启动时自动下载,用于GEOIP规则的IP归属地判断。执行./clash -d /etc/clash后,Clash在/etc/clash目录中查找config.yamlCountry.mmdb。日志文件clash.log和缓存文件cache.db也默认存放在该目录中,便于集中查看和清理。-d参数使所有Clash相关文件集中在同一位置,简化了配置管理和故障排查。

-d参数在systemd服务中的使用

在systemd服务文件中,通过-d参数指定Clash的配置目录是实现标准化部署的标准方式。配置示例为ExecStart=/usr/local/bin/clash -d /etc/clash,Clash启动时加载/etc/clash/config.yaml。若需修改配置,只需编辑/etc/clash/config.yaml后重启服务即可生效。-d参数使得systemd服务文件中不需要指定具体的配置文件路径,配置目录保持不变时服务文件无需修改。

精确指定配置文件:-f参数

-f参数的作用与用法

-f参数用于精确指定Clash加载的配置文件路径,比-d参数更加灵活。执行./clash -f /path/to/config.yaml,Clash加载指定路径的配置文件,忽略默认配置目录中的config.yaml。该参数适合在同一系统中快速切换不同配置文件,例如在测试环境与生产环境之间切换配置,或在多个订阅配置之间快速轮换。-f参数可与-d参数配合使用,但通常单独使用,避免配置目录和文件路径不一致导致的混淆。

-f参数与-d参数的区别

-d参数指定配置目录,Clash从目录中读取默认文件名config.yaml,配置文件名称固定为config.yaml,不能自定义文件名。-f参数直接指定配置文件完整路径,不依赖默认文件名,可使用任意文件名(如test.yamlprod.yaml)。使用-d时配置目录中必须存在config.yaml文件;使用-f时文件路径可自定义,文件名可任意命名,灵活性更高。两者功能互补,-d适合标准化部署,-f适合灵活测试和配置切换。

-f参数在自动化场景中的使用

在自动化脚本或临时配置测试中,-f参数可指定临时配置文件而不影响默认配置,实现配置的热切换而无需覆盖原有文件。执行./clash -f ./temp_config.yaml快速测试新配置,配置目录保持原样,测试完成后删除临时文件即可。-f参数还支持指定备份配置文件或订阅转换后的临时配置文件,适合在配置更新前进行兼容性测试。若需验证配置格式,-t参数与-f配合使用:./clash -t -f ./config.yaml

配置测试:-t参数

-t参数的作用与用法

-t参数用于测试配置文件格式是否正确,不实际启动代理服务,是避免因配置错误导致服务中断的重要工具。执行./clash -t -f /etc/clash/config.yaml,Clash解析配置文件并输出验证结果。若配置文件格式正确,输出Configuration file test passed。若存在YAML格式错误或不支持的规则类型,输出具体的错误信息和行号,帮助用户快速定位和修正配置问题。该参数在修改配置后用于预验证,避免因配置错误导致服务启动失败后反复排查。

-t参数与-d或-f的配合

-t参数可与-d-f参数配合使用,灵活验证不同来源的配置文件。./clash -t -d /etc/clash测试配置目录中的config.yaml,验证默认配置目录中的文件。./clash -t -f ./config.yaml测试指定路径的配置文件,适合验证新配置或测试配置。在自动化部署脚本中,在重启Clash服务前先执行./clash -t -f config.yaml验证配置,通过后再执行systemctl restart clash

-t参数在实际部署中的应用

在无GUI服务器环境中,手动验证配置准确性至关重要,-t参数是配置修改后的必要步骤。在编辑config.yaml后执行./clash -t -f /etc/clash/config.yaml,确认无错误后再启动服务。若-t参数报告错误,根据输出的行号和错误信息修正配置文件。配置错误类型包括YAML缩进问题(yaml: unmarshal errors)、不支持的规则类型(unsupported rule type)和节点名称重复(duplicate name)等。

版本信息与帮助参数

-v显示Clash版本信息

-v参数用于显示Clash内核的版本信息,帮助用户确认当前使用的内核版本。执行./clash -v输出类似Clash version: v1.18.0的版本号信息。版本号对比可确认当前内核是否满足特定功能需求。订阅配置文件或规则集可能要求特定内核版本支持,使用-v可快速确认版本兼容性。

-h显示帮助信息

-h参数显示Clash所有命令行参数的完整说明,包括-d-f-t-v等选项的用途和示例。执行./clash -h输出命令行帮助信息,适合不熟悉Clash命令行的用户快速参考。帮助信息中包括每个参数的简要描述和基本用法示例。

版本兼容性检查

在升级Clash内核或更新配置文件前,使用-v确认当前内核版本是否满足要求。若配置文件使用了新规则类型(如GEOSITE),需Mihomo内核版本不低于v1.18.0。版本不兼容可能导致unsupported rule type错误。

其他命令行参数

-home-dir指定家目录

-home-dir参数指定Clash的家目录,与-d参数功能类似。执行./clash -home-dir /etc/clash./clash -d /etc/clash效果相同,均将配置目录设为/etc/clash。该参数是-d的别名,两者功能完全一致,优先使用-d保持简洁。

-ext-ui指定外部UI目录

-ext-ui参数指定Clash外部Dashboard面板的静态文件目录,用于自定义Web管理面板。执行./clash -ext-ui /path/to/ui指定Dashboard文件路径,通过http://127.0.0.1:9090/ui访问自定义面板。该参数需要external-controller已启用。大多数用户使用在线Dashboard(如YACD)而非本地UI文件。

环境变量配置

Clash部分配置可通过环境变量覆盖,无需修改配置文件。CLASH_HTTP_PORT覆盖port字段,CLASH_SOCKS_PORT覆盖socks-port字段,CLASH_API_SECRET覆盖secret字段。环境变量方式适合容器化部署(如Docker)中通过环境变量动态配置Clash。

常见问题FAQ

Clash命令行启动使用什么参数?

Clash核心支持-d指定配置目录、-f指定配置文件路径、-t测试配置文件格式、-v显示版本信息和-h显示帮助信息。最基本启动命令为./clash -d /etc/clash

-d和-f参数有什么区别?

-d指定配置目录,Clash加载目录中的config.yaml-f直接指定配置文件完整路径,不依赖默认文件名。-d适合标准化部署,-f适合灵活测试和配置切换。

怎么用命令行测试配置文件是否正确?

执行./clash -t -f /etc/clash/config.yaml测试指定配置文件的格式。输出Configuration file test passed表示格式正确;输出具体错误行号和原因则需修正配置文件后重新测试。

命令行启动Clash后如何切换节点?

通过Clash API切换节点,需在配置文件中启用external-controller。使用curl命令调用PUT /proxies/{groupName}接口切换节点,或通过Dashboard面板可视化管理。

使用提醒

请从可信来源获取软件与配置,并遵守所在地法律法规和相关服务条款。