我希望能够远程连接到公开了JMX的Java服务,但是该服务已被防火墙阻止。我尝试使用ssh本地端口转发,但是连接失败。看一下wireshark,看来当您尝试与jconsole连接时,它想在连接到受防火墙阻止的端口9999后通过一些临时端口进行连接。
有什么方法可以使jconsole仅通过9999连接或使用代理?是这篇文章仍然是最好的解决办法?还是我错过了什么?
有什么方法可以使jconsole仅通过9999连接或使用代理?是这篇文章仍然是最好的解决方案?还是我错过了什么?
是的,那篇文章是对的。
当您在服务器(-Dcom.sun.management.jmxremote.port=####
)上指定JMX端口时,实际上 是
在为应用程序指定注册表端口。当您连接时,它提供了一个额外的服务器端口,jconsole实际上可以完成其所有工作。若要转发给工作,你需要知道 这两个
注册表和服务器端口。
在将注册表端口和服务器端口都设置为8000的情况下,运行以下应用程序可以运行您的应用程序。有关更多详细信息,请参见此处。
-Dcom.sun.management.jmxremote.port=8000
-Dcom.sun.management.jmxremote.rmi.port=8000
-Djava.rmi.server.hostname=127.0.0.1
顺便说一句,我的SimpleJMX库允许您轻松设置两个端口,并且可以将它们设置为相同的端口。
因此,一旦您知道需要转发的两个端口,就可以设置ssh
命令。例如,如果将注册表和服务器端口配置为8000,则可以执行以下操作:
ssh -L 8000:localhost:8000 remote-host
这将创建一个本地端口8000,该端口转发到远程主机上的localhost:8000。-L
如果需要转发多个端口,则可以指定多个参数。然后,您可以将jconsole连接到localhost:8000,它将适当地连接到远程主机。
另外,如果您的服务器具有多个接口,则可能需要设置java.rmi.server.hostname
变量以绑定到正确的接口。
-Djava.rmi.server.hostname=10.1.2.3
我希望能够远程连接到公开了JMX的Java服务,但它被防火墙阻止了。我尝试使用ssh本地端口转发,但是连接失败了。查看wireshark,当您试图与jconsole连接时,它似乎希望在连接到端口9999后通过一些短暂的端口进行连接,这些端口被防火墙阻止。 有没有什么方法可以让jconsole只通过9999连接或者使用代理?这篇文章还是最好的解决方案吗?或者,我是不是漏掉了什么?
null 因此,发生的事情可以在环回中解决,但不会通过ssh隧道。如何从docker调用,使其通过ssh隧道? 附:我用的是macOS High Sierra
问题内容: 我有这两个容器,例如(CentOs)和。我想拥有的是,可以从容器中连接到mongo数据库,就像它在本地运行一样, 无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017 但是,如果执行此操作,则必须提供root密码,然后它会将我登录到容器中,并且不会发生端口转发 背景:我想这样做是因为我正在运行一个Java程序,该程序连接到localhost上
但是现在要通过Java的JSch库来完成,怎么做呢?第一次尝试了portforwarding,但在终端上我没有这样做(没有在中设置参数)。 然后我遇到了一个问题,如何使用JSCH SSH到另一个SSH服务器后面的服务器?,但我不明白如何创建tcp隧道!
我正在尝试通过SSH使用Sequel Pro连接到我的DigitalOcean SSD上的远程MySQL数据库。这是我的设置: 名称:mywebapp MySQL-主机:188.226.150.240 用户:localhost 密码:mysqlpassword 数据库:Rails 端口:3306 SSH主机:mywebapp.com SSH用户:root SSH密钥:~/.ssh/id_rsa S
本文向大家介绍SSH端口转发实现内网穿透的实现,包括了SSH端口转发实现内网穿透的实现的使用技巧和注意事项,需要的朋友参考一下 我们局域网的机器能够访问外网,但是外网不能访问内网。因为内网访问互联网时候能确定外网的地址,外网却不能确定我们局域网内的具体地址。(ip地址有限)如果 我们在访问外网的时候,这个链接让他保持、不断,那么这个链接就相当于我们建了一条路,内网数据能出去,外网数据能进来,ssh