Linux 翻墙教程:Clash / sing-box 命令行与图形客户端

Linux 上用机场有两条路:桌面用户装 Clash Verge Rev、FlClash 等图形客户端,和 Windows 上的用法几乎一样;服务器或喜欢命令行的用户直接跑 mihomo(Clash Meta 内核)或 sing-box,再用 systemd 管理。

先说结论

直接答案:Linux 翻墙在桌面上最省事的方法是装 Clash Verge Rev(.deb / .rpm)或 FlClash(.deb / AppImage),导入机场 Clash 订阅后打开系统代理。没有图形界面的服务器,用 mihomo 内核加机场 Clash 订阅生成的 config.yaml,配合 systemd 开机自启,再在终端设置 https_proxy 环境变量。sing-box 也能用,但需要 sing-box 格式的配置。

Linux 翻墙的情况差别很大:有人用 Ubuntu 桌面日常上网,有人在服务器上只需要 git 和 Docker 能拉到海外资源,也有人想在树莓派上做全家的代理网关。下面先给出选择表,再分别讲图形客户端和命令行两种方式。

Linux 翻墙方案怎么选

方案订阅格式适合安装包
Clash Verge RevClash桌面用户,新手首选.deb / .rpm
FlClashClash桌面用户,界面简单.deb / AppImage
Clash Party / SparkleClash想要更多选项的桌面用户.deb / .rpm
Throne通用原 NekoRay 用户、只有通用订阅Debian / Fedora 对应包
v2rayN(Linux 版)通用只有通用订阅对应架构的包
mihomo 命令行Clash服务器、无图形界面、开发机单个二进制文件
sing-box 命令行sing-box JSON熟悉 sing-box 配置的用户二进制或 .deb / .rpm
ShellCrashClash路由器、软路由、小设备脚本安装

官方下载入口见 Clash Verge Rev 下载、FlClash 下载、Throne 下载、sing-box 下载和 ShellCrash 下载。先用 uname -m 查看架构:x86_64 选 amd64 / x64,aarch64 选 arm64。

Linux 翻墙方式一:图形客户端(桌面用户)

安装 Clash Verge Rev

  1. 下载安装包。到 GitHub Releases 下载最新版:Ubuntu、Debian、Linux Mint 选 .deb,Fedora、openSUSE 选 .rpm。
  2. 安装。Debian 系执行 sudo apt install ./下载的文件名.deb,Fedora 执行 sudo dnf install ./下载的文件名.rpm。用 apt 安装本地包会自动处理依赖。
  3. 导入订阅。从应用菜单打开 Clash Verge Rev,在「订阅」页粘贴机场 Clash 订阅,点导入并选中该订阅。
  4. 选节点。在「代理」页测速选节点,模式保持「规则」。
  5. 打开系统代理。在「设置」里打开系统代理。GNOME、KDE 桌面会读取这项设置,Firefox、Chrome 随之生效。
  6. 按需开 TUN。终端、Docker 等也要走代理时,在设置里打开虚拟网卡模式,按提示授权。

界面和 Windows 版一致,详细说明见 Clash Verge Rev 教程。

FlClash 和 AppImage

FlClash 提供 .deb 和 AppImage。AppImage 不需要安装:下载后执行 chmod +x 文件名.AppImage 赋予执行权限,双击或在终端运行即可。部分发行版运行 AppImage 需要额外安装 FUSE 相关的包,按报错提示安装。导入订阅的方法和安卓版相同,见FlClash 教程。

系统代理在不同桌面环境下表现不一样。GNOME 和 KDE 支持较好;一些轻量窗口管理器没有统一的系统代理设置,浏览器可能不跟随,这时直接开 TUN 模式,或者在浏览器里手动填代理地址。

Linux 翻墙方式二:mihomo 命令行(服务器 / 无图形界面)

mihomo 就是原来的 Clash Meta 内核,一个二进制文件就能跑,非常适合服务器和开发机。整体流程:下载内核 → 准备配置 → 用 systemd 托管 → 设置代理。

  1. 下载内核。到 mihomo 的 GitHub 官方仓库 Releases 下载 linux 对应架构的压缩包(x86_64 选 amd64),解压后放到 /usr/local/bin/mihomo 并赋予执行权限。
  2. 准备配置目录。创建 /etc/mihomo,把机场的 Clash 订阅下载为该目录下的 config.yaml。
  3. 首次运行测试。前台运行一次,看有没有报错。首次启动会下载 GeoIP 等规则数据,网络不通时可能失败,可以先在其他机器下载好放进配置目录。
  4. 交给 systemd。写一个服务文件,设置开机自启。
