2010-04-07 6 views
3

우리는 전국의 클라이언트 컴퓨터에서 Tomcat을 사용하여 Java에서 웹 응용 프로그램을 배포하고 있습니다.웹 응용 프로그램 Nat Traversal

일단 설치되면 중앙 서버를 통해 이러한 웹 응용 프로그램에 원격 액세스 할 수 있지만 클라이언트가 라우터에서 포트를 열지 않아도되도록하고 싶습니다.

중앙 서버가 방화벽 뒤의 웹 응용 프로그램에 액세스 할 수있는 방식으로 http 트래픽을 터널링하는 방법이 있습니까?

중앙 서버에는 고정 IP 주소가 있으며 우리는이를 완전히 제어 할 수 있습니다.

우리는 파일 시스템에 액세스 할 필요가 없으며 브라우저를 통해서만 웹 응용 프로그램 자체에 액세스하려고합니다.

답변

2

NAT의 경우 일반적으로 웹 응용 프로그램에서 중앙 서버에 요청을 보내면 NAT에 "구멍"이 생깁니다. 그런 다음 중앙 서버가이 연결을 인계 받아 웹 응용 프로그램에 액세스 할 수 있습니다.

이것은 기본적으로 영구 연결이됩니다 (요청에 따라 웹 응용 프로그램을 "소환하는 방법"이기 때문에 항상 연결되어 있어야합니다). 즉, 웹 응용 프로그램에는 정기적으로 "나는 집에 연결되어 있습니까? 아니오? 그럼 집에 전화"라는 논리가 내장되어 있습니다. 이것은 클라이언트가 시작한 이래 NAT 문제를 해결할 것입니다.

이 기술은 Skype, Buildbot 등이 사용됩니다.

+0

연결을 열고 웹 서버의 포트로 다시 라우팅하려면 어떻게해야합니까? – pbreault

+0

나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 다음은 기본적인 예입니다. 웹 응용 프로그램이 포트 80에서 중앙 서버에 요청을 보내지 만 연결을 연결 유지로 설정합니다. HTTP 위에 프로토콜을 겹칠 수 있습니다. 서버 응답은 "지금이 연결을 소유하고 있습니다."라고 말합니다. 그런 다음 닫지 않고 (또는 클라이언트 측이 즉시 클라이언트 측을 다시 설정하는) 연결을 통해 필요한 모든 작업을 수행 할 수 있습니다. 핵심은이 연결이 * 클라이언트가 시작한 것입니다. 하나의 가정은 웹 응용 프로그램이 방화벽의 요청 *을 할 수 있다는 것입니다. – rlotun

0

예 - 질문은 매우 일반적입니다. 어떤 OS를 사용하는지/고객이 사용하는지 알지 못하면 무엇이 효과가 있을지에 대해 조언 할 수 없습니다.

양쪽에 POISX/BSD/Linux가 있다면 ssh 또는 stunnel 위에 ppp를 실행하는 것이 좋습니다. 많은 예제를 위해 google을하십시오.