Safari가 왜 / etc / hosts 파일을 무시합니까?


25

파일 에 차단 ( 127.0.0.1 mydomain.com) 할 도메인을 추가 /etc/hosts했는데 어떤 이유로 Safari가 무시하는 것 같습니다.

나는 시도했다 :

  • Safari 확장 기능 비활성화
  • 캐시를 지우고 ( sudo dscacheutil -flushcache)
  • Safari와 Mac을 모두 다시 시작합니다.

Chrome은 /etc/hosts변경 사항을 존중 하지만 Safari는 그렇지 않습니다. 첨부 /etc/hosts파일 은 내 파일 의 샘플입니다 .

Mountain Lion 10.8.3에서 Safari 6.0.4를 실행하고 있습니다.

어떤 아이디어?

##
# 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       facebook.com

3
응답이 없으면 Safari는 www.URL의 시작 부분에 추가 를 시도합니다 . 그러면 Facebook은 브라우저를로 리디렉션 할 수 있습니다 Facebook.com. www.facebook.com파일에 추가 하고 작동하는지 확인하십시오.
JoshRagem

나는 이것이 사실이라고 생각했다. www.facebook.com과 * .facebook.com을 모두 시도했습니다. 둘 다 일하지 않았다.
니콜라스 툴 라흐

코드 블록에 텍스트를 / etc / hosts로 저장하면 Safari에서 Facebook을 차단했습니다. / etc / hosts는 CR 줄 끝을 사용합니까, 아니면 다른 항목을 IPv6 항목 위로 옮기려고 합니까?
Lri

흥미로운 점은 facebook.com에 대한 리디렉션 후에 넣은 경우에도 search.yahoo.com을 DuckDuckGo로 리디렉션하는 데 사용하는 회선이 작동하지만 Facebook 회선은 아무것도하지 않는다는 것입니다. 이것에 완전히 뒤 틀렸다.
Nicholas Tulach 2016 년

dns 캐시를 플러시하고 safary 기록 및 캐시를 지우셨습니까? dns 캐시를 플러시하는 방법을 모르면 Mac을 다시 시작할 수도 있습니다.
konqui

답변:


13

나는 같은 문제의 약간 다른 버전을 가지고 있었고, 나를 위해 일한 것을 언급 할 것이라고 생각했다.

웹 사이트를 개발합니다. 이를 위해 로컬 네트워크에서 실행되는 각 사이트의 전체 사본이 있습니다. 로컬로 작업하고 싶을 때는 항상 "example.com"에 대한 항목을 로컬 / etc / hosts 파일에 추가했으며 DNS가 항상 재정의되어 웹 사이트의 로컬 사본에 액세스 할 수있게되었습니다. Safari 및 Firefox를 포함한 모든 브라우저 실제 라이브 사이트에 영향을주지 않고 작업 한 다음 완료되면 변경 사항을 업로드 할 수 있습니다.

그러나 최근이 기술은 Safari와 Firefox 모두에서 작동하지 않지만 Chrome에서는 작동하지 않으므로 잠시 동안 로컬 개발을 위해 Chrome을 사용하는 것으로 제한되었습니다. Google을 검색하고 호스트 파일 끝에 CR, 줄당 하나의 항목, "about : config"를 사용한 다양한 Firefox 구성 변경 등 모든 제안 된 수정 사항을 시도했습니다.

그런 다음이 간단한 것을 시도했습니다 .IPV4 버전의 주소를 / etc / hosts 파일에 넣는 것 외에도 IPV6 버전도 넣었습니다.

전에:

10.0.1.23       example.com

후:

10.0.1.23       example.com
0:0:0:0:0:FFFF:0A00:0117        example.com

IPV6 항목을 추가하자마자 Firefox와 Safari는 모두 올바른 (로컬) 서버를 공격하기 시작했습니다.

IPV4 주소를 IPV6으로 변환하는 다양한 웹 사이트가 있습니다. "ipv4 to ipv6"에서 Google 검색을 수행하십시오.


당신의 마지막 문자 /etc/hosts가 개행 인지 확인할 수 있습니까? 예를 들어로 엽니 다 vi.
dan