# 下载订阅为配置文件(链接加引号,避免 & 被 shell 解析)
sudo mkdir -p /etc/mihomo
sudo curl -L -o /etc/mihomo/config.yaml "你的 Clash 订阅链接"

# 前台测试运行,-d 指定配置目录
sudo /usr/local/bin/mihomo -d /etc/mihomo

如果下载下来的文件不是 YAML(比如是一串 Base64),说明机场按客户端标识返回格式,可以给 curl 加上 -A 参数,把 User-Agent 设为 Clash 类客户端的名称再下载一次。

systemd 服务文件示例,保存为 /etc/systemd/system/mihomo.service:

[Unit]
Description=mihomo
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
systemctl status mihomo        # 查看运行状态
journalctl -u mihomo -f        # 查看实时日志

订阅需要定期更新。最简单的办法是写个脚本重新下载 config.yaml 后执行 systemctl restart mihomo,再用 cron 或 systemd timer 每天运行一次。注意更新后检查配置是否有效,避免下载失败时覆盖掉原有配置。

选节点和 Web 面板

命令行下切换节点不方便,可以在配置里设置 external-controller: 127.0.0.1:9090 打开控制接口,再用 metacubexd、zashboard 等 Web 面板连接,在浏览器里测速和选节点。服务器上请把它保持在 127.0.0.1,通过 SSH 端口转发访问,不要直接暴露到公网;需要的话再设置 secret 访问密钥。

Linux 翻墙方式三:sing-box 命令行

sing-box 是另一个流行的代理内核,Hiddify、Karing、Throne 等客户端都基于它。它的配置是 JSON 格式,和 Clash 的 YAML 不通用:

  1. 安装。按 sing-box 官方文档提供的方式安装,或从 GitHub Releases 下载对应发行版的 .deb / .rpm 包。
  2. 准备配置。机场提供 sing-box 订阅就直接下载为 /etc/sing-box/config.json;没有的话需要转换,见订阅转换教程。
  3. 检查配置。执行 sing-box check -c /etc/sing-box/config.json,没有输出说明格式正确。
  4. 运行。前台测试用 sing-box run -c /etc/sing-box/config.json;用软件包安装的一般自带 systemd 服务,执行 sudo systemctl enable --now sing-box。

sing-box 不同大版本之间配置字段有过调整,旧配置在新版本上可能报错,按报错提示或官方迁移说明修改。更详细的用法见 sing-box 教程。

让终端和程序走代理

内核跑起来后,本机会监听一个代理端口(看 config.yaml 里的 mixed-port 或 port)。让程序使用它有几种方式:

环境变量

执行 export http_proxy=http://127.0.0.1:端口号 https_proxy=http://127.0.0.1:端口号,当前终端里的 curl、git、pip 等会走代理。写进 ~/.bashrc 可以每次自动生效,但内核没运行时会导致终端断网。

TUN 模式

在配置里启用 tun,整机流量都会进入代理,不用一个个程序设置。需要 root 权限,或给二进制授予 cap_net_admin 能力。

apt / dnf

sudo 默认不继承普通用户的环境变量。可以用 sudo -E,或者在包管理器自己的配置文件里单独设置代理。

Docker

Docker 拉镜像由守护进程完成,需要给 Docker 服务单独配置代理(systemd 的 drop-in 配置),或者开 TUN 模式。

验证是否生效:执行 curl -I https://www.google.com,有返回头说明代理正常。

手动设置桌面系统代理

用命令行内核但又在桌面环境下工作时,可以手动设置系统代理,让浏览器跟随:

  • GNOME(Ubuntu 默认桌面):打开「设置 → 网络 → 网络代理」,选手动,HTTP 和 HTTPS 代理都填 127.0.0.1 和端口号,忽略的主机保留 localhost 等默认值。
  • KDE Plasma:在「系统设置」的网络相关设置里找到代理,选择手动配置并填写同样的地址和端口。
  • 只对浏览器生效:Firefox 在「设置 → 网络设置」里可以单独填写代理,不影响系统其他程序。

