호스트 파일 리디렉션이 어떻게 실패합니까?


12

Mac 에서이 / etc / hosts 파일을 사용하여 재미 있고 배우기 위해 google.com을 로컬 컴퓨터로 리디렉션하려고합니다.

127.0.0.1 www.google.com

그러나 www.google.com은 Mac의 Chrome에서 방문해도 여전히 Google 홈페이지에 매핑됩니다. 왜?

기본적으로 이것은 내가 한 전부입니다.

  1. sudo vim /etc/hosts터미널을 입력하십시오 .
  2. 127.0.0.1 www.google.com호스트 파일에 입력 되었습니다.
  3. vim을 저장하고 종료했습니다.

답변:


11

hosts파일은 이런 식으로 작동하지 않습니다. 이를 사용하여 호스트 이름을 IP 주소에 매핑하지 않고 IP 주소에 매핑 할 수 있습니다 localhost.

귀하의 경우 127.0.0.1 www.google.com, 즉 www.google.com을 127.0.0.1로 매핑하십시오.

더 많은 호스트 이름을 단일 IP에 매핑하려면 동일한 행에 해당 호스트 이름을 추가하십시오 (예 :) 127.0.0.1 www.a.com www.b.com.


1
감사합니다. 방금 Mac의 / etc / hosts 파일을로 변경했습니다 127.0.0.1 www.google.com. 그러나 google.com은 여전히 ​​Google 홈페이지로 연결됩니다. 새로 고침해야합니까? 컴퓨터를 다시 시작해야합니까?
David Faux

필요하지 않습니다. 127.0.0.1 google.com이 줄 다음에 (www없이) 추가 하고 작동하는지 확인하십시오.
Renan

127.0.0.1 google.com작동하지 않습니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다 ... 맥에서 /etc/hosts소프트 링크 라는 것을 알고 /private/etc/hosts있지만 전혀 도움이되지 않습니다.
David Faux

1
기술 : hosts호스트 이름을 IP 주소에 매핑합니다.
Dennis

1
@Dennis, 그것이 제가 말하고자하는 것이지만, 다시 생각할 때, 두 항목 사이에 연관성이 있기 때문에 두 가지 방식으로 작동합니다.
Synetech

10

hosts구문이 올바른지 확인하는 가장 좋은 방법은 웹 브라우저가 아닙니다 . 실행을 시도

ping www.google.com

핑을 확인하십시오 127.0.0.1.

Chrome에서 hosts파일 을 무시한 것으로 보이는 이유 는 다음과 같습니다.

Chrome에서 최근에 IP를 쿼리 한 경우 (최근 DNS 의 정의 는 DNS 서버에서 반환 된 TTL (Time to Live) 에 따라 달라짐 ) hosts이미 올바른 IP를 알고 있기 때문에 파일 을 무시합니다 . 이것은 웹 브라우징 속도를 높이기 위해 수행됩니다.

Chrome이 새로운 항목을 존중하도록하려면 다음 사항을 수행하십시오.

  1. /etc/hosts@Renan 설명대로 편집하십시오 .

  2. 로 이동하십시오 chrome://chrome/settings/clearBrowserData.

  3. 를 선택하십시오 since the beginning of time.

  4. 확인 Empty the cache하지만 다른 모든 항목은 선택 취소 하십시오 .

  5. 클릭 Clear browsing data하고 완료 될 때까지 기다립니다.

  6. Chrome을 다시 시작하십시오.

Chrome은 hosts이제 파일을 존중해야 합니다.


2
IE6을 통해 오래 전에 이것을 배웠습니다. IE가 여전히 열려있는 동안 HOSTS 파일을 변경 한 경우 변경 사항을 적용하려면 해당 파일을 닫았다가 다시 실행해야합니다. 이것은 대부분의 프로그램에 적용됩니다. 그러나 일부 프로그램 (예 : 1 년 또는 2 년의 Chrome 버전)은 실제로 HOSTS 파일을 주기적으로 다시 읽으므로 변경하는 경우 1-2 분 정도 기다렸다가 새로 고치십시오 (캐시를 지울 필요가 없음). (이러한 읽기 정책은 때때로 이런 식으로 유용하지만 일반적으로 낭비이기 때문에 실제로는 매우 나쁘고 특히 HOSTS 파일이 크면 특히 나쁩니다.)
Synetech

@Synetech : hosts항목이 이미 캐시 된 호스트 이름이 아닌 한 Chrome에서 변경 사항을 즉시 선택합니다 . 나는 가정 이 확인하는 hosts의 TTL이 지난 경우에만. 로 웹 사이트, 그 시간이 걸릴 수 있습니다.
Dennis

다른 버전이 HOSTS 파일을 다시 읽는 방법에 대한 구체적인 내용은 모르지만 Filemon / ProcMon을 사용하여 실제로 볼 수 있습니다. chrome.exe때때로 전체 파일을 읽습니다.
Synetech

2
크롬의 DNS 캐시를 플러시하는 덜 잔인한 방법이 있습니다. superuser.com/questions/203674/…
hakunin

@hakunin : 깔끔합니다. Chromium 25.0.1364.160 Ubuntu 12.04에서는 더 이상 필요하지 않습니다. 체크인 net-internals/#dns하고 호스트 캐시가 /etc/hosts변경 되면 자동으로 지워집니다 .
Dennis

1

우분투 16.04 용 Fortinet SSL VPN을 통해 사무실에 연결하고 있기 때문에 위의 대답은 위의 조합입니다.

가장 먼저해야 할 일은 터미널 콘솔을 열고 다음 명령을 실행하는 것입니다.

sudo nano /etc/resolvconf/resolv.conf.d/base

다음 예제를 추가했습니다.

searchdomain domain.local
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

그런 다음을 눌러 파일을 저장 CTRL-O하고을 눌러 nano를 닫았습니다 CTRL-X.

그런 다음 다음을 수행했으며 완벽하게 작동했습니다.

Chrome이 새로운 항목을 존중하도록하려면 다음 사항을 수행하십시오.

/etc/hosts@Renan 설명대로 편집하십시오 .

  1. 로 이동하십시오 chrome://chrome/settings/clearBrowserData.
  2. 처음부터 선택하십시오.
  3. 캐시 비우기를 선택하고 다른 항목은 모두 선택 취소하십시오.
  4. 인터넷 사용 정보 삭제를 클릭하고 완료 될 때까지 기다립니다.
  5. Chrome을 다시 시작하십시오.

Chrome은 이제 호스트 파일을 존중해야합니다.

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