Nginx 와 같은 웹서버나 Kafka, ElasticSearch 와 같은 솔루션을 사용할 때 설정 혹은 command 로 127.0.0.1, 0.0.0.0 및 localhost 를 자주 언급하게 됩니다.
이 3개는 무엇을 의미하는 걸까요?
📌 0.0.0.0
- RFC1700 스펙에 정의된 특수 IP 주소입니다.
- A~E 까지 5가지 범주로 분류되는 IP 주소 중 클래스 A 주소에 속합니다.
- IPv4 주소입니다.
- 서버에서 0.0.0.0 은 이 시스템의 모든 IPv4 주소를 나타냅니다. 예를 들어 호스트에 두 개의 IP 주소(192.168.1.1 및 10.1.2.1)가 있고 호스트의 서비스가 0.0.0.0 주소를 수신하도록 설정되었다면 두 IP 주소를 통해 서비스에 액세스할 수 있습니다.
- 라우팅에서 0.0.0.0 은 라우팅 테이블에서 정확히 일치하는 경로가 없을 때 해당 경로인 기본 경로를 나타냅니다.
📌 127.0.0.1
- RFC1700 스펙에 정의된 특수 IP 주소입니다.
- A~E 까지 5가지 범주로 분류되는 IP 주소 중 클래스 A 주소에 속합니다.
- IPv4 주소입니다.
- 네트워크 번호가 127인 모든 IP 주소로 이들은 모두 내부 호스트 루프백 주소(loopback)이며 호스트 외부의 네트워크에서는 절대 나타날 수 없습니다.
📌 localhost
- localhost는 IP 주소 가 아닌 도메인 이름입니다.
- 우리가 사용하는 대부분의 컴퓨터는 localhost가 주소 127.0.0.1을 가리키고 있다고 말하기 때문에 우리는 종종 localhost와 127.0.0.1을 같은 것으로 생각합니다.
- localhost 는 컴퓨터 또는 호스트를 가리키는 데 사용되는 도메인 이름으로, 이 시스템에서 실행 중인 네트워크 서비스를 얻는 데 사용할 수 있습니다.
- 대부분의 시스템에서 localhost는 IPv4의 경우 127.0.0.1, IPv6의 경우 ::1을 가리킵니다.
공유드린 아티클에 IP 주소 분류와 각 IP 별 사용 방식에 대한 상세 내용이 기술되어있으니 관심있으신 분들은 한번 보시면 좋겠습니다.