一个面向 Linux/macOS 终端环境的 Clash/Mihomo 本地代理目录,包含:
clash可执行文件config.yaml代理配置clash_node.py命令行策略组/节点切换工具install.sh安装脚本
这个项目的目标很直接:把 Clash 运行目录放到 ~/.clash,然后提供几个常用命令,方便在 shell 里启停代理和切换节点。
clash: Mihomo/Clash 可执行文件config.yaml: 主配置文件,包含端口、REST API、节点、策略组和规则clash_node.py: 交互式节点切换脚本,支持方向键选择Country.mmdb: GeoIP 数据logs/clash.log: Clash 日志文件install.sh: 安装脚本,会写入 shell 函数到~/.zshrc或~/.bashrc
git clone https://github.com/blliu6/clash_for_server.git
# 或使用 gitee 镜像(网络无法连接 GitHub 时)
# git clone https://gitee.com/blliu0905/clash_for_server.git
cd clash_for_server
bash install.sh如果你已经在项目目录下,也可以直接执行:
bash install.sh安装脚本会做这些事:
- 将当前目录中的运行文件复制到
~/.clash - 确保
clash和clash_node.py可执行 - 通过终端交互询问你要使用的本地代理端口
- 往你的 shell 配置文件写入
clash_on、clash_off、clash_node
安装完成后,原始仓库目录可以删除;实际运行依赖的是 ~/.clash 下的文件。
安装完成后,请手动将你的私有 config.yaml 放到 ~/.clash/config.yaml。
安装完成后执行:
source ~/.zshrc如果你用的是 Bash,则执行:
source ~/.bashrc开启代理:
clash_on关闭代理:
clash_off切换策略组或节点:
clash_nodeclash_node 支持:
↑ / ↓移动j / k移动Enter确认q退出
这个开源仓库默认不包含你的私有 config.yaml,因此安装脚本无法预先知道你实际使用的代理端口。
执行 bash install.sh 时,脚本会在终端里询问:
请输入代理端口号 (直接回车将使用默认端口 7890):你输入的端口会被写入 shell 函数 clash_on,用于设置:
http_proxyhttps_proxyno_proxy
请确保这里填写的端口与后续放到 ~/.clash/config.yaml 中的 mixed-port 或 port 一致。
安装完成后,请手动把你自己的 Clash/Mihomo 配置文件放到:
~/.clash/config.yaml这是必需步骤;如果没有这个文件,clash_on 和 clash_node 都无法按预期工作。
clash_node.py 依赖 Clash 的 REST API。请确保 config.yaml 中至少有:
external-controller: 127.0.0.1:11314
secret: 'myssr'其中:
external-controller的端口可以自己设置,不必固定为11314external-controller可以写成纯端口,例如:
external-controller: 11314- 也可以写成完整地址,例如:
external-controller: 127.0.0.1:11314clash_node.py读取配置时会兼容这两种写法;如果读到的是纯端口,会自动按127.0.0.1:<port>处理secret请显式设置为:
secret: 'myssr'secret要与脚本访问 Clash API 时使用的口令保持一致
- 切换
Proxy会影响默认代理出口 - 切换
Telegram、OpenAI、Netflix等策略组,只影响命中对应规则的流量
例如:
Proxy -> 美国 中继 04 - 1倍率会改变curl https://ifconfig.me的出口 IPTelegram -> 新加坡不会改变默认出口,只会影响 Telegram 相关流量
查看 Clash 是否启动:
ps -ef | grep clash查看默认代理出口当前节点:
curl -s -H 'Authorization: Bearer myssr' http://127.0.0.1:11314/proxies/Proxy查看当前出口 IP:
curl https://ifconfig.me如果要验证某个业务策略组是否切换成功,例如 Telegram:
curl -s -H 'Authorization: Bearer myssr' http://127.0.0.1:11314/proxies/Telegram因为仓库本身不携带你的私有订阅配置,所以安装脚本不知道你最终 config.yaml 里使用的是哪个本地代理端口,只能在安装时向你询问。
先确认 Clash 已启动:
clash_on再检查 config.yaml 中的 external-controller 是否写成了:
external-controller: 127.0.0.1:11314你也可以只写端口,例如:
external-controller: 11314脚本会自动按 127.0.0.1:11314 处理,但为了避免不同 Clash / Mihomo 版本在监听行为上的差异,仍然建议优先写成完整地址。
这是正常现象。ifconfig.me 走的是默认出口,一般受 Proxy 组影响,不受业务策略组直接影响。
Clash 日志默认写入:
~/.clash/logs/clash.log