我正在尝试在工作中建立一个测试 Docker 平台。我需要拉取图像,但无法这样做,因为测试服务器没有直接的互联网访问(有防火墙)。还有另一台服务器可以连接到互联网,但只能通过代理。在测试服务器和可访问互联网的服务器之间,只有少数端口是开放的。我想我可以在两者之间建立一条隧道,但不确定如何。
从测试服务器打开可访问 Internet 的端口:
80/tcp
111/tcp
2049/tcp
7001/tcp
7002/tcp
从 Internet 可访问到测试打开的端口:
22/tcp
1720/tcp
我在可访问 Internet 的服务器上的 .bash_profile 中配置了 http_proxy:
export http_proxy=http://username:password@internet-server:8080/
答案1
您可以使用 tun 网络伪设备设置基于 ssh 的虚拟专用网络;man ssh
举个例子。如果您没有可访问互联网的服务器的管理员访问权限,您可能会考虑穿梭去完成同样的事情。
答案2
我得到了这个工作。
从具有互联网访问权限的服务器:
ssh -R any-port:proxy-ip:proxy-port user@testserver
然后,一旦我进入测试服务器:
export http_prox=http://username:password@localhost:any-port/
例如:
ssh -R 2001:proxy-ip:8080 root@testserver
[root@testserver]# export http_proxy=http://proxyuser:proxyuser-password@localhost:2001/
[root@testserver]# export https_proxy=https://proxyuser:proxyuser-password@localhost:2001/