나는 보통 이것을 알아낼 수 있지만 내가 하고 있는 일이 근본적으로 잘못된 것 같은 느낌이 듭니다.
나는 munin 서버와 클라이언트를 가지고 있습니다. 좋은 결과. 그들은 모두 개인 네트워크에 있습니다. 이제 나는 내가 가지고 있는 munin 서버를 잊어버리고 대신 인터넷에 있는 munin 서버를 사용하고 싶습니다. 인터넷의 서버는 SSH 연결을 허용합니다. 그래서 클라이언트에서 서버로 SSH 터널을 만든 다음 서버가 munin 클라이언트에 쿼리하도록 할 수 있다고 생각했습니다. 그래서 기본적으로:
원격 클라이언트----라우터----[인터넷]----서버
지금까지 나는 읽었다.이 유망한 질문. 그러나 그것은 아직 전개되지 않았습니다. 나도 읽었다FAQ에 있습니다, 그러나 FAQ를 여러 번 읽은 후에는 FAQ에 명확하게 설명되어 있음을 확신합니다.섬기는 사람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.
다시 말하지만, 제가 하고 싶은 일은 제가 읽고 있는 다른 FAQ/프로젝트와 반대되는 것 같습니다.
답변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
이런 방식으로 원격 시스템은 서버가 로컬 호스트에서 포트를 열어 터널 트래픽을 클라이언트의 로컬 호스트로 다시 전달합니다(예: 터널 종료 시 클라이언트에 여전히 남아 있음).