2011-04-28 4 views
4

웹 서버 WWW1과 전면 프록시 PRX가 있습니다. SSH ProxyCommand를 사용하여 PRX (개인 + 공용 IP)를 통해 WWW1의 내부 IP (개인 IP)에 연결합니다. 일부 연결 (전부는 아님)의 경우 네트워크 연결이 끝난 후에도 열린 채로 있습니다. 이것들이 합쳐집니다!SSH ProxyCommand가 열려있는 연결을 제거하는 방법은 무엇입니까?

~/스푸핑/설정

PRX에
Host * 
    ServerAliveInterval 5 
    ControlMaster auto 
    ControlPath ~/.ssh/master-%[email protected]%h:%p 

Host WWW1 WWW2 WWW3 
    User foo 
    ProxyCommand ssh -q -a -x PRX nc %h 22 
    IdentityFile ~/.ssh/id_foo_WWWx 

, lsof | grep WWW1:ssh는 순간에 124 개 열려있는 연결을 보여줍니다. WWW1에서 동일한 명령이 243 개의 열린 연결을 보여줍니다. WWW2, WWW3 등에 대해서도 비슷한 연결이 있습니다.

WWW1과 PRX는 데비안입니다. 클라이언트 연결은 Debian, Ubuntu 및 OSX10.6이 혼합되어 있습니다. Emacs Tramp를 사용하지만이 설정은 내 ~/.ssh/config 외부에 특별한 구성 (AFAIK)이 없습니다.

나는 내부 포트가 부족하다는 것에 우려하고 있으며, 이러한 연결이 개입하지 않고 스스로 정리할 수 있기를 바랍니다. 이상적으로 스스로를 죽이기 위해 그들을 구성하는 것; 내가 오래된 프로세스를 죽일 수있는 명령은 실패했다.

+1

한 가지 해결 방법은 * 일주일 후에 PRX에서'nc' 프로세스를 죽이는 cron 작업을 설정하는 것일 수 있습니다 ... –

답변

4

는 중요한인지 몰라하지만 난 더 좋은 방법은 SSH의 -W 옵션을 사용하는 것입니다 nc -w 1 %h %p

+0

당신은 아름다움을! 나는 SuperUser.com에서 "Tumbleweed"배지를 얻기 위해 동일한 질문을 기다렸다가 5 분 안에 답장을하기를 기다렸습니다. NC 사용법은 * 프로그래밍 * 질문이 아니기 때문에, 맞습니까? –

+0

Nah, 오직 [실제 프로그래머] (http://www.th-soft.com/zzJargon/R.htm#Real_Programmer)는 프록시를 통해 터널링하는 방법을 알고 있습니다. :) – sehe

10

를 사용, 그래서 당신은

ProxyCommand ssh -q -a -x PRX -W %h:22 

대신

ProxyCommand ssh -q -a -x PRX nc %h 22 
둘 수 있었다

이렇게하면 nc에 대한 의존도를 없앨 수 있습니다.