0
NAT 환경에서 내 서버를 시작하고 공용 네트워크에서 테스트하려는 경우 어떻게 주소를 얻을 수 있습니까? boost :: asio를 사용하여 내 응용 프로그램을 작성하고 있습니다.NAT 네트워크에서 내 서버 응용 프로그램의 공용 엔드 포인트 (IP, 포트)를 얻는 방법
NAT 환경에서 내 서버를 시작하고 공용 네트워크에서 테스트하려는 경우 어떻게 주소를 얻을 수 있습니까? boost :: asio를 사용하여 내 응용 프로그램을 작성하고 있습니다.NAT 네트워크에서 내 서버 응용 프로그램의 공용 엔드 포인트 (IP, 포트)를 얻는 방법
피어의 공용 IP 주소를 알고 싶으면 공용 네트워크 (NAT 뒤에 있지 않음)에 하나의 서버가 있어야하며 서버에 연결하여 서버가 클라이언트의 IP 주소를 클라이언트로 보냅니다. 이 사이트 (http://www.whatismyip.com/)는이 방법으로 공개 주소를 표시합니다. 따라서 서버는 NAT가없는 공용 네트워크에있는 다른 서버에 연결해야합니다.
그러나 NAT는 내부 피어에서 시작되지 않는 수신 연결을 일반적으로 차단하기 때문에 서버는 NAT 환경에 있지 않아야합니다. 즉, 클라이언트가 서버의 공용 주소를 알고 있더라도 NAT가 클라이언트의 연결 요청을 차단하므로 NAT 뒤의 서버에 연결할 수 없습니다.
nat의 클라이언트 피어는 정상입니다. 서버는 동일합니까? 어떤 식 으로든 서버는 소켓 수신기 일뿐입니다. 나는 NAT가 로컬 IP 주소를 다른 IP 주소와 공용 포트로 변환했다고 생각하며, 서버의 공용 주소를 얻는 방법을 모른다. – xiaofeng
NAT는 프로그램이 서버 또는 클라이언트인지 여부를 결정하지 않습니다 (cannnot). NAT와 어떻게 다른가요? 또한 NAT는 단지 IP 주소를 변환하는 것이 아닙니다. 이것이 NAT 트래버 설 기술이 가능한 이유입니다. http://en.wikipedia.org/wiki/NAT_traversal – young