라즈베리 파이 등 리눅스 운영체제 기반의 IoT 장비를 사용할 때 모니터 및 키보드에 연결되지 않은 상태이면 간단한 ifconfig 명령어조차 사용할 수 없다. 원격으로 접속해야되는데 해당 IP 주소를 모르면 관리하기가 상당히 까다롭다. 


침투 테스트나 해킹(불법인 경우는 논외로 하고)시에도 임의의 시스템의 쉘을 획득했다고 가정한다면, 이후에 다시 그곳에 접속할 방안을 마련해야 하는데 기본적으로 IP를 확인해야 한다.

처음에 나는 이러한 불편을 해결하고자 시스템이 부팅시 ifconfig 내용에서 IP부분을 정규표현식으로 긁어서 이메일로 보내는 등의 다양한 방법들을 고민했다. ifconfig -a 명령어는 누구나 알겠지만, 사실 별로 유용하지 못하다. 위의 그림을 보면 10.0.2.15 같은 IP가 할당되어 있다. 이는 VM에서 NAT이나 호스트 전용 네트워크로 연결된 것이므로, 외부에서는 큰 의미가 없는 주소이다. 공유기에 물려있는 경우에도 아마 192.168.0.?? 이런식으로 부여되어 있을 것인데, 같은 공유기에 물려있지 않으면 전혀 상관이 없다.


때문에. 우리에게는 Public IP를 확인할 수 있는 방법이 절대적으로 필요하다. 그래서 특정 사이트에 ping을 보낸 후 돌아오는 응답지 주소를 확인하는 등의 기법을 고민했었다.


그러다가 발견한 다양한 명령어들을 찾았다. 아래 참고.


icanhazip.com에 curl로 web request를 보내면 자신의 공인  IPv4 주소가 리턴된다.



dig 명령어를 통해 DNS를 쿼리하는 방법이다. myip.opendns.com을 질문하면 된다.


만약 위의 방법들이 잘 작동하지 않는다면, opendns.com이나 icanhazip.com가 네트워크단에서 차단된 상황일 수 있다. 그렇다면 조금더 간단히 telnet을 이용할 수도 있다.



CPUU님의 창작활동을 응원하고 싶으세요?