预览文件: DEPLOYMENT.md
# Mihomo 从零部署指南(AI 可执行版)
> 本文档供 AI Agent 或运维人员使用,可在任何 Linux 系统上从零部署完整的 Mihomo 透明代理网关。
> 适配:Debian/Ubuntu、CentOS/RHEL、Alpine、OpenWrt、树莓派等。
## 1. 前置条件
### 1.1 硬件要求
| 项目 | 最低要求 | 推荐 |
|------|----------|------|
| CPU | 1核 ARM/x86 | 2核+ |
| 内存 | 128MB | 512MB+ |
| 存储 | 50MB | 1GB+ |
| 网络 | 有线以太网 | 千兆以太网 |
### 1.2 系统要求
- Linux 内核 >= 4.9(TPROXY 透明代理需要)
- systemd 或 OpenRC 或直接进程管理
- root 或 sudo 权限
- 网络连通性(至少能访问国内网络)
### 1.3 需要准备的信息
```
# 必填
MIHOMO_SECRET="<API 密码,自定义>" # 管理面板和 API 的认证密码
PROXY_PROVIDER_URL="<机场订阅链接>" # 至少一个代理订阅 URL
# 可选
ADDITIONAL_PROVIDER_URL_2="<第二个机场链接>" # 备用机场
ADDITIONAL_PROVIDER_URL_3="<第三个机场链接>" # 备用机场
CONFIG_REMOTE_URL="<远程配置文件 URL>" # 用于自动同步配置
```
## 2. 安装 Mihomo 二进制
### 2.1 检测架构并下载
```bash
# 检测系统架构
ARCH=$(uname -m)
case ${ARCH} in
x86_64) PLAT="linux-amd64" ;;
aarch64) PLAT="linux-arm64" ;;
armv7l) PLAT="linux-armv7" ;;
armv6l) PLAT="linux-armv6" ;;
mips) PLAT="linux-mipsle" ;;
*) echo "Unsupported: ${ARCH}"; exit 1 ;;
esac
# 获取最新版本号
VERSION=$(curl -sL https://github.com/MetaCubeX/mihomo/releases/latest | grep -oP 'tag/\K[^"]+' | head -1)
if [ -z "${VERSION}" ]; then
VERSION="v1.19.24" # fallback
fi
echo "Architecture: ${ARCH}, Platform: ${PLAT}, Version: ${VERSION}"
# 下载(如果 GitHub 不可达,使用镜像)
DOWNLOAD_URL="https://github.com/MetaCubeX/mihomo/releases/download/${VERSION}/mihomo-${PLAT}-${VERSION}.gz"
GITHUB_MIRROR="https://ghfast.top"
# 先尝试直连,失败则用镜像
curl -sL -o /tmp/mihomo.gz "${DOWNLOAD_URL}" --connect-timeout 10 --max-time 60 || \
curl -sL -o /tmp/mihomo.gz "${GITHUB_MIRROR}/${DOWNLOAD_URL}" --connect-timeout 10 --max-time 60
# 解压并安装
gunzip /tmp/mihomo.gz
chmod +x /tmp/mihomo
mv /tmp/mihomo /usr/local/bin/mihomo
mihomo -v
```
### 2.2 验证安装
```bash
/usr/local/bin/mihomo -v
# 预期输出: Mihomo Meta vX.X.X linux <arch> ...
```
## 3. 创建目录和配置
### 3.1 创建运行目录
```bash
mkdir -p /etc/mihomo/{providers,rules,logs}
```
### 3.2 生成配置文件
以下命令生成完整的 `config.yaml`。**将变量替换为实际值后执行**。
```bash
cat > /etc/mihomo/config.yaml << 'CONFIGEOF'
# ====================================
# Mihomo 配置 - Linux 透明代理网关
# 适用地区:中国大陆
# ====================================
mode: rule
log-level: warning
log-file: /etc/mihomo/logs/mihomo.log
mixed-port: 7890
port: 7891
socks-port: 7892
redir-port: 7893
tproxy-port: 7894
bind-address: "*"
allow-lan: true
ipv6: true
unified-delay: true
tcp-concurrent: true
secret: MIHOMO_SECRET
external-controller: 0.0.0.0:9090
external-ui: .
find-process-mode: 'off'
keep-alive-idle: 600
keep-alive-interval: 30
skip-auth-prefixes:
- 127.0.0.1/8
- ::1/128
profile:
store-selected: true
store-fake-ip: false
geodata-mode: false
geodata-loader: standard
geo-auto-update: true
geo-update-interval: 48
geox-url:
geosite: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat
mmdb: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.metadb
geoip: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat
asn: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/GeoLite2-ASN.mmdb
sniffer:
enable: true
sniff:
HTTP:
ports: [80, 8080-8880]
override-destination: true
TLS:
ports: [443, 8443]
QUIC:
ports: [443, 8443]
skip-domain:
- Mijia Cloud
- dlg.io.mi.com
- '*.push.apple.com'
- '*.apple.com'
- '*.wechat.com'
- '*.qpic.cn'
- '*.qq.com'
- '*.wechatapp.com'
- '*.vivox.com'
- '*.oray.com'
- '*.sunlogin.net'
skip-addr:
- 91.108.0.0/16
- 149.154.160.0/20
tun:
enable: false
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: true
respect-rules: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-range6: 2001:480:abcd::1/64
fake-ip-filter-mode: blacklist
fake-ip-filter:
- rule-set:fakeip_filter_domain,cn_domain
default-nameserver:
- 223.5.5.5
- 119.29.29.29
proxy-server-nameserver:
- https://doh.pub/dns-query
- https://223.5.5.5/dns-query#h3=true
direct-nameserver:
- https://doh.pub/dns-query
- https://223.5.5.5/dns-query#h3=true
nameserver:
- https://223.5.5.5/dns-query
- https://1.12.12.12/dns-query
fallback:
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
fallback-filter:
geoip: true
geoip-code: CN
nameserver-policy:
"geosite:gfw":
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
proxies: []
proxy-providers:
Airport_01:
type: http
interval: 86400
path: ./providers/Airport_01.yaml
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
filter: ^(?!.*(拒绝|直连|群|邀请|返利|循环|官网|客服|网站|网址|获取|订阅|流量|到期|机场|下次|版本|官址|备用|过期|已用|联系|邮箱|工单|贩卖|通知|倒卖|防止|国内|地址|频道|无法|说明|提示|特别|访问|支持|教程|关注|更新|作者|加入|USE|USED|TOTAL|EXPIRE|EMAIL|Panel|Channel|Author|traffic))
proxy: DIRECT
url: PROXY_PROVIDER_URL
override:
additional-prefix: '[机场1]'
skip-cert-verify: true
udp: true
proxy-groups:
- name: 节点选择
type: select
proxies:
- 自动选择
- DIRECT
- name: 自动选择
type: url-test
include-all: true
interval: 300
tolerance: 20
lazy: true
max-failed-times: 1
filter: ^(?!.*(0倍|0\.1倍|traffic|plus))
- name: 漏网之鱼
type: fallback
proxies:
- 节点选择
- 自动选择
- DIRECT
interval: 300
rules:
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,198.18.0.0/15,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,漏网之鱼
CONFIGEOF
```
### 3.3 替换配置中的变量
```bash
# 替换密码
sed -i "s/MIHOMO_SECRET/${MIHOMO_SECRET}/g" /etc/mihomo/config.yaml
# 替换订阅链接
sed -i "s|PROXY_PROVIDER_URL|${PROXY_PROVIDER_URL}|g" /etc/mihomo/config.yaml
```
### 3.4 添加完整规则集(可选但推荐)
如果有 GitHub 访问能力(通过代理),可以从完整配置中复制 `rule-providers` 和 `rules` 部分。
完整的规则集配置约 97 个 rule-providers、144 条分流规则,来源于:
- `https://github.com/MetaCubeX/meta-rules-dat` — 官方 GeoSite/GeoIP 规则
- `https://github.com/Lanlan13-14/Rules` — 社区补充规则
**关键**:每个 rule-provider 必须包含 `proxy: "节点选择"` 才能在国内通过代理下载。
## 4. 安装管理面板(可选)
```bash
cd /etc/mihomo
# 下载 Yacd 面板
curl -sL https://github.com/MetaCubeX/Yacd-meta/archive/gh-pages.zip -o ui.zip
unzip ui.zip -d ui_tmp
mv ui_tmp/Yacd-meta-gh-pages/* . 2>/dev/null
rm -rf ui_tmp ui.zip
```
## 5. 配置 systemd 服务
### 5.1 创建服务文件
```bash
cat > /etc/systemd/system/mihomo.service << 'EOF'
[Unit]
Description=mihomo Daemon, Another Clash Kernel.
Documentation=https://wiki.metacubex.one/
After=network.target NetworkManager.service systemd-networkd.service iwd.service
Wants=network-online.target
[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=300
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID
NoNewPrivileges=true
ProtectSystem=strict
ReadWritePaths=/etc/mihomo
PrivateTmp=true
ProtectHome=true
[Install]
WantedBy=multi-user.target
EOF
```
### 5.2 启用并启动
```bash
systemctl daemon-reload
systemctl enable mihomo
systemctl start mihomo
systemctl status mihomo
```
## 6. 配置日志轮转
```bash
cat > /etc/logrotate.d/mihomo << 'EOF'
/etc/mihomo/logs/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
maxsize 50M
}
EOF
```
## 7. 配置定时维护
### 7.1 创建维护脚本
```bash
cat > /usr/local/bin/mihomo-maintenance.sh << 'MAINEOF'
#!/bin/bash
MIHOMO_DIR="/etc/mihomo"
API="http://127.0.0.1:9090"
SECRET="${MIHOMO_SECRET:-changeme}"
AUTH_HEADER="Authorization: Bearer ${SECRET}"
LOG="${MIHOMO_DIR}/logs/maintenance.log"
LOCAL_CONFIG="${MIHOMO_DIR}/config.yaml"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "${LOG}"; }
log "=== Daily maintenance start ==="
# 远程配置同步(如果设置了远程 URL)
if [ -n "${CONFIG_REMOTE_URL}" ]; then
HTTP_CODE=$(curl -s -o /tmp/mihomo_remote.yaml -w '%{http_code}' \
--connect-timeout 10 --max-time 30 "${CONFIG_REMOTE_URL}" 2>/dev/null)
if [ "${HTTP_CODE}" = "200" ]; then
REMOTE_MD5=$(md5sum /tmp/mihomo_remote.yaml 2>/dev/null | cut -d' ' -f1)
LOCAL_MD5=$(md5sum "${LOCAL_CONFIG}" 2>/dev/null | cut -d' ' -f1)
if [ "${REMOTE_MD5}" != "${LOCAL_MD5}" ]; then
cp "${LOCAL_CONFIG}" "${LOCAL_CONFIG}.bak.$(date +%Y%m%d%H%M%S)"
cp /tmp/mihomo_remote.yaml "${LOCAL_CONFIG}"
log "OK: config synced from remote"
fi
fi
fi
# 重启服务
systemctl restart mihomo
sleep 5
if systemctl is-active --quiet mihomo; then
log "OK: mihomo restarted"
else
log "FATAL: mihomo failed to restart"
exit 1
fi
# 更新 proxy-providers
for provider in $(curl -s -H "${AUTH_HEADER}" "${API}/providers/proxies" 2>/dev/null | \
python3 -c "import sys,json; [print(n) for n in json.load(sys.stdin).get('providers',{})]" 2>/dev/null); do
curl -s -X PUT -H "${AUTH_HEADER}" "${API}/providers/proxies/${provider}" >/dev/null 2>&1
done
log "OK: providers updated"
# 清理旧备份
ls -t "${MIHOMO_DIR}"/config.yaml.bak.* 2>/dev/null | tail -n +4 | xargs -r rm -f
log "=== Daily maintenance done ==="
MAINEOF
chmod +x /usr/local/bin/mihomo-maintenance.sh
```
### 7.2 添加定时任务
```bash
# 每天凌晨 03:20 执行维护
(crontab -l 2>/dev/null; echo "20 3 * * * /usr/local/bin/mihomo-maintenance.sh >/dev/null 2>&1") | crontab -
```
## 8. 透明代理配置(网关模式)
如果 Mihomo 作为局域网网关,需要配置 iptables 将客户端流量转发到 Mihomo。
### 8.1 透明代理脚本
```bash
cat > /usr/local/bin/mihomo-iptables.sh << 'IPEOF'
#!/bin/bash
# Mihomo 透明代理 iptables 规则
# 适用于 TPROXY 模式
MIHOMO_IP="127.0.0.1"
REDIR_PORT=7893
TPROXY_PORT=7894
DNS_PORT=1053
# 局域网网段(根据实际修改)
LAN_RANGE="10.0.0.0/8"
enable() {
# 开启内核转发
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
# 新建链
iptables -t mangle -N MIHOMO 2>/dev/null || true
iptables -t mangle -F MIHOMO
# 排除本机和局域网直连
iptables -t mangle -A MIHOMO -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 100.64.0.0/10 -j RETURN
iptables -t mangle -A MIHOMO -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A MIHOMO -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A MIHOMO -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A MIHOMO -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A MIHOMO -d 240.0.0.0/4 -j RETURN
# TCP -> TPROXY
iptables -t mangle -A MIHOMO -p tcp -j TPROXY --on-port ${TPROXY_PORT} --tproxy-mark 0x1/0x1
# UDP -> TPROXY
iptables -t mangle -A MIHOMO -p udp -j TPROXY --on-port ${TPROXY_PORT} --tproxy-mark 0x1/0x1
# 应用链
iptables -t mangle -A PREROUTING -j MIHOMO
# 策略路由
ip rule add fwmark 0x1 table 100 2>/dev/null || true
ip route add local default dev lo table 100 2>/dev/null || true
# DNS 重定向(将客户端 DNS 请求转发到 Mihomo DNS)
iptables -t nat -N MIHOMO_DNS 2>/dev/null || true
iptables -t nat -F MIHOMO_DNS
iptables -t nat -A MIHOMO_DNS -p udp --dport 53 -j REDIRECT --to-ports ${DNS_PORT}
iptables -t nat -A MIHOMO_DNS -p tcp --dport 53 -j REDIRECT --to-ports ${DNS_PORT}
iptables -t nat -A PREROUTING -j MIHOMO_DNS
echo "Mihomo transparent proxy enabled"
}
disable() {
iptables -t mangle -D PREROUTING -j MIHOMO 2>/dev/null
iptables -t mangle -F MIHOMO 2>/dev/null
iptables -t mangle -X MIHOMO 2>/dev/null
iptables -t nat -D PREROUTING -j MIHOMO_DNS 2>/dev/null
iptables -t nat -F MIHOMO_DNS 2>/dev/null
iptables -t nat -X MIHOMO_DNS 2>/dev/null
ip rule del fwmark 0x1 table 100 2>/dev/null
ip route del local default dev lo table 100 2>/dev/null
echo "Mihomo transparent proxy disabled"
}
case "$1" in
enable) enable ;;
disable) disable ;;
*) echo "Usage: $0 {enable|disable}" ;;
esac
IPEOF
chmod +x /usr/local/bin/mihomo-iptables.sh
```
### 8.2 开机自动启用透明代理
```bash
# 在 mihomo.service 的 [Service] 段添加
sed -i '/ExecStart=/a ExecStartPost=/usr/local/bin/mihomo-iptables.sh enable' /etc/systemd/system/mihomo.service
echo 'ExecStop=/usr/local/bin/mihomo-iptables.sh disable' >> /etc/systemd/system/mihomo.service
# 注意:需要追加到 [Service] 段,不是 [Install] 段
systemctl daemon-reload
```
### 8.3 配置客户端网关
将局域网客户端的网关和 DNS 指向 Mihomo 服务器:
```
# 客户端网络配置
网关: <Mihomo 服务器 IP>
DNS: <Mihomo 服务器 IP>(或由 DHCP 自动下发)
```
DHCP 自动下发(在路由器或 dnsmasq 中配置):
```
# dnsmasq.conf
dhcp-option=option:router,<Mihomo IP>
dhcp-option=option:dns-server,<Mihomo IP>
```
## 9. OpenWrt 特殊配置
OpenWrt 使用 procd 而非 systemd,配置方式不同。
### 9.1 安装
```bash
# 通过 opkg 安装(如果有源)
opkg update
opkg install mihomo
# 或手动安装
ARCH=$(opkg print-architecture | awk 'NR==1{print $2}')
curl -sL "https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-${ARCH}.gz" | gunzip > /usr/bin/mihomo
chmod +x /usr/bin/mihomo
```
### 9.2 init.d 服务
```bash
cat > /etc/init.d/mihomo << 'OEOF'
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=99
STOP=10
PROG=/usr/bin/mihomo
CONF_DIR=/etc/mihomo
start_service() {
procd_open_instance mihomo
procd_set_param command ${PROG} -d ${CONF_DIR}
procd_set_param respawn 3600 5 5
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param pidfile /var/run/mihomo.pid
procd_close_instance
}
stop_service() {
killall mihomo 2>/dev/null
}
OEOF
chmod +x /etc/init.d/mihomo
/etc/init.d/mihomo enable
/etc/init.d/mihomo start
```
### 9.3 OpenWrt 防火墙规则
```bash
# /etc/firewall.user
iptables -t mangle -N MIHOMO 2>/dev/null
iptables -t mangle -F MIHOMO
iptables -t mangle -A MIHOMO -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A MIHOMO -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A MIHOMO -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A MIHOMO -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A MIHOMO -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A MIHOMO -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A MIHOMO -p tcp -j TPROXY --on-port 7894 --tproxy-mark 0x1/0x1
iptables -t mangle -A MIHOMO -p udp -j TPROXY --on-port 7894 --tproxy-mark 0x1/0x1
iptables -t mangle -A PREROUTING -j MIHOMO
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 1053
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 1053
ip rule add fwmark 0x1 table 100
ip route add local default dev lo table 100
```
## 10. 验证清单
部署完成后,按以下清单逐项验证:
```bash
# 1. 二进制版本
mihomo -v
# 2. 服务状态
systemctl status mihomo # 或 /etc/init.d/mihomo status
# 3. 端口监听
ss -tlnp | grep mihomo
# 预期: 7890, 7891, 7892, 7893, 7894, 9090, 1053
# 4. API 可用性
curl -s -H "Authorization: Bearer ${MIHOMO_SECRET}" http://127.0.0.1:9090/version
# 5. 代理连通性
curl -s -o /dev/null -w '%{http_code}' -x http://127.0.0.1:7890 https://www.google.com
# 预期: 200
# 6. 国内直连
curl -s -o /dev/null -w '%{http_code}' -x http://127.0.0.1:7890 https://www.baidu.com
# 预期: 200
# 7. 检查错误日志(应该为 0)
journalctl -u mihomo --since '10 min ago' --no-pager | grep -c 'level=error'
# 8. rule-providers 加载状态
curl -s -H "Authorization: Bearer ${MIHOMO_SECRET}" http://127.0.0.1:9090/providers/rules | \
python3 -c "import sys,json; d=json.load(sys.stdin); p=d.get('providers',{}); ok=sum(1 for v in p.values() if v.get('ruleCount',0)>0); print(f'{ok}/{len(p)} loaded')"
# 9. 代理组状态
curl -s -H "Authorization: Bearer ${MIHOMO_SECRET}" http://127.0.0.1:9090/proxies | \
python3 -c "import sys,json; [print(f'{v[\"type\"]:10} {\"OK\" if v.get(\"alive\") else \"FAIL\":5} {k}') for k,v in json.load(sys.stdin).get('proxies',{}).items() if v.get('type') in ('URLTest','Fallback')]"
# 10. 定时任务
crontab -l | grep mihomo
# 11. 日志轮转
logrotate -d /etc/logrotate.d/mihomo 2>&1 | head -5
```
## 11. 常见问题
### Q: rule-providers 全部加载失败
A: 国内无法直连 `raw.githubusercontent.com`。需要为每个 rule-provider 添加 `proxy: "节点选择"`,通过代理下载。确保 proxy-providers 先于 rule-providers 加载。
### Q: Telegram 连接导致大量 Sniffer error
A: Telegram 使用 MTProto 协议,在 sniffer 中添加 `skip-addr: [91.108.0.0/16, 149.154.160.0/20]`。
### Q: DNS 弃用警告 "replace fallback-filter.geosite with nameserver-policy"
A: 将 `fallback-filter.geosite` 迁移到 `dns.nameserver-policy`:
```yaml
dns:
nameserver-policy:
"geosite:gfw":
- https://dns.google/dns-query
```
### Q: 树莓派内存不足
A: 减少代理节点数量、禁用 `tcp-concurrent`、设置 `log-level: error`、降低 `keep-alive-idle`。
### Q: OpenWrt 上 TPROXY 不可用
A: 确保安装了 `kmod-ipt-tproxy`、`iptables-mod-tproxy` 包。或改用 redir 模式(仅 TCP 透明代理)。
### Q: 如何更新 Mihomo
A: 重新下载最新二进制替换 `/usr/local/bin/mihomo`,然后 `systemctl restart mihomo`。
### Q: 如何热重载配置(不重启)
A: `curl -X PUT -H "Authorization: Bearer <secret>" -H "Content-Type: application/json" -d '{"path":"/etc/mihomo/config.yaml"}' 'http://127.0.0.1:9090/configs?force=true'`
已复制到剪贴板!