停用内核后记得把系统代理改回「关闭」或「无」,否则浏览器会因为连不上代理而打不开任何网页。

进阶:在树莓派或小主机上做代理网关

家里有一台常开的 Linux 小主机或树莓派,可以让它跑 mihomo,开启局域网访问,其他设备把代理指向它的局域网地址。这样电视、游戏机等装不了客户端的设备也能使用。做法是在配置里开启允许局域网连接(allow-lan),并设置只在内网接口上监听,再在其他设备上填写 HTTP 代理。更彻底的方案是做透明网关或者直接在路由器上部署,见 OpenClash 教程和 ShellCrash。ShellCrash 用一行命令就能在多数 Linux 设备和路由器固件上部署 Clash 内核,带有菜单式的管理界面,适合不想手写服务文件的用户,但它最近更新放缓,使用前看一下项目说明。这类方案只建议在自己家里的网络中使用,不要对公网开放。

其他发行版说明

Arch、Manjaro 用户可以在 AUR 或社区仓库里找到 Clash Verge Rev、mihomo、sing-box 等软件包,安装前看清楚打包者和更新时间,优先选择活跃维护的包。NixOS、Gentoo 等发行版也有对应的打包,配置思路相同:内核加配置文件,再交给系统服务管理。不确定时,直接用官方 Releases 里的二进制文件最稳妥。

Linux 翻墙常见问题排查

现象原因解决
deb 安装报依赖错误缺少系统组件用 sudo apt install ./文件.deb 自动补依赖
AppImage 打不开没有执行权限或缺少 FUSEchmod +x;按提示安装 FUSE 相关包
mihomo 启动报配置错误下载到的不是 Clash 配置确认是 Clash 订阅;用 -A 指定 User-Agent 重新下载
启动卡在下载 GeoIP网络无法访问规则数据源提前下载规则文件放进配置目录
节点全部超时订阅过期、系统时间不准更新订阅;开启 NTP 时间同步;见节点超时排查
浏览器能用、终端不能终端没设置代理设置环境变量或开 TUN
sudo 命令不走代理sudo 不继承环境变量用 sudo -E 或单独配置
TUN 开启失败权限不足root 运行或授予 cap_net_admin

订阅本身导入不了看订阅导入失败。

注意事项

  • 服务器上不要把端口开到公网。监听地址保持 127.0.0.1,控制面板设置访问密钥。代理端口暴露在公网,等于把你的机场流量送给别人。
  • 订阅链接别写进公开仓库。写在脚本里的订阅地址容易随 dotfiles 一起被推到 GitHub,泄露后到机场后台重置,见订阅链接安全。
  • 只从官方仓库下载二进制。内核以 root 权限运行,来源不明的二进制风险很高。
  • 保持时间同步。部分协议对时间敏感,确认系统开启了 NTP。
  • 遵守所在地法律法规和平台规则。在公司或学校的服务器上部署代理前,先确认相关规定。

GitHub 打不开时怎么在 Linux 上装客户端

Linux 翻墙经常卡在第一步:客户端和内核都在 GitHub 上发布,而还没翻墙时 GitHub 下载很慢甚至打不开。解决思路是「借一台已经能翻墙的设备」:

  1. 在别的设备上下载。用已经能翻墙的电脑或手机,下载 Linux 版安装包或内核压缩包,注意选对架构(x86_64 或 arm64)。
  2. 传到 Linux 上。桌面机用 U 盘或局域网共享即可;服务器用 scp 文件名 用户名@服务器地址:~/ 上传。
  3. 核对文件。如果 Releases 页面提供了校验值,用 sha256sum 文件名 对比一下,避免文件下载不完整或被替换。
  4. 提前准备数据文件。mihomo、sing-box 等内核第一次启动时可能会自动下载 GeoIP、GeoSite 一类的数据库,没翻墙时这一步会失败、导致启动报错。可以在另一台设备上把这些文件一起下载好,放进内核的配置目录,文件名以报错提示为准。
  5. 配置文件也可以先下好。机场订阅地址多数情况下能直接访问;如果下载不了,同样在能翻墙的设备上把配置文件保存下来,一并传过去。

