IPIPNOW
한국어
한국어English日本語中文
본 광고

localhost와 127.0.0.1은 무엇인가요?

127.0.0.1은 자기 자신, 즉 지금 쓰고 있는 바로 그 컴퓨터를 가리키는 특수한 IP 주소이고, localhost는 이 주소를 가리키는 이름입니다. 네트워크 밖으로 나가지 않고 기기 안에서 곧바로 응답이 돌아옵니다.

최종 수정일

내 공인 IP 주소
216.73.216.58
내 IP 자세히 보기

127.0.0.1은 왜 항상 나 자신을 가리키나요?

127.0.0.0/8 전체 대역은 루프백(loopback) 전용으로 예약되어 있어, 어떤 기기에서 127.0.0.1로 요청을 보내도 그 요청은 네트워크 카드나 공유기를 거치지 않고 같은 기기 안에서 곧바로 처리됩니다.

그래서 127.0.0.1은 위치나 통신사와 상관없이 전 세계 모든 컴퓨터에서 “나 자신”이라는 같은 뜻으로 쓰입니다. 표준은 이 대역의 주소가 네트워크 밖으로 나가지 않도록 정하고 있어, 공유기나 인터넷에서 127로 시작하는 목적지를 볼 일은 없습니다.

localhost는 127.0.0.1과 같은 건가요?

localhost는 127.0.0.1을 가리키는 사람이 읽기 쉬운 이름(호스트 이름)입니다. 브라우저 주소창에 localhost를 입력하면 컴퓨터가 이를 루프백 주소로 바꿔서 접속합니다.

환경에 따라 localhost가 IPv6의 루프백 주소인 ::1로 먼저 연결되기도 합니다. 역할은 같지만, 아래에서 설명하듯 서버가 IPv4 쪽에서만 기다리고 있으면 이 차이 때문에 접속이 실패할 수 있습니다.

비슷해 보이는 주소들과의 차이

개발 중에 자주 마주치는 주소들은 “누가 접속할 수 있느냐”로 구분하면 이해하기 쉽습니다. 특히 서버를 어느 주소에 열어 두느냐(바인드)에 따라 같은 프로그램이라도 접속 가능한 범위가 달라집니다.

예를 들어 PC에서 실행한 개발 서버를 같은 와이파이의 휴대폰으로 확인하려는데 접속이 안 된다면, 서버가 127.0.0.1에만 열려 있기 때문인 경우가 많습니다. 서버를 0.0.0.0(모든 인터페이스)에 열고 휴대폰에서는 PC의 사설 IP로 http://192.168.0.10:3000 처럼 접속하면 됩니다. 운영체제 방화벽이 해당 포트를 막고 있지 않은지도 함께 확인하세요.

루프백, 모든 인터페이스, 사설·공인 IP 비교
주소뜻접속할 수 있는 범위
127.0.0.1 (localhost)IPv4 루프백, 자기 자신같은 기기 안에서만
::1IPv6 루프백, 자기 자신같은 기기 안에서만
0.0.0.0 (서버를 열 때)기기의 모든 네트워크 주소에서 대기같은 네트워크의 다른 기기, 설정에 따라 외부까지
192.168.0.10 등 사설 IP공유기 안에서 이 기기의 주소같은 공유기에 연결된 기기
공인 IP인터넷에서 보이는 회선 주소포트포워딩 등을 설정하면 인터넷 전체

127.0.0.1과 사설 IP는 어떻게 다른가요?

사설 IP(예: 192.168.0.10)는 같은 공유기에 연결된 다른 기기가 접속할 수 있는 주소인 반면, 127.0.0.1은 오직 그 기기 자신만 접속할 수 있고 다른 기기에서는 아예 접속할 수 없습니다.

공인 IP·사설 IP와의 차이가 더 궁금하다면 공인 IP와 사설 IP를 참고하세요.

localhost 접속이 안 될 때 점검 순서

브라우저에 연결 거부 오류가 뜨거나 아무 응답이 없을 때는 아래 순서로 확인하면 대부분 원인을 찾을 수 있습니다.

  • 연결이 거부됨 → 서버가 실행 중이 아니거나 포트 번호가 다름 → 서버 실행 로그에 표시된 포트를 확인하고 http://127.0.0.1:8080 처럼 포트를 정확히 붙입니다.
  • 포트가 이미 사용 중이라는 오류 → 다른 프로그램이 같은 포트를 쓰는 중 → 윈도우는 netstat -ano | findstr :3000, 맥은 lsof -i :3000 으로 점유한 프로그램을 찾아 종료하거나 포트를 바꿉니다.
  • 127.0.0.1은 되는데 localhost만 안 됨 → localhost가 IPv6 ::1 로 먼저 연결되는데 서버는 IPv4에서만 대기 → 서버가 ::1 에서도 대기하게 하거나 주소를 127.0.0.1로 직접 씁니다.
  • localhost가 엉뚱한 곳으로 연결됨 → hosts 파일이 수정됨 → 윈도우 C:\Windows\System32\drivers\etc\hosts, 맥 /etc/hosts 에서 localhost 줄을 확인합니다.
  • 회사 PC에서만 안 됨 → 프록시나 보안 프로그램이 로컬 연결을 가로챔 → 프록시 예외 목록에 localhost와 127.0.0.1이 있는지 확인합니다.

localhost가 특별 대우를 받는 이유

