내가 작성한 '로컬에서 장고서버 띄우기' 과정을 진행중이신 인턴분에게 ip 주소 알려주다가 생긴 의문
본인의 로컬 가상환경 ip : 192.168.56.11
가상환경 접속하는 명령어 : ssh ubuntu@192.168.56.11
당연히 장고서버를 띄울 때 사용되는 ip도 접속할 때 사용하는 ip! 라고 생각했습니다.
그래서 저번에 ip를 찾기 위해 정리해놓은 명령어 몇 개를 실행해보았는데 각 명령어마다 서로 다른 숫자(ip)가 나왔습니다,,
그래서 어떤 명령어인지 잘 알고 사용해야할 것 같아 명령어를 정리하고, 장고서버를 띄울 때 사용되는 ip는 어떤 ip인지도 정리하려고 합니다.
IP 주소(Internet Protocol)
컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호
curl ifconfig.me
: curl 패키지를 통해 public(공인) ip를 찾을 때 사용
ifconfig | grep "inet "
: 파이프(|) grep "포함단어"
명령어를 통해 ifconfig 명령어의 결과값에서 inet 이 포함된 줄을 뽑아줌
ipconfig
와 우분투의 ifconfig
는 동일ifconfig 명령어와 큰 차이가 없어 보이나, ifconfig 명령어와 달리 ip address 명령은 nmcli(network manager)로 설정한 정보도 함께 보여준다고 함, ip address 를 사용하는 것을 더 권장한다.
ip addr show(생략가능)
: IP 관련 정보 확인 및 설정 명령어ip addr | grep "inet "
: 파이프(|) grep "포함단어"
명령어를 통해 ip addr 명령어의 결과값에서 inet 이 포함된 줄을 뽑아줌scope
: 해당 인터페이스가 어느 수준에서 접근가능하며 유효하냐는 의미. scope host lo
: Host의 경우는 현재 인터페이스가 속해있는 호스트에서만 유효하고 접근이 가능scope global dynamic
: Global의 경우 외부 네트워크에서 접근이 가능한 범위brd
: brd는 브로드캐스트를 할 때의 주소를 의미합니다.hostname -I
curl ifconfig.me
ip addr | grep "inet "
hostname -I
모두 다른 결과값이 나오는데, 각각 무엇을 의미하는가요?
curl ifconfig.me
/ip addr | grep "inet "
: ip address 이외에 해당 장비에 대한 네트워크 인터페이스 구성을 같이 확인하고 싶다면 사용. inet 값이 해당 장비의 ip address
hostname -I
: 해당 장비에 대한 ip address 만 확인
개발서버에서는 모든 명령어에서 동일한 ip를 보여주지만,
로컬 가상환경에서는 curl ifconfig.me
만 다른 ip 보여줌
이유가 무엇일까요?
찾았다! 네이버에 ip주소 조회
를 검색하면, 나의 공인 ip를 확인할 수 있다.
116.41.80.47
이라고 나오는데, 이는 로컬 가상환경에서 curl ifconfig.me
를 했을 때 나오는 ip와 동일합니다.
가상환경이라고 해도 실제 장비의 공인 ip가 나오는 것 같습니다.
ifconfig | grep "inet "