我有3台机器:
A.local ---> B.example.com
---> C.local
C.local
5000
是一个在代理B.example.com
(远程 Docker 注册表)的端口(本地 Docker 注册表)上运行服务的 Docker 容器。
我如何配置 A 以便它C.local
在尝试到达时解析/连接到B.example.com
?
我不确定这是否可能以及在 OSI 的哪个层上。我想使用,/etc/host
但这只是 DNS 分配硬编码的 IP 地址。够
了iptables
吗?
结果应该是 A 将 B 视为original-B.example.com
并将其替换为 C,即视为B.example.com
。
这样它应该C.local:5000
在尝试连接时连接到B.example.com
(在端口 443 上,如果我理解正确的话)
答案1
如果您在所有三台机器上都有 SSH,您可以执行以下操作:
[email protected] $ ssh -J B.example.com -L 5555:127.0.0.1:5000 C.local
C.local:5000
当该连接处于活动状态时,您可以通过访问进行连接127.0.0.1:5555
(5555 是任意的)。
分解
ssh
-J B.example.com
:通过 B.example.com 进行代理跳转(您需要先登录 B,然后才能转发到 C)-L 5555:127.0.0.1:5000
,将本地端口绑定127.0.0.1:5555
到最终目标端口5000。C.local
: 最终目的地