네트워크 localhost 127.0.0.1 192.168.0.x 차이

낭만개발자·2021년 10월 21일
0

노드 테스트 서버를 돌리다, 허브하나로 엮인 로컬네트워크에 다른 아이피(내부망)에 서버를 올리고 테스트를 하는 작업을 하고 있었다.

즉 A, B PC가 1개의 public ip를 허브를 통해 2개의 private ip로 나눠 쓰고 있고 A가 서버PC B가 클라이언트PC, B에서 A node 8000포트를 접속하는 시나리오 이다.
그래서 node의 index.js 파일에 app.listen(포트, 호스트명)에 호스트명을 127.0.0.1로 하면 내부망 으로 접속이 되겠지 하고 위와 같이 설정했다. 근데 안됐다.
위보면 127.0.0.1:8000에 node가 돌아가고 있고 외부 주소는 0.0.0.0이 오픈되어 있어서 될꺼라 생각했는데 해당 192.168.x.x:/8000 로 접속해도 안되는 것이었다.

그래서 혹시나 hostname을 없애는 (0.0.0.0)으로 두면 어떨까 해서 해보니

0.0.0.0:8000 으로 node index.js페이지가 뜨는 것이었다.

127.0.0.1이나 사설 ip나 똑같은 거라 생각했는데, 전에도 이런 문제가 있었기에 이번에 한번 다시 알아봤다.
127.0.0.1은 루프백 그러니까 자기 device에서 호출하고 백 받는 것, localhost도 거의 같다고 보면 됨.

privateIP는 이거랑 다른 내부망에서 할당받은 IP이므로 B클라이언트에서 내부망으로 A를 접속하려면 A에선 사설 아이피 주소로 서버를 올려야 한다.
다만 PC가 1대 뿐이라서 A PC서 서버 올리고 클라이언트 하고 하려면 localhost나 127.0.0.1로 올리고, 그 주소로 브라우저에서 테스팅 하면된다.

내부망 사용 vs 내 PC만 사용. 차이있으니 조심하자

참고 : https://velog.io/@lky9303/127.0.0.1-%EA%B3%BC-localhost%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글