在命令行环境下实现网络代理(俗称“翻墙”)通常需要借助代理工具并配置环境变量或专用代理链,以满足开发、下载资源等场景需求,以下是具体操作步骤及工具选择,涵盖主流系统和工具类型。
选择代理工具并启动代理服务
命令行翻墙的核心是先运行一个本地代理服务,将网络请求通过代理转发至目标服务器,常用工具包括Clash、V2Ray、Trojan等,其中Clash因配置灵活、支持多协议成为主流选择,以Clash为例,操作步骤如下:
-
安装Clash
- Linux(Ubuntu/Debian):
sudo apt install clash
- macOS:通过Homebrew安装
brew install clash
,或下载官方二进制文件(需从GitHub Releases获取)。 - Windows:下载对应版本的可执行文件,解压后置于系统PATH目录。
- Linux(Ubuntu/Debian):
-
获取代理配置文件
Clash运行需要config.yaml
配置文件,通常从订阅链接获取(如机场提供的节点),使用命令下载(以curl为例):curl -o config.yaml "订阅链接" # 替换为实际订阅地址
-
启动代理服务
在终端运行Clash:clash -d . # -d 指定配置文件所在目录
启动后,Clash默认监听本地
0.0.1:7890
(HTTP代理)和0.0.1:7890
(SOCKS5代理),可通过config.yaml
修改端口。
配置命令行工具使用代理
不同命令行工具需单独配置代理参数,或通过系统环境变量统一设置。
临时设置环境变量(当前终端有效)
export http_proxy="http://127.0.0.1:7890" export https_proxy="http://127.0.0.1:7890" export all_proxy="socks5://127.0.0.1:7890" # SOCKS5代理,适用于部分工具
设置后,支持环境变量的工具(如curl
、wget
、git
)会自动走代理。
永久设置环境变量(写入配置文件)
- Linux/macOS(bash):将上述
export
命令加入~/.bashrc
或~/.zshrc
,执行source ~/.bashrc
生效。 - Windows(CMD):在命令提示符中运行
set http_proxy=http://127.0.0.1:7890
(临时),或通过“系统属性-环境变量”添加永久变量。 - Windows(PowerShell):使用
$env:http_proxy="http://127.0.0.1:7890"
(临时),或修改$PROFILE
文件永久生效。
使用proxychains代理所有命令行流量
若需让所有命令行工具走代理(如apt
、ssh
等),可安装proxychains
:
- Linux:
sudo apt install proxychains
- macOS:
brew install proxychains
编辑配置文件/etc/proxychains4.conf
,将最后一行修改为:
socks5 127.0.0.1 7890
使用时,在命令前加proxychains
,
proxychains curl https://google.com
代理工具对比
工具名称 | 适用系统 | 配置方式 | 特点 |
---|---|---|---|
Clash | Linux/macOS/Windows | YAML配置文件 | 支持多协议(SS、VMess、Trojan等),规则灵活,适合复杂场景 |
V2Ray命令行版 | Linux/macOS/Windows | JSON配置文件 | 轻量级,兼容V2Ray协议,适合简单代理需求 |
Trojan-CLI | Linux/macOS/Windows | 命令行参数 | 专注于Trojan协议,抗封锁能力强,配置较简单 |
测试代理连通性
配置完成后,使用以下命令测试:
curl -I https://www.google.com # 查看HTTP响应头,若返回200则代理成功 wget -qO- https://ipinfo.io/ip # 获取出口IP,若非本地IP则代理生效
FAQs
Q1:为什么设置了代理后curl仍然无法访问?
A:可能原因包括:① 代理服务未启动(需先运行Clash等工具);② 环境变量格式错误(如缺少http://
前缀);③ 代理端口与配置文件不一致(默认7890,若修改需同步环境变量);④ 工具不支持环境变量(如部分旧版apt
需手动指定-o Acquire::http::Proxy="http://127.0.0.1:7890"
)。
Q2:命令行翻墙会影响系统其他应用吗?
A:取决于配置方式,若通过系统环境变量设置(如export http_proxy
),则所有支持环境变量的命令行工具均会走代理;若使用proxychains
,仅添加proxychains
前缀的命令会走代理;而图形界面应用(如浏览器)需单独配置代理(如设置系统代理或浏览器插件),与命令行配置无关。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15638.html