通过 Docker 发布的端口访问 SSH 本地隧道

通过 Docker 发布的端口访问 SSH 本地隧道

我有以下设置:

[OpenSSH server] <---> [Docker container with SSH client] <---> [host machine]

我的 Docker 容器是一种 SSH 连接管理器。我在转发端口的 OpenSSH 服务器上运行的服务是一个 Web 服务器。

从容器内部,我可以成功使用curl隧道端口。但是,当我尝试将同一端口发布到主机并尝试curl从主机访问时,我得到了

curl: (56) Recv failure: Connection reset by peer

这是我用来设置隧道的 SSH 命令:

ssh -nNT -L 3000:*:9413 OPENSSH_SERVER_URL

我正在使用运行该容器

docker run --rm --name test -p 3000:3000 ssh-connection-manager

如果我登录到容器,我可以curl得到响应:

docker exec -it --entrypoint sh test
# curl localhost:3000
Hello!

我无法通过已发布的端口从主机执行相同操作:

$ curl localhost:3000
curl: (56) Recv failure: Connection reset by peer

我遗漏了什么?我怀疑它是 SSH 客户端上的连接选项或我的 OpenSSH 服务器上的配置,但我不确定。

相关内容