Linux翻墙的特殊性
Linux用户群体中开发者居多,翻墙往往不仅是为了浏览网页,更是为了git clone、docker pull、pip install、apt update等开发工作中的日常需求。Linux翻墙需要同时解决图形界面和命令行两个层面的代理问题。
客户端选择
Clash系
| 客户端 | 界面 | 特点 |
|---|---|---|
| Clash Verge Rev | GUI | 跨平台,有图形界面,推荐桌面Linux用户 |
| mihomo (Clash Meta内核) | CLI | 纯命令行,适合服务器/无桌面环境 |
| FlClash | GUI | Flutter开发的GUI客户端,界面美观 |
其他
- sing-box:新一代通用代理内核,命令行方式运行,配置灵活
- v2rayA:Web界面管理的V2Ray客户端,通过浏览器操作
- Xray/V2Ray:直接使用核心程序+配置文件,最轻量
方案一:Clash Verge Rev(桌面用户推荐)
安装
根据你的发行版选择安装方式:
- Ubuntu/Debian:下载 .deb 包,执行
sudo dpkg -i clash-verge*.deb - Fedora/RHEL:下载 .rpm 包,执行
sudo rpm -i clash-verge*.rpm - Arch:AUR中有
clash-verge-rev-bin包 - AppImage:通用格式,下载后
chmod +x直接运行
配置与使用
与macOS/Windows版本操作一致:导入订阅 → 选择节点 → 开启系统代理。但Linux下有几个注意点:
- 开启TUN模式需要root权限(首次会提示输入密码)
- 部分桌面环境(如KDE)的系统代理设置可能与GNOME不同,建议开启TUN模式确保全局生效
- 如果使用Wayland显示协议,确保客户端版本支持
方案二:mihomo命令行(服务器/无桌面环境)
对于没有图形界面的Linux服务器或VPS,使用mihomo(Clash Meta内核)通过命令行运行。
安装步骤
- 从GitHub下载对应架构的二进制文件(amd64/arm64)
- 解压并放到 /usr/local/bin/ 目录
- 创建配置目录:
mkdir -p ~/.config/mihomo - 将机场的Clash配置文件(YAML格式)下载到配置目录
- 运行:
mihomo -d ~/.config/mihomo
配置为系统服务(开机自启)
创建systemd服务文件使mihomo在后台持续运行,即使终端关闭也不会中断:
- 创建服务文件 /etc/systemd/system/mihomo.service
- 启动服务:
sudo systemctl start mihomo - 设置开机自启:
sudo systemctl enable mihomo - 查看运行状态:
sudo systemctl status mihomo
Web Dashboard
mihomo默认提供Web API,可以通过浏览器面板管理。在配置文件中设置 external-controller 和 external-ui 后,访问 http://127.0.0.1:9090/ui 即可在浏览器中切换节点和查看流量。
常用的Dashboard有 yacd 和 metacubexd,下载静态文件放到指定目录即可。
方案三:v2rayA(Web管理界面)
v2rayA是一个通过浏览器管理的代理客户端,特别适合不想折腾命令行配置的用户。
优势
- 安装简单,一键导入订阅
- 浏览器操作界面,直观友好
- 支持透明代理(TUN/tproxy),全局代理效果好
- 支持SS、VMess、VLESS、Trojan等主流协议
安装
v2rayA的安装脚本支持主流发行版,通常几条命令即可完成安装。安装后通过浏览器访问 http://127.0.0.1:2017 进入管理界面。
终端环境变量代理设置
无论使用哪个客户端,确保命令行工具走代理都需要设置环境变量。
临时设置
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
永久设置
将上述命令写入 ~/.bashrc 或 ~/.zshrc,每次打开终端自动生效。
代理别名(推荐)
在shell配置文件中添加两个快捷命令,随时开关代理:
alias proxy_on='export https_proxy=... http_proxy=... all_proxy=...'alias proxy_off='unset https_proxy http_proxy all_proxy'
需要代理时输入 proxy_on,不需要时输入 proxy_off。
特定工具的代理设置
Git
Git有独立的代理设置,不读取环境变量中的http_proxy:
- HTTP代理:
git config --global http.proxy http://127.0.0.1:7890 - SOCKS5代理:
git config --global http.proxy socks5://127.0.0.1:7891 - 取消代理:
git config --global --unset http.proxy
也可以只对GitHub设置代理,国内Git仓库(如Gitee)不受影响:git config --global http.https://github.com.proxy socks5://127.0.0.1:7891
Docker
Docker daemon需要单独配置代理才能拉取境外镜像。编辑 /etc/docker/daemon.json 或创建systemd代理配置文件,然后重启Docker服务。
apt / yum
包管理器通常会读取环境变量中的代理设置。如果设置了proxy_on仍不生效,可以在apt配置或yum配置中直接指定代理地址。
SSH
通过代理连接SSH可以使用ProxyCommand。在 ~/.ssh/config 中配置,使用nc或connect-proxy通过代理建立SSH连接。
透明代理(全局代理方案)
Linux上实现真正的全局代理可以使用透明代理方案:
- TUN模式:Clash Verge/mihomo的TUN模式,创建虚拟网卡接管所有流量
- tproxy:通过iptables重定向所有TCP/UDP流量到代理,配置复杂但效果最好
- nftables:新版Linux内核推荐使用nftables代替iptables
对于桌面Linux用户,直接使用客户端的TUN模式最省心。对于服务器或路由器场景,tproxy/nftables方案更灵活。
总结
- 桌面Linux用户:安装Clash Verge Rev,开启TUN模式,一劳永逸
- 服务器用户:mihomo + systemd服务 + Web Dashboard
- 开发者:重点配置好环境变量和Git/Docker代理,使用proxy_on/off别名快速切换