내 / etc / hosts 파일의 마지막 문자는 "\ n"또는 16 진 0A입니다.
프레드

1
이것이 정답입니다. Safari를 방지하려면 IPv4 및 IPv6 항목이 모두 필요 합니다. MacOS 10.12에서 테스트되었습니다.
alttag

ipaddressguide.com/ipv4-to-ipv6- 둘 다 2 줄 추가 + 아주 긴 줄 제거 – 분리 – 작동!
Artemiy StagnantIce Alexeew

8

나는이 같은 문제가 있었고 호스트 파일에 실제로 긴 줄이 있었기 때문에 발생했습니다 (여러 호스트가 동일한 줄에 나열된 동일한 IP 주소에 매핑되었습니다). 이것을 여러 줄로 나눠서 고쳤습니다.


이전으로 수정하십시오!
Artemiy StagnantIce Alexeew

8

시스템 환경 설정에서 자녀 보호를 사용하는 대신 / etc / hosts 파일을 사용하여 사이트를 차단하기 위해 OS X El Captain 10.11.4에 꽤 많은 시간을 보냈습니다. 결국 그것은 다음과 같이 간단하게 작동했습니다.

127.0.0.1 www.website.com
127.0.0.1 website.com

나는 많은 변형을 시도했지만 항상 0.0.0.0 ( 0.0.0.0 website.com)에 매핑되었습니다 . 그것은 어떤 변형에서도 효과가 없었습니다.

웹상의 일부 제안과 달리, 이것들은 쓸모가 없었습니다.

  • fe80::1%lo0 www.website.com또는 같은 IPv6 차단이 필요하지 않았습니다.::1 website.com
  • 에 대한 필요는 없었지만 경우에 dscacheutil -flushcache따라 수행하십시오.
  • hosts 파일의 시작 또는 끝에 붙여 넣어도 상관 없습니다.
  • 브라우저가 다르게 응답 한 것 같습니다. 올바른 hosts파일이 저장 되면 Chrome과 Safari에서 즉시 차단했으며 Firefox는 잠시 동안이를 무시했습니다 (다시 시작해도 확실하지 않음).
    • New Private Window테스트를 위해 브라우저 를 사용 하거나 다시 시작하십시오.
  • 주소를 추가 http://하거나 https://주소의 시작 부분에 추가하지 마십시오
  • 다른 명령은 필요하지 않았습니다.
  • #이미 hosts 파일에있는 행을 비활성화하지 마십시오 (= 시작 부분에 주석을 추가하십시오 ).

유용한 점검

  • 시스템이 리디렉션을 인식하는지 확인하십시오 dscacheutil -q host -a name website.com. 다음이 표시되어야합니다.

    name: website.com
    ip_address: 127.0.0.1
    
  • hosts파일 구문 이 올바른지 확인하십시오 cat -vet /etc/hosts. 보이지 않는 문자가 표시됩니다.

    • 줄은 $
    • 사이 127.0.0.1website.com만 공간이나로 표시되는 탭해야한다 ^I.
  • 예를 들어 페이스 북과 같은 일부 사이트의 경우 많은 주소차단 해야 할 수도 있습니다 .
  • hosts파일이 줄 바꿈으로 끝나야 한다고 생각합니다 .

6

나는 비슷한 문제가 있었다. 내 호스트 파일이 Safari를 제외한 다른 파일에 심볼릭 링크되어있을 때 내 Mac의 모든 소프트웨어에서 / etc / hosts 파일 항목을 사용했습니다. 호스트 파일이 심볼릭 링크 인 경우 Safari는이를 무시합니다.

내 해결책은 / etc / hosts를 하드 링크로 만드는 것입니다. 다행히도 내가 최신으로 유지 한 호스트 파일은 동일한 파일 시스템에 있습니다. 그렇지 않은 경우 지친 것입니다.

나쁜 사파리 ... 나쁘다.


1
나는 이것을 찾을 때까지 경력 변화를 고려하고 있습니다. 정말 똑똑하고 내 모든 도트 파일 (및 기타 구성 파일)을 git 저장소에 저장하고 심볼릭 링크를 만들 것이라고 생각했습니다. 오늘 몇 시간 동안 내 머리카락을 남겼습니다.
localheinz

