Linux 与 Docker 代理配置全指南

Linux 与 Docker 代理配置全指南
abinng😶🌫️auther: abinng date: 2026-03-11 17:01
createDate:2026-03-11 17:01
Windows 宿主机配置
首先要确保你的 Clash 允许来自局域网的连接,并找到宿主机的局域网 IP。
开启局域网共享:
- 打开 Clash Verge。
- 在 设置 (Settings) 或主界面中,找到 允许局域网 (Allow LAN) 开关,确保它是 开启 状态。
- 查看代理端口,通常是
7890或7897(Clash Verge 默认通常是 7897)。
获取宿主机 IP 地址:
- 在 Windows 上打开终端(CMD 或 PowerShell),输入
ipconfig。 - 找到你的物理网卡(通常是“以太网适配器”或“无线局域网适配器”)的 IPv4 地址。
- 注意: 如果你使用的是 WSL2,IP 地址通常在
vEthernet (WSL)适配器下。
- 在 Windows 上打开终端(CMD 或 PowerShell),输入
配置终端代理
打开配置文件
1 | vi ~/.bashrc |
将下面内容加入到末尾,记得修改ip和代理监听端口
1 | # ========================================== |
保存并刷新配置
1 | source ~./bashrc |
日常使用方法:
- 平时不代理: 打开终端,正常用,完全不影响你访问国内源。
- 遇到墙了: 比如
git clone卡住了,直接输入proxy,回车。 - 检查一下: 不确定代没代理上?输入
checkproxy,它会告诉你当前的环境变量并 ping 一下 Google 确认。 - 用完关掉: 下载完了,输入
unproxy,回车,恢复直连。
配置 Docker 镜像拉取代理
Docker 镜像拉取常常出现网络问题,配置的镜像源又不稳定,需要经常换,很麻烦。
我们可以在 Linux 虚拟机中通过宿主机的 Clash Verge 下载 Docker 镜像
方法一、写死配置
Docker 的镜像拉取是由 Docker Daemon
后台进程完成的,因此直接在终端 export 环境变量往往对
docker pull 无效。最标准的方法是创建 systemd 配置。
- 创建配置目录:
1 | sudo mkdir -p /etc/systemd/system/docker.service.d |
创建代理配置文件:
使用编辑器创建一个名为
http-proxy.conf的文件:
1 | sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf |
写入以下内容:
请将
192.168.x.x替换为你刚才查到的 Windows 宿主机 IP,将7897替换为你的 Clash 端口。
1 | [Service] |
- 保存并重启 Docker:
1 | sudo systemctl daemon-reload |
方法二、脚本开关
这个不推荐,因为代价太大了,每次使用都需要重启服务
将下面这段添加到 ~/.bashrc 中:
1 | # 开启 Docker Daemon 代理 |
验证配置是否成功
执行以下命令查看 Docker 的环境变量:
1 | docker info | grep Proxy |
如果你看到输出中包含了你设置的 IP 和端口,说明配置已生效。现在尝试
docker pull 一个镜像,速度应该会显著提升。
配置 Docker 容器运行代理
如果你的容器内部程序需要访问外网(例如在容器内执行
apt-get 下载软件包,或者容器内的 Node/Python 脚本调用外部
API),有以下两种常见方法:
方法一:全局配置(推荐) 在宿主机当前用户的家目录下创建或修改 Docker 客户端配置文件。这会自动为所有新启动的容器注入代理环境变量。
- 创建并编辑配置文件:
1 | mkdir -p ~/.docker |
- 写入以下配置(请替换 IP 和端口为你自己的配置):
1 | { |
注意: 此配置只对修改后新创建的容器生效,不会影响已经在运行的容器。
方法二:临时指定(单次运行)
如果你不想全局配置,只想在某次启动容器时使用代理,可以在
docker run 命令中直接通过 -e
传入环境变量:
1 | docker run -e HTTP_PROXY="http://192.168.x.x:7897" -e HTTPS_PROXY="http://192.168.x.x:7897" -it ubuntu bash |
Docker 构建镜像代理
当我们在编写 Dockerfile 并使用 docker build
制作镜像时,通常会执行 RUN apt-get update 或
RUN pip install 等联网命令。此时也需要配置代理。
方法:使用 --build-arg 参数 在执行
build 命令时临时传入构建参数:
1 | docker build \ |
提示: 如果你在上一步中已经配置了
~/.docker/config.json,那么docker build会自动读取并使用该代理配置,你就不需要每次手动添加--build-arg了。
常见问题排查 (Troubleshooting)
如果依然无法连接,请检查以下两点:
Windows 防火墙: Windows 防火墙可能会拦截来自虚拟机的入站流量。
- 简单测试: 暂时关闭 Windows 防火墙看是否能通。
- 正确做法: 在“高级安全 Windows 防火墙”中,为 Clash Verge 所在的端口(如 7897)添加一条 入站规则,允许 TCP 连接。
虚拟机网络模式:
- 如果是 NAT 模式,直接使用宿主机 IP 通常没问题。
- 如果是 桥接模式,请确保宿主机和虚拟机在同一个网段。
Clash 内部设置: 确保 Clash 没有开启“仅限本机”之类的严格访问控制。







