当前位置: 首页 > 面试题库 >

Docker中的SSH端口转发

薛枫
2023-03-14
问题内容

我有这两个容器,例如backend(CentOs)和mongo。我想拥有的是,可以从backend容器中连接到mongo数据库,就像它在本地运行一样,$> mongo localhost:27017

无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017

$backend> ssh -L 27017:mongo:27017 root@mongo

但是,如果执行此操作,则必须提供root密码,然后它会将我登录到mongo容器中,并且不会发生端口转发

背景:我想这样做是因为我正在运行一个Java程序,该程序连接到localhost上的Mongo数据库,而我无法更改它。


问题答案:

我找到了正确的SSH端口转发命令

$> ssh root@mongo -L 27017:localhost:27017 -Nf

通常,使用此命令的想法是您将一个非公共端口映射-通过公共服务器映射到您自己的服务器/计算机。

* `root@mongo` - the public server
* -L <port on your server>:<third server address>:<port>
* `-Nf` - Do not login

因为public serverthird server是同一台计算机/容器,所以您必须使用localhost:)



 类似资料:
  • null 因此,发生的事情可以在环回中解决,但不会通过ssh隧道。如何从docker调用,使其通过ssh隧道? 附:我用的是macOS High Sierra

  • 我遇到的问题是,我无法在我希望看到的端口上看到应用程序。我正在公开端口8080并在8080上运行uwsgi进程,但在浏览器中找不到ip地址的应用程序。我只是得到谷歌Chrome的‘此网页不可用’。(我使用的是Mac,所以我需要获得boot2docker的ip地址)。容器显然正在运行,并报告我的uwsgi和celery进程也都成功运行。 运行时,得到的响应如下 ...因此容器似乎正在接受端口8080

  • 我希望能够远程连接到公开了JMX的Java服务,但它被防火墙阻止了。我尝试使用ssh本地端口转发,但是连接失败了。查看wireshark,当您试图与jconsole连接时,它似乎希望在连接到端口9999后通过一些短暂的端口进行连接,这些端口被防火墙阻止。 有没有什么方法可以让jconsole只通过9999连接或者使用代理?这篇文章还是最好的解决方案吗?或者,我是不是漏掉了什么?

  • 问题内容: 我希望能够远程连接到公开了JMX的Java服务,但是该服务已被防火墙阻止。我尝试使用ssh本地端口转发,但是连接失败。看一下wireshark,看来当您尝试与jconsole连接时,它想在连接到受防火墙阻止的端口9999后通过一些临时端口进行连接。 有什么方法可以使jconsole仅通过9999连接或使用代理?是这篇文章仍然是最好的解决办法?还是我错过了什么? 问题答案: 有什么方法可

  • 问题内容: 由于已弃用,因此我已切换到,但我不知道如何从中打开端口。在我可以这样做: 只要SSH连接打开,它将把端口27017从VirtualBox转发到本地主机27017。请注意,我不是在寻找一种在VirtualBox中永久打开端口的方法。我怎样才能做到这一点? 问题答案: 您仍然可以从docker机器使用的VirtualBox中访问VBoxmanage.exe命令: 使用让您的虚拟机的名称。

  • 本文向大家介绍SSH端口转发实现内网穿透的实现,包括了SSH端口转发实现内网穿透的实现的使用技巧和注意事项,需要的朋友参考一下 我们局域网的机器能够访问外网,但是外网不能访问内网。因为内网访问互联网时候能确定外网的地址,外网却不能确定我们局域网内的具体地址。(ip地址有限)如果 我们在访问外网的时候,这个链接让他保持、不断,那么这个链接就相当于我们建了一条路,内网数据能出去,外网数据能进来,ssh