Linux

通過ssh從munin客戶端反向連接到伺服器?

  • July 5, 2021

我通常可以弄清楚這一點,但我覺得我在做一些根本錯誤的事情。

我有一個 munin 伺服器和客戶端。它工作正常。它們都位於專用網路上。我現在想忘記我擁有的 munin 伺服器,而是使用位於網際網路上的 munin 伺服器。網際網路上的伺服器接受 ssh 連接。因此,我認為我可以創建一個從客戶端到伺服器的 ssh 隧道,然後讓伺服器查詢 munin 客戶端。所以基本上:

遠端客戶端—–路由器—-

$$ internet $$- - 伺服器 到目前為止,我已經閱讀了這個有希望的問題。它還沒有成功。我在 FAQ 中也讀過這個,但我很確定在多次閱讀 FAQ 之後,FAQ 明確指出伺服器將啟動到客戶端的 ssh 連接。

我正試圖做相反的事情。

我在客戶端上使用它:

ssh -L 49499:localhost:4949 -f  number9@myserver.com -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.

同樣,我認為我正在嘗試做的與我正在閱讀的其他常見問題解答/項目相反。

您想創建一種RemoteForward類型的隧道,而不是LocalForward類型。

RemoteForward

指定通過安全通道轉發遠端機器上的 TCP 埠。

所以在客戶端:

ssh -L 49499:localhost:4949 -f  number9@myserver.com -p 2222 -N

應該簡單地替換為:

ssh -R 49499:localhost:4949 -f  number9@myserver.com -p 2222 -N

這樣,遠端機器:伺服器,將在其本地主機上打開一個埠,該埠將通過隧道流量轉發回客戶端的本地主機(即:仍留在隧道出口處的客戶端上)。

引用自:https://unix.stackexchange.com/questions/657120