我有以下系统场景,其中主机 A (88.12.0.1) 和主机 B (193.11.8.1) 仅通过 SSH 连接。在主机 B (+172.17.0.2) 上有一个使用 IP 172.17.0.3 运行的 Docker 容器。
现在我在主机 A 上有一个应用程序,它必须与主机 B 上的应用程序(端口 22222)和容器上的应用程序(端口 22223)进行通信。
主机 A(端口 8081)上的另一个应用程序作为服务器运行,Docker 容器应用程序必须联系它。
到目前为止,通过在主机 A 上设置以下规则,我设法仅将流量从主机 A 转发到 B:
ssh -NL 22222:193.11.8.1:22222 username@193.11.8.1 -v
ssh -NL 22223:193.11.8.1:22223 username@193.11.8.1 -v
Run Code Online (Sandbox Code Playgroud)
只有 SSH 可用作主机 A 和主机 B 之间的端口。
上述规则中的第一个按原样工作,因为它涵盖了主机 A 上的应用程序联系主机 B 上的应用程序的第一种情况。第二个规则是将用于 docker 容器的流量从主机 A 转发到主机 B (但需要从那里转发到 docker 容器)。
主机 B 上的映射应该是将具有目标端口 22223 的传入流量转发到 Docker 容器 (172.17.03:22223)。Docker 容器在将流量发送到 8081 时,流量必须通过端口 8081 转发到主机 A,通过容器正在运行的主机 B、将主机 A …