通过ssh从munin客户端反向连接到服务器?

通过ssh从munin客户端反向连接到服务器?

我通常可以弄清楚这一点,但我觉得我做的事情根本上是错误的。

我有一个 munin 服务器和客户端。效果很好。它们都位于专用网络上。我现在想忘记我拥有的 munin 服务器,而是使用位于互联网上的 munin 服务器。 Internet 上的服务器接受 ssh 连接。因此,我认为我可以创建一个从客户端到服务器的 ssh 隧道,然后让服务器查询 munin 客户端。所以基本上:

远程客户端----路由器----[互联网]----服务器

到目前为止,我已经读过这个有希望的问题。但它还没有成功。我也读过这个在常见问题解答中,但在多次阅读常见问题解答后,我非常确定该常见问题解答明确指出服务器将启动 ssh 连接到客户

我正在尝试做相反的事情。

我在客户端使用这个:

 ssh -L 49499:localhost:4949 -f  [email protected] -p 2222 -N

(是的,ssh 监听 2222)

在客户端 munin 配置上,我有:

[remoteclient]
    address 127.0.0.1
    port 49499
    use_node_name yes

在服务器上,它失败了:

starting work in 6794 for remoteclient/127.0.0.1:49499
[FATAL] Socket read from remoteclient failed.  Terminating process. at /usr/share/perl5/Munin/Master/UpdateWorker.pm line 254.

再说一遍,我认为我想做的与我正在阅读的其他常见问题解答/项目相反。

答案1

你想创建一个远程转发一种隧道而不是本地转发种类。

RemoteForward

指定远程计算机上的 TCP 端口通过安全通道转发。

所以在客户端:

ssh -L 49499:localhost:4949 -f  [email protected] -p 2222 -N

应该简单地替换为:

ssh -R 49499:localhost:4949 -f  [email protected] -p 2222 -N

这样,远程计算机:服务器将在其本地主机上打开一个端口,该端口将通过隧道流量转发回客户端的本地主机(即:仍然保留在隧道出口处的客户端上)。

相关内容