Linux 环境代理配置指南:终端命令行与服务化运行实战

对于开发者与云计算工程师而言,在没有图形界面的 Linux 服务器或 WSL2 开发子系统中,下载 GitHub 依赖仓库、拉取 Docker 镜像或安装境外 Python/npm 库往往面临极度缓慢的超时问题。本文将介绍在 Linux 终端中利用 Mihomo (Clash.Meta) / sing-box 二进制核心结合 systemd 进行服务化常驻运行的规范实践。

官方开源二进制来源:

Mihomo 核心官方仓库位于 GitHub(搜索 MetaCubeX/mihomo Releases);sing-box 官方二进制位于 SagerNet/sing-box Releases。根据 Linux 机器的 CPU 架构选择 linux-amd64 或 linux-arm64。

一、 获取二进制核心与配置文件

  1. 从官方 Releases 页面下载适合机器架构的 tar.gz 归档文件,解压后将可执行文件移动至标准系统路径:
    sudo mv mihomo /usr/local/bin/mihomo
    sudo chmod +x /usr/local/bin/mihomo
  2. 创建配置存储目录:
    sudo mkdir -p /etc/mihomo
  3. 使用 curl 从耶耶云后台获取的 Clash 格式订阅 URL 下载配置文件并保存为 /etc/mihomo/config.yaml:
    sudo curl -L -o /etc/mihomo/config.yaml "您的耶耶云订阅链接"

二、 配置 systemd 守护进程实现开机自启

为确保核心程序在服务器重启或后台持续稳定运行,编写一个标准的 systemd 服务定义文件:

# 创建并编辑 /etc/systemd/system/mihomo.service
sudo tee /etc/systemd/system/mihomo.service << 'EOF'
[Unit]
Description=Mihomo Daemon, A rule-based proxy in Go.
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

启动服务并将其加入系统开机自启:

sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
sudo systemctl status mihomo

三、 终端环境变量快速配置与一键开关

服务默认会在本地监听 7890 端口(或配置文件中指定的 mixed-port)。为了在日常终端中按需启用代理,建议在 ~/.bashrc 或 ~/.zshrc 中加入快捷别名函数:

# 在 ~/.bashrc 末尾添加
alias setproxy="export http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 && echo '终端代理已成功开启'"
alias unsetproxy="unset http_proxy https_proxy all_proxy && echo '终端代理已成功关闭'"

生效配置文件:source ~/.bashrc。输入 setproxy 即可开启终端加速,输入 unsetproxy 即可恢复直连。

四、 验证与 Git / 包管理器加速测试

通过向海外服务器发送请求来检验代理效果:

curl -I https://www.google.com

若返回 HTTP/2 200 或 HTTP/1.1 200 OK,说明终端代理已正常接管。此时无论是执行 git clone 还是运行 pip install 均能享有数十倍的下载速度提升。

五、 常见问题 FAQ

Linux 没有桌面浏览器,如何切换节点?
Mihomo 和 sing-box 均支持通过外部控制端口(External Controller)管理节点。您可以在本地通过浏览器访问 WebUI 控制面板(如 yacd 或 metacubexd),将连接地址指向服务器的 9090 端口即可进行图形化切换。
sudo 命令执行 apt 或 yum 时代理为何不生效?
sudo 默认会出于安全考虑重置当前用户的环境变量。若需让包管理器走代理,需在 /etc/sudoers 中添加 Defaults env_keep += "http_proxy https_proxy",或在 apt 配置文件 /etc/apt/apt.conf.d/proxy.conf 中显式声明。
前往耶耶云官网获取订阅地址

相关知识文章推荐