브라우저는 http://localhost 와 http://127.0.0.1 을 HTTPS가 아니어도 안전한 출처로 취급합니다. 원래 HTTPS에서만 허용되는 기능 가운데 상당수를 개발 단계에서 인증서 없이 시험할 수 있는 이유가 이것입니다. 반면 같은 서버를 http://192.168.0.10 으로 열면 안전한 출처로 인정되지 않아 동작이 달라질 수 있습니다.

도커 같은 컨테이너 환경에서는 “자기 자신”의 범위가 달라지는 점도 알아 두어야 합니다. 컨테이너 안에서 127.0.0.1은 컨테이너 자신을 뜻하므로, 컨테이너 안의 앱이 PC에서 실행 중인 데이터베이스에 127.0.0.1로 접속하면 실패합니다. Docker Desktop에서는 host.docker.internal 이라는 이름으로 호스트 PC에 접속할 수 있습니다.

이름에도 규칙이 있습니다. 표준은 localhost 뿐 아니라 app.localhost 처럼 .localhost로 끝나는 이름도 루프백으로 해석하도록 정하고 있어, 주요 브라우저에서는 여러 개발 서버를 이름으로 나눠 쓸 수 있습니다. 반면 macbook.local 처럼 .local로 끝나는 이름은 같은 네트워크 기기를 찾는 mDNS용이라 자기 자신이 아니라 해당 기기의 사설 IP로 연결됩니다.

보안 측면에서는 0.0.0.0에 연 개발 서버를 조심해야 합니다. 카페 와이파이처럼 여러 사람이 쓰는 네트워크에서는 같은 네트워크의 다른 사람도 그 서버에 접속할 수 있으므로, 외부 확인이 필요 없을 때는 127.0.0.1에만 여는 것이 안전합니다.

127.0.0.1은 실제로 어디에 쓰이나요?

네트워크 선이 뽑혀 있거나 와이파이가 꺼져 있어도 루프백은 항상 동작하므로, 인터넷 연결 없이도 내 컴퓨터 안의 프로그램끼리 통신할 수 있습니다. 개발자가 자기 컴퓨터에서 웹사이트나 앱을 테스트할 때 http://127.0.0.1:3000 처럼 로컬 서버 주소로 흔히 씁니다. 인터넷에 올리기 전 내 컴퓨터 안에서만 동작을 확인할 수 있습니다. 데이터베이스나 관리용 프로그램을 외부에 노출하지 않으려고 일부러 127.0.0.1에서만 대기하도록 설정하기도 합니다.

윈도우와 맥에서 실제 사설 IP·공인 IP를 확인하는 방법은 윈도우에서 IP 확인, 맥에서 IP 확인에서 볼 수 있습니다.

핵심 정보
항목값출처
루프백 예약 대역127.0.0.0/8RFC 6890 · 2013-04

자주 묻는 질문

127.0.0.1로 다른 사람 컴퓨터에 접속할 수 있나요?

아니요. 127.0.0.1은 항상 “지금 요청을 보낸 그 기기 자신”을 뜻하기 때문에, 다른 사람 컴퓨터에서 127.0.0.1에 접속해도 그 사람 자신의 컴퓨터로 연결될 뿐입니다.

127.0.0.1 말고 다른 루프백 주소도 있나요?

127.0.0.0/8 대역 전체가 루프백용이라 127.0.0.2 등도 이론적으로 같은 역할을 하지만, 관례적으로 127.0.0.1을 가장 많이 씁니다. IPv6에서는 ::1 한 개만 루프백 주소입니다.

ping 127.0.0.1이 성공하면 인터넷도 정상인가요?

아니요. 루프백은 네트워크 카드나 공유기를 거치지 않으므로, 성공했다는 것은 기기 안의 네트워크 기능이 동작한다는 뜻일 뿐입니다. 인터넷 연결을 확인하려면 공유기 주소(기본 게이트웨이)나 외부 사이트로 시험해야 합니다.

공유기 관리 화면도 127.0.0.1로 들어가나요?

아니요. 공유기 관리 화면은 보통 192.168.0.1처럼 공유기 자신의 사설 IP로 접속하며, 127.0.0.1과는 다른 주소입니다. 주소 찾는 법은 공유기 IP 확인 방법을 참고하세요.

IPv6 루프백 ::1은 주소창에 어떻게 입력하나요?

IPv6 주소는 포트 번호의 콜론과 헷갈리지 않도록 대괄호로 감싸야 하므로 http://[::1]:3000 처럼 입력합니다. 대괄호 없이 입력하면 브라우저가 주소로 인식하지 못합니다.

hosts 파일의 localhost 줄은 지워도 되나요?

바꾸지 않는 것이 좋습니다. 윈도우는 기본 hosts 파일에서 localhost 줄이 주석 처리되어 있고 시스템이 자체적으로 처리하며, 맥의 /etc/hosts 에는 127.0.0.1과 ::1을 localhost로 지정한 줄이 들어 있습니다. 이 줄을 지우거나 다른 주소로 바꾸면 개발 도구가 오작동할 수 있습니다.

참고 자료

불법·유해 링크 신고

불법·유해·사기(피싱) 링크를 발견하셨나요? 짧은 주소를 알려 주시면 검토 후 차단합니다. 서로 다른 이용자 신고가 쌓이면 자동으로 차단됩니다.

문의하기

서비스 이용 중 궁금한 점이나 제안을 남겨 주세요. 답변은 입력한 이메일로 보내 드립니다.

입력한 이메일은 이 문의에 답변할 때만 사용합니다.