第一次跑通之后,后续的客户端更新、订阅更新都可以走代理完成,不需要再这样中转。另外,部分显卡驱动或桌面环境下,图形客户端可能启动失败或窗口空白,这时不必死磕,直接改用上面的 mihomo 命令行方式加 Web 面板,功能是一样的。

Linux 上让 git、pip、npm 单独走代理

环境变量对大部分命令行工具有效,但开发时常用的几个工具各有自己的代理设置,有时环境变量设了它们也不理。下面按工具列出单独设置的方法,「端口号」换成你配置里的 mixed-port 或 port:

工具设置代理取消
git(HTTPS 克隆)git config --global http.proxy http://127.0.0.1:端口号git config --global --unset http.proxy
git(只代理 GitHub)git config --global http.https://github.com.proxy http://127.0.0.1:端口号git config --global --unset http.https://github.com.proxy
pippip install --proxy http://127.0.0.1:端口号 包名去掉参数即可
npmnpm config set proxy http://127.0.0.1:端口号,https-proxy 同样设置npm config delete proxy

用 SSH 地址([email protected])克隆时,上面的 http.proxy 不起作用,要在 ~/.ssh/config 里给 GitHub 单独加代理:

Host github.com
    ProxyCommand nc -X 5 -x 127.0.0.1:端口号 %h %p

这里的 nc 需要支持 -X 参数的 OpenBSD 版 netcat,Debian、Ubuntu 上一般叫 netcat-openbsd。如果 22 端口在你的网络里被限制,也可以改用 GitHub 提供的 443 端口 SSH 地址,具体写法以 GitHub 官方文档为准。只想全部省事的话,直接开 TUN 模式,所有工具都不用再单独配置。

Linux 代理到底有没有生效:逐项检查

「浏览器能翻、终端不行」「curl 行、某个程序不行」是 Linux 翻墙最常见的困惑。按下面的顺序检查,能很快定位是内核、节点还是程序本身的问题:

  1. 先确认内核在监听。执行 ss -lntp | grep 端口号,能看到 mihomo 或 sing-box 在监听才继续往下查。
  2. 绕开环境变量直接测。执行 curl -x http://127.0.0.1:端口号 -I https://www.google.com。这一步失败,说明问题在节点或订阅,去看节点超时排查。
  3. 检查环境变量。执行 env | grep -i proxy 看当前终端有没有设置。有的程序只认小写 http_proxy,有的只认大写,两种都设上最保险。
  4. 检查 no_proxy。如果 no_proxy 写得太宽,比如包含了整个域名后缀,相关地址会被直接放行不走代理。
  5. 区分 HTTP 和 SOCKS。只支持 SOCKS 的程序要用 all_proxy=socks5://127.0.0.1:端口号;mihomo 的 mixed-port 同时支持 HTTP 和 SOCKS。
  6. 看内核日志。journalctl -u mihomo -f 里能看到每个连接匹配到的规则和策略组;请求根本没出现在日志里,说明程序没有走代理。

以上都正常但某个程序仍不走代理,多半是它不读环境变量,用上一节的单独设置,或者直接开 TUN 模式。

Linux 上用哪家机场

Linux 翻墙的用户多数是开发者,拉代码、下载依赖、拉镜像时流量消耗大,速度和稳定性都重要。可以优先看专线机场,下面是本期专线机场,更多选择见 IPLC 专线机场、大流量机场和电脑梯子推荐(含各客户端支持系统对照表)。

#机场线路月付起流量每 GBAI流媒体评分状态
1 WgetCloud IEPL / IPLC 专线 + BGP 中转 ¥79 按套餐,入门档约 100GB 级 — ✓✓ 9.5 推荐
2 飞鸟云 内网专线 IPLC ¥25 150GB / 月 ¥0.17 ✓✓ 9.3 推荐
3 TAG IEPL 专线 ¥114 500GB / 月 ¥0.23 ✓✓ 9.3 推荐
4 二猫云主推 三网优化 IEPL + 中转混合 ¥20 60GB – 130GB / 月 ¥0.15 ✓✓ 9.2 推荐
5 灵云 IEPL 纯专线 ¥22 120GB / 月 ¥0.18 ✓✓ 9.2 推荐
6 天机阁 内网专线 + 专职技术运维 ¥26 160GB / 月 ¥0.16 ✓✓ 9.2 推荐
7 闪电猫 企业级 IPLC 专线 ¥30 200GB / 月 ¥0.15 ✓✓ 9.2 推荐
8 宇宙云主推 IEPL 专线 + 中转 ¥25 60GB – 120GB / 月 ¥0.21 ✓✓ 9.0 推荐

