127.0.0.1과 localhost의 차이점은 무엇입니까


157

다음이 정의되어 있다고 가정합니다 .../hosts.

127.0.0.1 localhost

사용 사이의 실제 차이가 무엇있는 경우입니다 127.0.0.1localhost서버 이름으로, 특히 연결을 수신하는 로컬로 실행중인 프로세스를 치는 경우는?


15
localhost프로토콜에 독립적 이라고 말할 수 있으며 IPv4와 IPv6이 모두 작동합니다.
Steve-o

답변:


122

음, 가장 가능성이 차이는 여전히 실제해야 할 것입니다 조회localhost어딘가에.

을 사용 127.0.0.1하면 (지능형) 소프트웨어가 IP 주소로 직접 전환하여 사용합니다. 일부 구현 gethostbyname에서는 점 형식 (및 아마도 동등한 IPv6 형식)을 감지하고 전혀 조회하지 않습니다.

그렇지 않으면 이름을 확인해야합니다. 그리고 hosts파일이 실제로 해당 해상도 (처음 또는 전혀)에 사용 된다는 보장이 없으므로 localhost완전히 다른 IP 주소 가 될 수 있습니다 .

즉, 일부 시스템에서는 로컬 hosts파일을 무시할 수 있습니다. host.conf파일 리눅스의 컨트롤이 (그리고 많은 다른 유닉스).


6
가장 큰 차이점은 여기에 설명 된대로 Unix 도메인 소켓을 통해 연결할 수 있다는 것입니다. stackoverflow.com/questions/3715925/localhost-vs-127-0-0-1
Don Viegues

/etc/nsswitch.confhostsnss가 실행중인 경우 호스트 조회에 먼저 또는 DNS를 사용 할지 여부를 선택합니다 .
Mark Lakata

@DonViegues MySQL 전용이며 IMO 디자인이 잘못되었습니다. localhost가 표시되고 IP를 사용하여 연결하는 대신 unix-socket을 사용하려고 시도하지만 127.0.0.1의 경우 IP 만 사용합니다.
Arman Ordookhani

@ArmanOrdookhani AFAIK SSH를 통해 원격 호스트에 연결 한 다음 거기에서 MySQL (예 : MySQL 서버에 도달하는 SSH 터널)에 연결하는 경우 127.0.0.1을 사용해야합니다. 그러나 동일한 머신에서 실행되는 2 개의 프로세스가 연결을 원하면 localhost (유닉스 소켓)가 더 빠르거나 오버 헤드가 있습니다. 감사!
Don Viegues

1
@DonViegues 네 맞습니다 유닉스 소켓은 TCP / IP보다 오버 헤드가 적습니다. 방금이 동작이 MySQL에만 국한된 것이 아니라 OS 나 네트워킹 수준의 것이 아니라고 언급하고 싶었습니다.
Arman Ordookhani

36

Wikipedia는 이것을 잘 요약합니다.

최신 컴퓨터 시스템에서 호스트 이름 인 localhost는 127.0.0.0/8 (루프백) 네트 블록의 IPv4 주소 (일반적으로 127.0.0.1 또는 IPv6의 :: 1)로 변환됩니다.

유일한 차이점은 DNS에서 localhost해결 대상 시스템을 찾는 것입니다 . 이 조회는 정말 빠릅니다. 예를 들어, stackoverflow.com주소 표시 줄에 입력하거나 여기에 표시된 북마크를 사용하십시오. 어느 쪽이든, 당신은 호스트 이름을 통해 여기에 도착했습니다. localhost비슷한 기능을 제공합니다.


11
이것은 실제로 중요합니다. localhost는 IPv6 주소로 확인할 수 있지만 127.0.0.1은 확인할 수 없습니다. IPv6 전용 시스템에서 로컬 호스트를 사용하면 작동하지만 IPv4를 사용할 수 없으므로 127.0.0.1은 작동하지 않습니다.
Erwin Jansen '12

32

일부 응용 프로그램은 "localhost"를 특별히 취급합니다. MySQL 클라이언트는 127.0.0.1에서 tcp를 사용하여 서버에 연결하는 대신 localhost를 로컬 유닉스 도메인 소켓에 연결하는 요청으로 취급합니다. 이 속도가 더 빠를 수 있으며 다른 인증 영역에있을 수 있습니다.

로컬 호스트를 127.0.0.1과 다르게 취급하는 다른 앱은 모르지만 일부 앱이있을 수 있습니다.


8

글쎄, IP로 더 빠릅니다.

기본적으로 서버 이름으로 전화하면 원래 IP로 변환됩니다.

그러나 IP를 기억하기는 어렵습니다. 이런 이유로 도메인 이름이 만들어졌습니다.

개인적 http://localhost으로 http://127.0.0.1또는 대신에 사용 합니다 http://username.


localhost가 빠르며 TCP / IP를 사용하지 않습니다
Don Viegues

@ Don Viegues-당신이 말하는 것은이 스레드의 다른 답변과 모순됩니다. 정교하게 할 수 있습니까?
Dikla

예, 다른 의견을 복사하여 붙여 넣을 것입니다. 주요 차이점은 여기에 설명 된대로 Unix 도메인 소켓을 통해 연결할 수 있다는 것입니다. stackoverflow.com/questions/3715925/localhost-vs-127-0-0-1
Don Viegues

5
@DonViegues는 MySQL과 관련이 localhost있으며 특별한 방식으로 처리 됩니다 . 다른 응용 프로그램은 여전히 ​​검색 localhost됩니다.
윌리엄 데니스

0

다른 것은 없습니다. 하나는 다른 것보다 기억하기 쉽습니다. 일반적으로 IP 주소와 연결할 이름을 정의합니다. 127.0.0.1에 대해 localhost를 지정할 필요가 없으며 원하는 이름을 지정할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.