在 Linux 开发环境中,让命令行工具(如 git、curl、wget)走代理是刚需。本文总结了三种由浅入深的配置方案,助你彻底解决网络连接问题。
方案一:环境变量(最快、最常用)
大多数 Linux 命令行工具都会遵循 http_proxy 和 https_proxy 环境变量。
1. 临时生效
在当前终端会话中直接输入:
Bash
# 假设你的代理运行在本地 1080 端口(Socks5 或 HTTP)
export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"
2. 永久生效
将上述命令添加到你的 Shell 配置文件中(如 ~/.bashrc 或 ~/.zshrc):
Bash
echo 'export http_proxy="socks5://127.0.0.1:1080"' >> ~/.bashrc
echo 'export https_proxy="socks5://127.0.0.1:1080"' >> ~/.bashrc
source ~/.bashrc
3. 一键开关(进阶技巧)
在 .bashrc 中定义别名,实现代理的“秒开秒关”:
Bash
alias proxy="export http_proxy='socks5://127.0.0.1:1080'; export https_proxy='socks5://127.0.0.1:1080'; echo 'Proxy ON'"
alias unproxy="unset http_proxy; unset https_proxy; echo 'Proxy OFF'"
方案二:针对性工具配置(强力生效)
有些工具(如 sudo apt 或 git)不一定会读取全局环境变量,需要单独配置。
1. 为 APT 开启代理
编辑配置文件 /etc/apt/apt.conf.d/proxy.conf(没有则新建):
Bash
Acquire::http::Proxy "http://127.0.0.1:1080/";
Acquire::https::Proxy "http://127.0.0.1:1080/";
2. 为 Git 开启代理
Bash
# 全局生效
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
3. 为 SSH 开启代理
当你需要 SSH 连入一台被墙的服务器时,修改 ~/.ssh/config:
Plaintext
Host your-remote-server
HostName 1.2.3.4
User root
# 使用 nc 命令通过本地代理中转
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
方案三:使用 Proxychains 强制代理(底层黑科技)
如果你遇到某些“硬骨头”软件(不读取环境变量,也没有代理设置),proxychains 是最终武器。它通过劫持动态库调用,强制让任何程序的 TCP 连接走代理。
1. 安装与配置
Bash
sudo apt install proxychains4 -y
编辑配置文件 /etc/proxychains4.conf,在最后一行加入你的代理地址:
Plaintext
socks5 127.0.0.1 1080
2. 使用方法
只需在原有命令前加上 proxychains4:
Bash
proxychains4 curl https://google.com
proxychains4 apt update
# 甚至可以代理你的编译任务
proxychains4 make
总结与建议
临时下载:用
export变量。长期开发:在
.bashrc设置别名(alias)。顽固程序:祭出
proxychains4。
🚨 注意事项
127.0.0.1 的陷阱:如果你是在 Docker 容器内,
127.0.0.1指的是容器内部。你需要将其改为宿主机的 IP(如172.17.0.1)。DNS 污染:环境变量代理通常不处理 DNS。如果遇到域名解析失败,建议配合
proxychains4(支持代理 DNS)或在本地搭建简单的 DNS 转发器。
本文旨在提供技术交流,请在符合法律法规的环境下使用。