Administrator
发布于 2026-04-24 / 2 阅读
0
0

Linux 终端代理全攻略:从环境变量到透明代理

在 Linux 开发环境中,让命令行工具(如 gitcurlwget)走代理是刚需。本文总结了三种由浅入深的配置方案,助你彻底解决网络连接问题。


方案一:环境变量(最快、最常用)

大多数 Linux 命令行工具都会遵循 http_proxyhttps_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 aptgit)不一定会读取全局环境变量,需要单独配置。

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

🚨 注意事项

  1. 127.0.0.1 的陷阱:如果你是在 Docker 容器内,127.0.0.1 指的是容器内部。你需要将其改为宿主机的 IP(如 172.17.0.1)。

  2. DNS 污染:环境变量代理通常不处理 DNS。如果遇到域名解析失败,建议配合 proxychains4(支持代理 DNS)或在本地搭建简单的 DNS 转发器。


本文旨在提供技术交流,请在符合法律法规的环境下使用。


评论