OS X에서 Chrome이 / etc / hosts를 무시하는 이유는 무엇입니까?


27

OS X 10.8.5 및 Chrome 30을 사용하고 있습니다.

파일에 다음을 포함하도록 추가 127.0.0.1 youtube.com했습니다 /etc/hosts.

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

127.0.0.1       youtube.com

명령을 실행하면 traceroute youtube.com예상 결과가 나타납니다 (youtube.com은 127.0.0.1로 해결됨).

traceroute to youtube.com (127.0.0.1), 64 hops max, 52 byte packets
1  localhost (127.0.0.1)  0.272 ms  0.118 ms  0.063 ms

그러나 Chrome에서 youtube.com을 입력하면 브라우저가 127.0.0.1과 연결되지 않고 대신 YouTube의 "일반"IP 주소로 연결됩니다. Chrome에서 youtube.com을 127.0.0.1로 해결할 것으로 예상했을 것입니다.

시스템의 프록시 설정을 사용하도록 Chrome을 구성했습니다. OS X에서 시스템 환경 설정> 네트워크> "고급 ..."> 프록시로 이동하면 "자동 프록시 검색"을 선택했습니다.

Chrome에서 내 /etc/hosts파일을 무시하는 것처럼 보이는 이유는 무엇 입니까?


4
www.youtube.com이 아니라 youtube.com을 해결하려고한다고 확신하십니까? 또한 youtube.com에 브라우저에 의해 캐시 된 301 리디렉션이있어 youtube.com에 문의하지 않아도됩니다 (내 컴퓨터가 아닌 확인).
user2313067

감사합니다! / etc / hosts를 수정하여 www.youtube.com에 127.0.0.1로 해결하는 줄을 만들었습니다.
Jonathan

@ user2313067 댓글로 답변을 게시 할 수 있습니다.
Blacklight Shining


답변:


8

www.youtube.com호스트 파일에 추가 하십시오. youtube.com영구적으로 재 지정됩니다 www.youtube.com않도록 당신이 방문으로, youtube.com한 번 브라우저가이 응답하고 리디렉션 당신을 캐시합니다 www.youtube.com. 이 주소는 호스트 파일에 없으므로 Chrome에서 논리적으로 올바르게 해결합니다.


1
리디렉션을 지우려면 superuser.com/questions/304589/… 또는 개발시 시크릿 모드를 사용하십시오
james.c.funk

1
추가 www가 작동하지 않습니다. 모든 브라우저 데이터를 지우고 DNS를 비운 후에도. 아마도 이것은 피싱 방지 조치로 Chrome에 구운 것입니까?
f1lt3r

알몸과 www를 추가합니다. hosts 파일의 버전이 나를 위해 일했습니다. 또한 Chrome에서 chrome : // flags / # enable-new-
preconnect를 비활성화했습니다

10

Chrome은 호스트 파일을 무시하고 실제 DNS 조회를 수행합니다 (다른 사람들이 생각할 수도 있지만 /etc/hostsDNS의 일부가 아니며 DNS 이전 에 사용 된 것임 ). Chrome 해당 호스트 파일 항목을 존중 해야 하지만 그렇지 않습니다. DNS 서버를 사용할 수없는 경우 (예 : 네트워크 연결을 비활성화 한 경우) DNS 대신 호스트 파일을 읽습니다.

호스트 파일에 "127.0.0.1 foobar.dev"를 추가 한 다음 wireshark를 활성화하고 네트워크 인터페이스를 관찰하여이를 테스트 할 수 있습니다. Chrome을 열고 http://foobar.dev/주소 표시 줄에 넣고 이동하십시오. Wireshark에 다음과 같은 DNS 쿼리가 표시됩니다.

2   1.668727000 192.168.32.104  8.8.8.8 DNS 75  Standard query 0x663a  A foobar.dev

FWIW에서 Google DNS는 foobar.dev에 대해 127.0.53.53을 반환합니다.

3   1.706484000 8.8.8.8 192.168.32.104  DNS 91  Standard query response 0x663a  A 127.0.53.53

해결 방법 은 Chrome에서 호스트를 사용하도록하는 이전 Chrome 확장 프로그램 인 HostAdmin 을 사용하는 것입니다. 그러나 최신 버전의 Chrome (> 38 이상)은 더 이상 지원하지 않습니다.


Chrome은 실제로 /etc/hostsOS X에서 파일을 무시 하지 않습니다. OS X 10.10.3에서는 Chrome v43이 아닙니다.
Petr Peller

