一、云服务器代理内核配置
目标:在国内腾讯云 Ubuntu 无桌面服务器上,通过 Vultr 的 Hysteria2 节点科学上网(rule 模式,国内直连,国外代理),并设置成开机自启服务。
2025-03-21 实际操作完整流程(已验证成功)
1. 前置准备(在能正常访问 GitHub 的环境完成)
- 桌面端 Clash Verge 已配置好 Hysteria2 节点并能正常使用
- 从 https://github.com/MetaCubeX/mihomo/releases/latest 下载 mihomo-linux-amd64-v1-v1.19.21.gz(或最新 amd64 版本)
- 上传到服务器 /etc/clash/ 目录,并解压、重命名、加执行权限:
cd /etc/clash
gzip -d mihomo-linux-amd64-v1-v1.19.21.gz
sudo mv mihomo-linux-amd64-v1-v1.19.21 mihomo
sudo chmod +x mihomo
2. 配置文件(config.yaml)
- 在 /etc/clash/ 下创建 config.yaml,内容完整复制桌面端配置(已验证可直接用):
mixed-port: 7897
allow-lan: true
mode: rule
log-level: info
proxies: [...] # Hysteria2-easytake 配置
proxy-groups: [...] # Proxy、Mode、Rule 模式、Global 模式、Direct 直连
rules: [...] # GEOIP,CN,DIRECT + 国内域名直连 + MATCH,Proxy
完整的vultr代理配置如下:
mixed-port: 7897
allow-lan: true
mode: rule
log-level: info
proxies:
- name: "Hysteria2-easytake"
type: hysteria2
server: easytake.work
port: 8443
password: Se7RAuFZ8Lzg
alpn:
- h3
sni: easytake.work
skip-cert-verify: false
udp: true
proxy-groups:
# === 主代理选择组 ===
- name: "Proxy"
type: select
proxies:
- "Hysteria2-easytake"
- "DIRECT"
# === 模式选择 ===
- name: "Mode"
type: select
proxies:
- "Rule 模式"
- "Global 模式"
- "Direct 直连"
# === 规则模式 ===
- name: "Rule 模式"
type: select
proxies:
- "Proxy"
- "DIRECT"
# === 全局模式 ===
- name: "Global 模式"
type: select
proxies:
- "Proxy"
# === 直连模式 ===
- name: "Direct 直连"
type: select
proxies:
- "DIRECT"
rules:
# 直连的国内网站或服务
- GEOIP,CN,DIRECT
- DOMAIN-SUFFIX,baidu.com,DIRECT
- DOMAIN-SUFFIX,bilibili.com,DIRECT
- DOMAIN-SUFFIX,qq.com,DIRECT
- DOMAIN-SUFFIX,weibo.com,DIRECT
- DOMAIN-SUFFIX,alipay.com,DIRECT
# 默认所有其余流量通过代理
- MATCH,Proxy
3. 首次启动测试(最容易踩坑的地方)
cd /etc/clash
./mihomo -d .
常见错误及解决:
- 报错:can’t download MMDB / geoip.metadb / context deadline exceeded
原因:国内无法访问 GitHub release-assets 自动下载 geoip.metadb
解决:在能翻墙的环境手动下载 geoip.metadb
推荐链接(任选一个能下):
https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb
或 https://ghproxy.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb
或 https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb
下载后上传到/etc/clash/目录(与 config.yaml 同级)
重新运行./mihomo -d .→ 不再报下载错误
启动后日志停在 “Start initial compatible provider Mode” 后不动
结论:这是正常现象!表示初始化完成,已监听 7897 端口,后台安静运行
验证方式:
新终端:curl -x http://127.0.0.1:7897 ipinfo.io → 显示新加坡 IP 即成功
4. 设置 systemd 服务(实现开机自启 + 后台运行)
- 创建服务文件(这一步之前漏做了,导致 systemctl 找不到)
sudo tee /etc/systemd/system/clash.service > /dev/null << 'EOF'
[Unit]
Description=Clash mihomo Proxy Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/etc/clash
ExecStart=/etc/clash/mihomo -d /etc/clash
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
- 加载并启动服务(关键两步,很多人忘)
sudo systemctl daemon-reload
sudo systemctl enable clash
sudo systemctl start clash
- 检查状态
sudo systemctl status clash
→ 看到 Active: active (running) + mihomo 初始化日志 → 成功
5. 让服务器所有命令默认走代理(强烈推荐)
echo 'export http_proxy=http://127.0.0.1:7897' | sudo tee -a /etc/profile
echo 'export https_proxy=http://127.0.0.1:7897' | sudo tee -a /etc/profile
source /etc/profile
以后 apt update、git clone、curl、wget、docker pull 等全部自动走代理(国内域名直连)
6. 常用指令–快速上手
常用管理命令总结
- 查看状态:sudo systemctl status clash
- 实时日志:journalctl -u clash -f
- 重启服务:sudo systemctl restart clash
- 停止服务:sudo systemctl stop clash
- 改配置后重载:sudo systemctl restart clash
- 手动前台调试:cd /etc/clash && ./mihomo -d .
注意事项 & 经验教训
- 永远不要指望 mihomo 自动下载 geoip.metadb(国内基本超时)
- systemd 服务文件创建后必须 daemon-reload,否则 systemctl 找不到
- 日志停在 “Start initial compatible provider XXX” 是正常,不是卡死
- Hysteria2 依赖 UDP,腾讯云安全组要放行出站 UDP 流量(默认已放行)
- 如果节点突然连不上:检查 easytake.work:8443 是否可达、密码/SNI 是否正确
至此,腾讯云服务器已完整配置代理内核,可长期稳定运行。
7. 手动关闭/开启代理配置
A、配置文件
修改.bashrc 文件,指令如下:
vi ~/.bashrc
添加如下代码:
# Clash 代理快捷开关(mihomo mixed-port: 7897)
alias proxy_on='export http_proxy=http://127.0.0.1:7897; export https_proxy=http://127.0.0.1:7897; export all_proxy=http://127.0.0.1:7897; echo "代理已开启(127.0.0.1:7897)"'
alias proxy_off='unset http_proxy https_proxy all_proxy; echo "代理已关闭"'
# 可选:显示当前代理状态
alias proxy_status='echo "http_proxy : ${http_proxy:-未设置}"; echo "https_proxy: ${https_proxy:-未设置}"; echo "all_proxy : ${all_proxy:-未设置}"'
让改动生效,更新:
source ~/.bashrc
B、效果展示
测试节点位置:
curl ipinfo.io
这里显示的是新加坡的节点,然后关闭代理再次测试:
这里显示的是云服务器的IP,至此我的服务器代理配置顺利完成!!!
8、ssh 代理配置
需要告诉 SSH 客户端,连接 github.com 时也要经过 Clash 的 Socks5 端口。
1. 确认端口
Clash (mihomo) 通常在 7890 或 7897 开启混合代理(Mixed Port)。我们假设你的 Socks5 端口也是 7897。
2. 修改 SSH 配置文件
编辑(或创建)你的 SSH 配置文件:
nano ~/.ssh/config
3. 添加以下配置内容
将这段内容粘贴进去:
Host github.com
HostName github.com
User git
# 注意:如果你的端口是 7890,请修改下面
ProxyCommand nc -X 5 -x 127.0.0.1:7897 %h %p
nc(netcat) 是 Linux 自带的工具。-X 5表示使用 SOCKS5 协议。-x 127.0.0.1:7897是你的 Clash 地址和端口。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com