首页/教程/Clash vpn有没有纯命令行版本?无GUI怎么用?
CLASH GUIDE

Clash vpn有没有纯命令行版本?无GUI怎么用?

约 9 分钟阅读

Clash VPN的核心程序本身就是纯命令行版本,从GitHub Releases页面下载的内核文件(如clash-linux-amd64)可在终端中直接运行,不依赖任何图形界面。无GUI环境下使用Clash的基本方法是执行./clash -d /etc/clash启动代理服务,配置文件config.yaml需存放在指定目录中。常用命令行参数包括-f指定配置文件路径、-d指定配置目录、-t测试配置文件格式和-v查看版本信息。后台运行可通过nohup ./clash -d /etc/clash &临时实现,或创建systemd服务(/etc/systemd/system/clash.service)配置ExecStart=/usr/local/bin/clash -d /etc/clash,通过sudo systemctl enable clash启用开机自启,sudo systemctl start clash启动服务。pm2和supervisor是官方推荐的第三方进程管理工具,支持进程崩溃自动重启。无GUI环境通过配置external-controller启用API,使用curl命令或Web Dashboard面板(如YACD)进行节点切换和状态查看。命令行版本的配置文件与图形界面客户端完全通用,用户可先在GUI环境中调试好配置再迁移到命令行环境。

Clash核心本身就是命令行程序

内核文件是CLI可执行文件而非GUI应用

Clash VPN的核心程序(原版clash或Mihomo)本身就是一个命令行可执行文件,不包含任何图形界面组件。用户从GitHub Releases页面下载的clash-linux-amd64clash-windows-amd64.exe等文件,本质上是在终端中运行的CLI程序,与图形界面客户端(如Clash Verge Rev)是两个独立的组件。图形界面客户端通过在后台调用内核程序并套上可视化“外壳”实现操作,而命令行版本直接运行内核,不依赖任何图形库。因此,在无GUI的Linux服务器环境中,Clash核心程序可直接运行。

无GUI环境下的原生适配

Linux服务器(如Ubuntu Server、Debian minimal)通常不安装图形界面,Clash核心程序无需X11或Wayland依赖即可运行。Clash核心使用Go语言编写,编译为静态二进制文件,不依赖外部动态库,可在无图形环境的系统中直接执行。用户通过终端命令启动、停止和管理Clash进程,所有配置通过编辑config.yaml文件完成,无需任何图形交互。

命令行版本与图形界面的关系

Clash命令行版本与图形界面客户端使用相同的配置格式(config.yaml),节点、规则和策略组的定义完全一致。命令行版本不包含GUI客户端的订阅管理、日志查看和节点切换等可视化功能,需通过命令行操作或外部控制器API实现这些功能。用户可先在图形界面客户端中调试好配置文件,再迁移到命令行环境运行,实现配置的平滑过渡。

无GUI环境下运行Clash的基本方法

直接执行内核文件启动代理服务

在无GUI环境中运行Clash,最基本的方式是直接执行内核文件并指定配置文件路径。执行./clash -f /etc/clash/config.yaml启动Clash核心进程,代理服务立即开始运行。若Clash不在系统PATH中,需使用完整路径如/usr/local/bin/clash -f /etc/clash/config.yaml。启动后Clash在前台运行,输出日志到终端。若需后台运行,使用nohup ./clash -f /etc/clash/config.yaml &将进程放入后台并忽略终端关闭信号。

使用-d参数指定配置目录

Clash支持通过-d参数指定配置目录,目录中需包含config.yaml文件和可选的Country.mmdb GeoIP数据库文件。执行./clash -d /etc/clash,Clash会自动加载/etc/clash/config.yaml配置文件。若配置目录中缺少GeoIP数据库,Clash启动时会自动下载。使用-d参数比-f参数更简洁,适合将配置文件统一存放在指定目录中。

测试配置文件的正确性

在启动Clash服务前,可使用-t参数测试配置文件的格式是否正确。执行./clash -t -f /etc/clash/config.yaml,若输出Configuration file test passed则表示配置格式正确。若配置文件存在YAML格式错误或不支持的规则类型,-t参数会输出具体的错误信息,帮助用户在启动前修复配置问题。该功能在自动化部署和配置更新中尤为实用。

命令行参数与常用选项

-f指定配置文件路径

-f参数用于指定Clash加载的配置文件路径,默认值为当前目录下的config.yaml。执行./clash -f /path/to/config.yaml,Clash加载指定路径的配置文件。该参数适合配置文件不在默认位置或需临时切换配置文件的场景。

-d指定配置目录