Wireshark는 다른 이야기를합니다.
Karl Wilbur

1
Chrome에서 Google DNS를 쿼리한다는 사실이 / etc / hosts를 의미하지 않을 수도 있습니다. 이는 단순히 최적화 / 로깅 / 스 파이핑 목적 일 수 있습니다. OS X에서 / etc / hosts 파일을 매우 자주 사용하며 Chrome에 문제가 없습니다.
Petr Peller

3
내 호스트 파일에 '127.0.0.1 foo.dev'가 있고 Chrome에서 foo.dev를 127.0.53.53으로 마술로 해결하면 호스트 파일이 무시됩니다.
Karl Wilbur

1
예,하지만 Wi-Fi가 켜져 있으면 Chrome DNS 조회를 수행하기 전에 호스트 파일을 먼저 사용해야합니다 . 그렇지 않습니다. 그게 문제 야.
Karl Wilbur

5

이 문제를 해결하여 Chrome 고급 환경 설정에서 "사용자와 기기를 위험한 사이트로부터 보호"를 끕니다.

Chrome의 기본 제공 '보호'에는 자체 DNS에 대해 도메인을 직접 확인하고 "의심스러운"것으로 간주되는 특정 유형의 호스트 항목 또는 무시되는 사이트에 대한 항목을 우회하는 것이 포함됩니다. 이는 대부분의 맞춤 호스트 항목이 무시됨을 의미합니다. 특히 개발에 사용되는 * .dev 및 * .local 항목.

이 기능을 끄면 문제가 100 % 해결되었습니다. 이것은 지역 개발을 할 때 몇 달 동안 나를 미치게 만들었고 어디에서나 답변을 찾을 수 없었습니다. 고급 설정에서는 간단한 토글이었습니다. 이것이 여러분에게도 도움이되기를 바랍니다.


고맙게도 지난 주에 효과가 있음을 알고 몇 일 전에 크롬 옵션을 기본값으로 변경했는데 더 이상 작동하지 않았습니다. 효과가 있었다!
98percentmonkey

고맙게도 지난 주에 효과가 있음을 알고 몇 일 전에 크롬 옵션을 기본값으로 변경했는데 더 이상 작동하지 않았습니다. 효과가 있었다! 그것은 새로운 버전의 "안전 브라우징"라고
98percentmonkey

0

Localhost는 tcp / ip의 내부 주소 인 127.0.0.1 주소에 대한 규칙이지만 Chrome은 / etc / hosts를 사용하여 주소를 해결하지 않고 DNS 서버를 사용하므로 주소가 없습니다. / etc / hosts이지만 DNS 서버에서 / etc / hosts를 사용하는 경우 모든 주소를 해결하려면 전체 www 호스트 이름을 보유해야합니다.

도움이 되었기를 바랍니다.


1
-1. /etc/hosts모든 DNS 서버를 재정의합니다. 예. 사용하는 경우/etc/hosts 모든 도메인 이름을 포함해야하지만 대부분의 설정에는 DNS 서버도 포함됩니다. 크롬은 단순히 도메인 이름을 해결하기 위해 OS를 요청하는 경우 가해야처럼 , /etc/hosts먼저 확인되며,이 항목을 포함하지 않는 경우, 다음 DNS 쿼리가 전송됩니다.
Blacklight Shining

/etc/hosts 재정의하고 DNS 요청을 해야 하지만 Chrome에서는 그렇지 않습니다. hosts 파일에있는 내용에도 불구하고 자체 DNS 조회를 수행합니다. 이것은 쉽게 설명 할 수 있습니다. 이것은 특히 .devTLD를 사용한 로컬 개발의 문제입니다 .
Karl Wilbur

0

필자 는 개발에 사용 hosts하는 .dev가짜 도메인의 macOS for Chrome 에서 파일이 작동하지 않는다고 생각 하여이 질문을 우연히 발견했습니다 .

사실 그것은 않습니다 적어도 크롬 77, 일을.

문제는 도메인을 찾을 수 없다는 것이 아니라 모든 .dev가 자동으로 https로 리디렉션된다는 것입니다 .

이 사이트에 접속할 수 없습니다-Chrome

도메인 이름을 두 번 클릭하면 범인을 확인할 수 있습니다.

https

이제 구글은 파산 것을 우리 .dev, 솔루션으로, 링크는 위와 같이, 개발을위한 또 다른 TLD로 이동합니다 제안 .test또는 .localhost.

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