2014-03-26 3 views
1

내가 뭔가 localhost를 통해 연결을 허용 포트 1337 에 연결을 허용하는 간단한 소켓 설정 :의 UPnP 포트 매핑, 서비스가 수락하지 연결

$ nc -vv localhost 1337 
found 0 associations 
found 1 connections: 
1: flags=82<CONNECTED,PREFERRED> 
outif lo0 
src ::1 port 57224 
dst ::1 port 1337 
rank info not available 
TCP aux info available 

Connection to localhost port 1337 [tcp/menandmice-dns] succeeded! 
^C 

내가 코코아 - 매퍼를 사용합니다 (https://github.com/mugginsoft/Cocoa-PortMapper)이 전달하는 포트를 NAT 라우터에 연결합니다.

portMapper = [[PortMapper alloc] initWithPort:1337]; 

portMapper.desiredPublicPort = 1337; 

[[NSNotificationCenter defaultCenter] addObserverForName:PortMapperChangedNotification object:portMapper queue:nil usingBlock:^(NSNotification *note) { 
    NSLog(@"Successfully mapped: %@", portMapper.isMapped ? @"YES" : @"NO"); 
    NSLog(@"Mapped %@:%hu", portMapper.publicAddress, portMapper.publicPort); 
}]; 

if(![portMapper waitTillOpened]) { 
    NSLog(@"Could not open port"); 
} 

그것은 YES 반환하고, 내 라우터에서의 UPnP 포트 맵 테이블은 내 컴퓨터의 로컬 IP에 대한 내부 포트 1337에 대한 외부 포트 1337에 활성 TCP 매핑이 있다는 것을 알 수있다.

그러나, 외부 IP를 통해 서비스에 연결이 작동하지 않습니다

$ nc -vv xxx.89.136.xx 1337 
nc: connectx to xxx.89.136.xx port 1337 (tcp) failed: Connection refused 

내가 수동으로 라우터의 포트 전달 규칙을 설정하면 연결이 작동합니다. 라우터에서 작동한다고해도 UPnP 포트 매핑이 작동하지 않는 이유는 무엇입니까?

답변

1

사실, 포트 매핑은 네트워크 외부에서 작동했습니다. 내가 어딘가에서 서버를 연결했을 때,하지만 내 외부 IP를 통해 로컬 컴퓨터에서 연결했을 때.

+0

나에게도 똑같은 일이 일어났습니다! – simernes