-d参数指定Clash的配置目录,目录中需包含config.yaml文件和GeoIP数据库文件。执行./clash -d /etc/clash,Clash加载/etc/clash/config.yaml。该参数使配置文件管理更整洁,适合将配置文件和相关资源统一存放在一个目录中。

-t测试配置文件格式

-t参数用于测试配置文件格式而不启动代理服务。执行./clash -t -f config.yaml,Clash解析配置文件并输出验证结果。若配置存在错误,输出具体的错误行号和原因,帮助用户快速定位和修正配置问题。该参数在自动化部署和配置更新中用于前置验证,避免因配置错误导致服务启动失败。

版本信息与帮助

执行./clash -v查看Clash内核版本信息。执行./clash -h查看所有命令行参数的说明。版本信息帮助用户确认当前内核是否满足功能需求,帮助参数提供完整的命令行选项参考。

后台运行与管理方式

使用nohup和&后台运行

在无GUI环境中,使用nohup命令配合&符号可将Clash在后台持续运行。执行nohup ./clash -d /etc/clash > /dev/null 2>&1 &启动Clash,忽略终端关闭信号,输出重定向到/dev/nullnohup确保进程在终端会话结束后不会被SIGHUP信号终止,&将进程放入后台运行。该方式适合简单场景的临时部署,但不具备进程守护和自动重启能力。

创建systemd服务实现进程守护

在Linux系统中创建systemd服务是管理Clash命令行版本的标准方式,支持开机自启、进程守护和日志管理。在/etc/systemd/system/clash.service中配置ExecStart=/usr/local/bin/clash -d /etc/clash,设置User=clash专用用户运行提升安全性。执行sudo systemctl enable clash启用开机自启,sudo systemctl start clash启动服务,sudo systemctl status clash查看运行状态。systemd服务在进程崩溃时自动重启,适合生产环境长期运行。

使用pm2或supervisor管理进程

pm2和supervisor是Clash官方推荐的第三方进程管理工具,可在无GUI环境中管理Clash进程。执行pm2 start clash -- -d /etc/clash启动Clash,pm2 save保存进程列表,pm2 startup生成开机自启脚本。supervisor在/etc/supervisor/conf.d/clash.conf中配置command=/usr/local/bin/clash -d /etc/clash,通过supervisorctl管理。两者均支持进程崩溃自动重启和日志管理。

通过API管理无GUI Clash

配置external-controller启用API

无GUI环境中的Clash可通过外部控制器API进行管理和监控,在config.yaml中设置external-controller: 127.0.0.1:9090启用API服务。配置secret字段设置访问认证密钥。启用API后,可通过HTTP请求查询节点列表、切换节点、查看连接状态和重新加载配置。

通过Dashboard面板可视化管理

无GUI Clash可通过Web Dashboard面板进行可视化管理,在浏览器中访问http://yacd.haishan.me等Dashboard页面,填入Clash的API地址(如http://服务器IP:9090)和secret密钥即可连接。Dashboard面板支持节点切换、延迟测试、连接查看和规则管理等操作,为无GUI环境提供了便捷的可视化管理方式。可通过SSH端口转发将远程API映射到本地访问。

使用curl命令管理Clash

通过curl命令可直接调用Clash API进行管理操作。curl http://127.0.0.1:9090/proxies获取节点列表,curl -X PUT http://127.0.0.1:9090/proxies/Proxy -d '{"name":"香港节点"}'切换节点,curl http://127.0.0.1:9090/connections查看活跃连接。无需图形界面即可完成节点切换、状态查看和配置重载等常见操作。

常见问题FAQ

Clash有没有纯命令行版本?

有。Clash核心程序本身就是命令行可执行文件,在Linux、macOS和Windows均可直接运行。从GitHub Releases页面下载对应平台的内核文件,通过命令行参数指定配置文件即可启动代理服务,无需任何图形界面。

无GUI环境下Clash的配置文件怎么写?

无GUI环境中的Clash配置文件与图形界面客户端使用的config.yaml格式完全一致。用户可在图形界面客户端中配置好节点和规则后,将config.yaml文件复制到无GUI环境中使用。配置文件中的proxiesproxy-groupsrulesdns等字段在命令行版本中同样生效。

无GUI环境下如何切换节点?

通过Clash API切换节点,在配置文件中启用external-controller后,使用curl命令调用PUT /proxies/{groupName}接口切换节点。也可通过Web Dashboard面板(如YACD)连接API地址进行可视化管理。

无GUI环境下Clash如何开机自启?

创建systemd服务(/etc/systemd/system/clash.service)并执行sudo systemctl enable clash启用开机自启。或使用pm2的pm2 startuppm2 save组合实现开机自启。

使用提醒

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