Docker 使用 Socks5 代理(2)
2025-12-10 by dongnan
开始之前
接着 Docker 如何使用 Socks5 代理? 这篇文章开始, go-socks5-proxy 陆续开始出现问题。
找到了更简单的替代方案,直接使用 ssh 隧道。
环境描述
Docker客户端
OS: Ubuntu Server 20.04 LTS
Docker: 19.03.15
SSH
默认情况下,SSH隧道只允许本机访问,例如:
ssh -qTfnN -D 8080 x@your_host && lsof -i :8080
如果你想让局域网中的其它的主机也能访问这个隧道,可以使用以下参数:
ssh -D 8080 -g x@your_host
参数:
-D 8080 表示在本地机器的 8080 端口上创建 SOCKS 代理。
-g 允许从其他机器访问该端口。
如果要关闭这个隧道,可以直接kill它的进程ID:
lsof -i :8080 # 获得进程ID,例如 93581
kill 93581
Docker
参考 Docker 如何使用 Socks5 代理? 这篇文章。
测试
下载 busybox 镜像:
$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
e59838ecfec5: Pull complete
Digest: sha256:d80cd694d3e9xxxxxcdf367a5a1918a34fc2fd
Status: Downloaded newer image for busybox:latest
参考
- https://markvanlent.dev/2022/05/10/pulling-docker-images-via-a-socks5-proxy