고마워요, 당신은 저의 좌절 시간을 절약했습니다! 믿을 수없는 사파리!
DrMeers

4

나를 위해 작동 하는 유일한 것 (10.12.1 "Sierra") :

127.0.0.1   example.com
127.0.0.1   www.example.com
fe80::1%lo0 example.com
fe80::1%lo0 www.example.com

2
이것이 정답입니다. 호스트 파일을 추가 domain.com하고 www.domain.com호스트 파일에 추가해야 합니다. Safari는 www.귀하의 요청에 추가 할 수 있으며 와 일치하지 않습니다 domain.com.
Vagner

3

요세미티에서 나를 위해 일했습니다.

  1. 시스템 환경 설정> 네트워크> 고급> 프록시로 이동하십시오.
  2. 자동 프록시 검색을 선택하고 확인을 누르고 적용합니다 (다른 항목이 없습니다)
  3. 터미널에 입력하십시오. dscacheutil -flushcache

이것은 요세미티에서 dnscache를 플러시합니다. 이제 Safari와 Chrome은 호스트 파일을 존중해야합니다.


이 방법을 사용하고 싶었지만 iPhone과 테 더링을하고 있는데 고급> 프록시 옵션을 사용할 수 없습니다.
Roger Dueck


1

경우에 따라 /etc/hosts파일 에서 IPv4 및 IPv6 모두에 대해 루프백 주소를 추가해야 합니다.

IPv4 주소에 대한 차단 항목을 이미 추가했다고 가정 해 보겠습니다 website.com.

127.0.0.1 website.com

dscacheutil -q host -a name website.com두 프로토콜 버전 모두에 대한 주소를 반환하는 경우 :

name: website.com
ipv6_address: rand:omin:vali:dipv:6addr:ess5

name: website.com
ip_address: 127.0.0.1

그런 다음 hosts 파일에 다른 줄을 추가해야합니다.

::1 website.com


0

나는이 문제도 있었지만 해결책은 정말 쉽다. 호스트 파일에 localhost2라는 이름으로 호스트 파일에 별칭을 생성한다고 가정 해 봅시다.

호스트 파일의 해당 항목은 다음과 같아야합니다. 127.0.0.1 localhost2

safari url bar에 "localhost2"를 입력하면 드롭 다운에서 기본 옵션이 Google에서 검색하는 것임을 알 수 있습니다. "Go to Site localhost2"옵션을 선택해야합니다.


0

/ etc / hosts에 정확히 이러한 속성이 있는지 확인하십시오. 나는 내 자신의 사용자 ID를 사용하여 파일을 복사, 수정 및 교체하고 있었고 다른 모든 프로그램은 사파리를 제외하고 계속 작동했습니다 ...

$ ls -l /etc/hosts
-rw-r--r--  1 root  wheel  1004 Sep 24 16:03 /etc/hosts

0

https 주소 example.com의 경우 example.com과 www.example.com이 작동하기 전에 IPv4 및 IPv6 주소를 모두 포함해야했습니다. 이처럼 :

##
# 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
127.0.0.1       example.com
::1     example.com
127.0.0.1       www.example.com
::1     www.example.com
255.255.255.255 broadcasthost
::1             localhost

-2

이 블로그에 따르면 http://thecoredump.org/2011/09/editing-the-hosts-file-in-mac-os-x-lion/

호스트 파일의 시작 부분에 항목을 넣어야합니다. 매우 정통. 그래도 개인적인 경험은 없었습니다.


그들은 틀렸다. 위치가 아닌 구문 만 중요합니다. 그리고 모든 추가 항목은 항상 기본값을 따라야합니다.

그들은 아마도 hosts 파일을 편집하는 사람들의 일반적인 함정을 피하기 위해 처음에 넣을 것이라고 말합니다. 마지막 줄 끝에 줄 바꿈을 놓는 것을 잊어 버립니다. 해당 줄 바꿈이 없으면 마지막 줄은 무시됩니다. 항목을 앞에 추가하면 줄 바꿈을 잊기 어렵습니다.
간부 스타 인

왜 그런지 모르겠지만 이것은 저에게 효과적입니다. 요세미티를 사용하고 있습니다.
Vicary
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.