2012-01-01 4 views
3

내 프로그램은 사용자가 중앙 서버에 연결할 수 있도록 RMI를 사용하는 게임입니다. 이 게임은 내 홈 네트워크 내의 컴퓨터에서 잘 작동합니다. 내 네트워크 외부의 원격 사용자가 서버에 연결할 수있게하고 싶습니다.원격 사용자가 Java 프로그램에 연결할 수 있도록 내 서버를 설정하십시오.

유사한 스레드의 추천에 따라 컴퓨터를 공개적으로 액세스 할 수 있도록 도메인을 게임 서버에 매핑하는 noipip.com 계정을 설정했습니다.

Registry registry = LocateRegistry.getRegistry("10.10.10.105"); 
/* 10.10.10.105 is my local address and this works fine on my home network */ 

하려면 :

Registry registry = LocateRegistry.getRegistry("mychosenhostname.no-ip.org"); 
/* mychosenhostname.no-ip.org is the redirecting domain that I received from no-ip */ 

그러나이 새로운 코드는 java.rmi.ConnectException: Connection refused to host: 오류를 가져옵니다

난에서 클래스 스텁을 얻을하려면 코드를 변경했습니다. canyouseeme.org에 포트 검사기 도구를 사용하여 포트 1099가 열려있는 것으로 나타났습니다. 내 프로그램에 액세스 할 수있게하기 위해 내가해야 할 일이 무엇인지 모르겠습니다.

BTW : 글래스 피시

+0

NAT 라우터가 내부 컴퓨터로 요청을 전달하도록 구성되어 있습니까? – sarnold

+0

아니, 그렇게 생각하지 않아. 나는이 개념에 익숙하지 않아서 라우팅이라는 개념을 처음 접했을뿐입니다. 당신은 조금 설명하거나 좋은 자원으로 안내 할 수 있습니까?나는 LinkSys WRT54G 라우터와 Windstream 케이블 모뎀을 가지고 있는데 둘 다 설정에 연결하고 편집 할 수있다. 편집 : 당신은 포트 포워딩에 대해 이야기하고 있습니까? 어떤 경우에는 해당 포트 1099를 관련 기계로 전달했습니다. – Robert

+0

하하, 와우, 물어 보면받을 것이다 : http://portforward.com/english/routers/port_forwarding/Linksys/WRT54G/ - 스크린 샷을 제외하고 페이지의 모든 것을 무시한다. :) – sarnold

답변

0

내 문제에 대한 해결책을 찾은 것 같습니다. 내 설정은 ADSL 모뎀 -> 라우터 -> 기계처럼 보였습니다.

내 DSL 모뎀에서 라우터로, 그리고 기계로 포트가 전달되었지만 DSL 모뎀은 포트 포워딩 설정을 완전히 무시하고있었습니다. 브리지 모드에서 DSL 모뎀을 설정하고 라우터가 포트 포워딩을 처리하도록 허용하면 문제를 해결하는 것처럼 보였습니다.

1
  1. 와 내가 사용하고 넷빈즈 IDE는 서버에 소프트웨어 방화벽을 확인합니다. (당신이 이미하지 않은 경우 ...) 당신이 절대적으로 확신 을 경우

  2. 등의 방화벽, 라우터를 사용하면에서 을 연결하려는 컴퓨터의 포트를 확인하고, 당신은 모든 것이 옳았다는 것을 ISP에 문의하고 이 포트를 차단하고 있는지 물어보십시오.

+0

내 운영 체제가 XP Home edition에 문제가 있습니까? no-ip.com 사이트는 서버 운영 체제가 작동 할 필요가 있다고 말하지 않았지만 내 운영 체제가 시도하고있는 것을 허용하지 않을 수 있습니다. – Robert

0

개방 비록 1099 포트는 당신이 RMI 레지스트리 연락 할 수있는 좋은 시작이다. 실제의 RMI export 된 객체는 다른 포토 (디폴트에서는 임의의 포토)로 이용 가능합니다.

1) DMZ로 라우터에 서버를 설정 (해당 서버로 라우팅 얻을 것이다 들어오는 모든 연결을 의미) :

당신은 두 가지 옵션이 있습니다. 서버 보안에주의하십시오.

2) 개체의 특정 포트를 설정하십시오 (http://docs.oracle.com/javase/1.4.2/docs/guide/rmi/faq.html#firewallIn).

PS - Wireshark와 같은 패킷 캡처 도구는 이러한 종류의 문제를 진단하는 데 종종 도움이됩니다.

+0

OP가'LocateRegistry.createRegistry()'를 사용한다면 그는 모든 것에 포트 1099를 사용할 수 있습니다. – EJP

관련 문제