跳转至

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
回到页面顶部