Linux系统怎么配代理IP?环境变量、apt和Docker三种代理设置方法

环境变量curl/wget/Python、apt包管理器、Docker拉镜像和容器内三种代理设置
发布于
2

Windows和手机上配代理是图形界面点几下,Linux全在命令行和配置文件里。本文覆盖最常见的三种场景:环境变量让命令行程序走代理、apt包管理器走代理装软件、Docker容器和构建时走代理。

环境变量——让curl、wget、Python等走代理

Linux下的命令行工具(curl、wget、git、Python等)通过环境变量读取代理设置。一行搞定:

# HTTP代理
export http_proxy="http://代理IP:端口"
export https_proxy="http://代理IP:端口"

# SOCKS5代理
export http_proxy="socks5://代理IP:端口"
export https_proxy="socks5://代理IP:端口"

# 有认证的代理
export http_proxy="http://用户名:密码@代理IP:端口"

# 验证
curl https://ip.sb

以上只在当前终端窗口有效。关掉终端就没了。持久化写到 ~/.bashrc 或 /etc/environment。不想走代理的域名加no_proxy:export no_proxy=”localhost,127.0.0.1,.local”。

天行IP的静态代理月付6元起,邀请码 blsj 享折扣。Linux服务器配代理直接在环境变量里填节点信息。

apt走代理——装软件时翻墙

apt默认直连不读环境变量。单独配:

# 在/etc/apt/apt.conf.d/95proxies里
Acquire::http::Proxy "http://代理IP:端口";
Acquire::https::Proxy "http://代理IP:端口";
# apt update走代理拉包列表

或者用命令临时:sudo apt -o Acquire::http::Proxy=”http://代理IP:端口” update。

Docker里配代理

Docker Pull拉镜像走代理:mkdir -p /etc/systemd/system/docker.service.d → 创建 /etc/systemd/system/docker.service.d/proxy.conf → 写入:

[Service]
Environment="HTTP_PROXY=http://代理IP:端口"
Environment="HTTPS_PROXY=http://代理IP:端口"
systemctl daemon-reload && systemctl restart docker

容器里需要访问外网的:docker run加 -e http_proxy=http://代理IP:端口。Docker Build时走代理:docker build –build-arg http_proxy=http://代理IP:端口。

常见问题

配了环境变量但程序不走代理?

有些程序不遵守环境变量约定(比如ping、nslookup)。用proxychains强制代理——apt install proxychains4 → proxychains4 命令 → 把命令的网络流量强制走代理通道。

多个代理切换麻烦怎么办?

写个alias在 ~/.bashrc 里快速切换:alias proxy-on=’export http_proxy=…’、alias proxy-off=’unset http_proxy https_proxy’。或者用proxychains维护多个代理配置。

systemd启动的服务怎么配代理?

在服务的systemd文件里加Environment=”http_proxy=http://…”然后systemctl daemon-reload + restart。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600