点表头可排序。价格、流量和每 GB 按官网核对于 2026 年 10 月 24 日;AI / 流媒体为官网标注(✓ 标注支持,△ 部分或需自测,✗ 未标注)。

下一步阅读

图形客户端细节看 Clash Verge Rev 教程;sing-box 配置看 sing-box 教程;订阅格式转换看订阅转换;路由器部署看 OpenClash 教程;Windows 和 Mac 分别见 Windows 翻墙教程、Mac 翻墙教程。

常见问题

Linux 翻墙用什么客户端?

桌面环境用 Clash Verge Rev 或 FlClash,导入机场 Clash 订阅即可;只有通用订阅可以用 v2rayN 的 Linux 版或 Throne;没有图形界面的服务器用 mihomo 或 sing-box 命令行版。

Ubuntu 怎么安装 Clash Verge Rev?

到 Clash Verge Rev 的 GitHub Releases 下载 amd64 架构的 .deb 包,用 sudo apt install ./文件名.deb 安装,安装后从应用菜单打开,在「订阅」页导入机场 Clash 订阅。

服务器没有图形界面,Linux 翻墙怎么用机场?

下载 mihomo 内核,把机场 Clash 订阅下载为 config.yaml,用 systemd 托管运行;然后在终端设置 http_proxy / https_proxy 环境变量指向本机端口,或开启 TUN 模式接管全部流量。

mihomo 和 Clash 是什么关系?

mihomo 就是原来的 Clash Meta 内核,原版 Clash 停更后由社区继续维护,兼容 Clash 配置并支持更多新协议。Clash Verge Rev、FlClash 等客户端内部用的都是它。

sing-box 能直接用机场订阅吗?

sing-box 使用自己的 JSON 配置格式,不能直接读取 Clash 订阅或通用订阅。需要机场提供 sing-box 格式订阅,或者自己转换,见订阅转换教程。

Linux 终端怎么走代理?

执行 export https_proxy=http://127.0.0.1:端口号 http_proxy=http://127.0.0.1:端口号 即可让当前终端走代理;想让所有程序都走代理,开启客户端或内核的 TUN 模式。

Linux 开 TUN 模式需要 root 吗?

需要创建虚拟网卡的权限。可以用 root 运行,或者给内核二进制文件授予 cap_net_admin 能力;图形客户端一般会在开启时提示授权或安装服务。

在 VPS 上跑代理客户端安全吗?

可以,但要把监听地址限制在 127.0.0.1,不要把代理端口和控制面板暴露到公网,否则任何人都能用你的机场流量。

Linux 上图形客户端打不开或窗口空白怎么办?

先在终端里启动它,看报错信息。AppImage 检查执行权限和 FUSE;个别显卡驱动或桌面环境下图形界面可能无法正常显示,可以换另一个图形客户端,或者改用 mihomo 命令行加 Web 面板。

运行 mihomo 提示 cannot execute binary file 怎么办?

多半是下错了架构或系统。先用 uname -m 查看:x86_64 下载 amd64 的包,aarch64 下载 arm64 的包,并确认下载的是 linux 版本;解压后用 chmod +x 赋予执行权限再运行。

Linux 上 git clone GitHub 很慢或超时怎么办?

HTTPS 地址用 git config --global http.proxy 指向本机代理端口;SSH 地址要在 ~/.ssh/config 里给 github.com 加 ProxyCommand。也可以直接开 TUN 模式,所有程序都会走代理。

终端设置了代理,curl 还是打不开 Google?

先用 curl -x http://127.0.0.1:端口号 直接测,失败说明节点或订阅有问题;成功则检查环境变量大小写、no_proxy 是否把地址排除,以及端口号是否和配置里的一致。

更多问题见机场问答库:选机场、客户端、连不上、ChatGPT 和流媒体的常见问题都在这里。