hosts 파일이 무시되고 문제를 해결하는 방법은 무엇입니까?


148

Windows 컴퓨터의 호스트 파일은 특정 이름 문자열을 특정 IP 주소에 바인딩하여 다른 이름 확인 방법을 재정의하는 데 사용됩니다.

종종 호스트 파일을 변경하기로 결정하고 변경 사항이 적용되지 않거나 호스트 파일의 이전 항목도 무시된다는 것을 알게됩니다. 많은 "gotcha"실수로 인해이 문제가 발생할 수 있으며 어느 실수를 알아내는 것이 좌절 될 수 있습니다.

호스트 파일을 무시하는 Windows 문제에 직면 할 때 따라야 할 포괄적 인 문제 해결 프로토콜은 무엇입니까?


이 질문은 HOSTS 파일이 무시되는 등 SO에 중복됩니다.

그러나 이들은 특정 사례를 다루는 경향이 있으며 OP가 만든 실수가 발견되면 토론은 끝납니다. 같은 오류가 발생하지 않으면 그러한 토론은 그리 유용하지 않습니다. 따라서 모든 경우를 다루는 모든 호스트 관련 문제를 해결하기위한 일반적인 프로토콜을 갖는 것이 더 도움이 될 것이라고 생각했습니다 .


11
또한 다른 곳에 게시 된 사람은 "nslookup"을 사용하여이 파일을 테스트하지 마십시오.이 명령은 hosts 파일을 무시하기 때문입니다. "ping"을 사용하십시오.
LatinSuD

답변:


220

내 경험과 인터넷 검색 중에 겪은 경험을 바탕으로 다음과 같은 몇 가지 시도를 해보십시오.

1. 제대로 작동하는지 확인 했습니까?

호스트에 대한 변경 사항은 즉시 적용되지만 Windows는 이름 확인 데이터를 캐시하므로 얼마 동안 오래된 레코드를 사용할 수 있습니다. 명령 행 (Windows + R cmd,, Enter)을 열고 다음을 입력하십시오.

ipconfig /flushdns

이전 데이터를 삭제합니다. 작동하는지 확인하려면 다음을 사용하십시오 (www.example.com의 호스트에 ipv4 항목 또는 ipv6.example.com의 호스트에 ipv6 항목이 있다고 가정).

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

올바른 IP를 사용하는지 확인하십시오. 그렇다면 호스트 파일에 문제가없고 다른 곳에 문제가있는 것입니다.

또한 다음을 사용하여 NetBios 캐시를 재설정 할 수 있습니다 (관리자로 콘솔을 열면 실패 함).

nbtstat -R

다음을 사용하여 DNS 캐시의 현재 데이터를 확인할 수 있습니다.

ipconfig /displaydns | more

2. 기본

  • 호스트 파일의 이름이 올바 릅니까? 등이 hosts아니 어야합니다 host.
  • 확장명이 맞습니까? 그것은 (확장자가 없어야한다 hosts없는 hosts.txt올바른 호스트 파일의 형식이 아니라 그냥 "파일"을 표시됩니다 : 당신이 알려진 확장을 숨길 확인하기 위해 속성을 확인하기 위해 창을 구성한 경우주의 -).
  • 올바른 구문 을 따르셨습니까 ? 실수로 #주석을 나타내는 해시 ( )를 접두사로 사용 했습니까 ?
  • 모든 변종 (돌봐나요 www.example.comexample.com- 안전한 단지 모두 추가)?

3. 공백

각 줄의 형식 IP address은 가로 탭 (이스케이프 코드 \t, ASCII HT, hex 0x09) 또는 단일 공백 ​​(hex 0x20), 호스트 이름입니다. www.example.com그런 다음 마지막으로 캐리지 리턴 다음에 줄 바꿈 (이스케이프 코드 \r\n, ASCII CRLF, hex 0x0d 0x0a) 이옵니다 .

제어 문자를 표시하기 위해 유니 코드 제어 그림을 사용하는 샘플 항목. (이를 복사하여 호스트 파일에 붙여 넣지 마십시오!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

개별 바이트는 16 진 편집기 플러그인을 사용하여 메모장 ++ 에서 볼 수 있습니다 . 메모장 ++에는 특수 문자 (보기-> 기호 표시)가 표시되므로 공백 문자의 수와 종류를 쉽게 검사 할 수 있습니다.

어딘가에서 호스트 항목을 복사하여 붙여 넣은 경우 여러 공백이 생길 수 있습니다. 이론적으로 호스트는 두 열을 분리하는 여러 공간을 지원하지만 아무것도 작동하지 않으면 시도해 보는 것이 좋습니다.

안전한면을 유지하려면 호스트 파일의 모든 행이 둘 다가 아닌 탭이나 공백을 사용해야합니다.

마지막으로 빈 줄로 파일을 종료하십시오.

4. 레지스트리 키

호스트 파일의 위치를 ​​지정하는 레지스트리 키가 있습니다. 아마도 Windows는 실제로 hosts 파일을 다른 위치에 두는 것을 지원하지 않지만 확인하고 싶을 수도 있습니다. 열쇠는 :

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

항목은 다음과 같아야합니다.

%SystemRoot%\System32\drivers\etc

5. 권한

파일 사용 권한, 파일 속성 및 이와 유사한 문제에 문제가있는 경우가 있습니다. 기본 권한으로 파일을 다시 만들려면

  1. 데스크탑에서 새 텍스트 파일을 작성하십시오.
  2. 현재 호스트 파일의 내용을 복사하여 메모장의이 파일에 붙여 넣습니다.
  3. 새 텍스트 파일을 저장하고 이름을로 바꿉니다 hosts.
  4. 파일을 디렉토리 복사 ( 이동하지 마십시오 ) %SystemRoot%\System32\drivers\etc하고 이전 파일을 덮어 씁니다.

마지막 요점 : 복사 작업, 이동 작업은 중요하지 않습니다.

로컬 Users계정 은 호스트 파일을 읽을 수 있어야합니다 . 확인하려면 (Windows 7) :

  1. %SystemRoot%\System32\drivers\etcWindows 탐색기에서로 이동하십시오 .
  2. hosts파일 이 보이지 않으면 숨겨진 파일과 시스템 파일이 있는지 확인하십시오 .
  3. hosts파일을 마우스 오른쪽 버튼으로 클릭 Properties하고 상황에 맞는 메뉴에서 선택하십시오 .
  4. 에서 hosts Properties창에서 클릭 Security탭을 선택합니다.
  5. Group or user names:상자 에서 이름 목록을 확인하십시오 . 이 있으면 %COMPUTERNAME%\Users클릭하여 권한을보십시오.
  6. 경우는 Users존재하지 않는, 또는 존재하지만이없는 Read권한을 클릭합니다 Edit....
  7. 경우 Users존재하지 않는, 클릭 Add..., 유형 Users을 클릭 Check Names하고 확인을 클릭하거나 Enter 키를 누릅니다.
  8. 을 선택 하고 열 에서 선택되어 Users있는지 Read & execute확인하십시오 Allow. 확인을 클릭하십시오. 경우 Windows Security경고 상자가 팝업 선택 Yes계속.
  9. 확인을 클릭하여 hosts Properties창 을 닫으십시오 .
  10. 이 답변의 섹션 1로 이동하여 지시 사항에 따라 작동하는지 확인하십시오.

6. 인코딩

호스트 파일은 BOM없이 ANSI 또는 UTF-8로 인코딩되어야합니다. 파일-> 다른 이름으로 저장을 사용하여이 작업을 수행 할 수 있습니다.

7. 프록시

프록시가 구성된 경우 호스트 파일을 무시할 수 있습니다. 해결책은 프록시를 사용하지 않거나이를 구성하지 않는 것입니다.

확인하려면 Internet Explorer-> 인터넷 옵션-> 연결-> LAN 설정으로 이동하십시오. 모든 항목이 비어 있고 "자동으로 설정 검색"이 선택된 경우 프록시를 사용하지 않는 것입니다.

웹에 액세스하기 위해 프록시에 의존하여 비활성화하지 않으려는 경우 Internet Explorer-> 인터넷 옵션-> 연결-> LAN 설정-> 프록시 서버 / 고급으로 이동하여 예외를 추가 할 수 있습니다. 그런 다음 예외 텍스트 상자에 예외를 추가하십시오. 예 :localhost;127.0.0.1;*.dev

8. DNS 주소

(이는 프록시 문제를 해결할 수도 있습니다.)

네트워크 연결 속성으로 이동 한 다음 TCP / IP 설정으로 이동하여 첫 번째 DNS 서버를 127.0.0.1(localhost) 로 변경하십시오 . 두 번째는 실제 DNS의 IP 일 것입니다.

hosts 파일이 작동하는 데 필요 하지는 않지만 무언가가 이상하게 구성된 경우 도움이 될 수 있습니다.

9.. 지역 주소

myhost.local 형식의 .local 도메인 항목을 사용하고 있으며 무시되는 경우 다음을 시도하십시오

x.x.x.x myhost.local www.myhost.local

www.myhost.local이없는 ​​경우에도 마찬가지입니다. Windows는 어떻게 든 작업 그룹 또는 로컬 도메인을 추가하지 않습니다.


3
정말 고맙습니다! 나는 거의 울고 있습니다. 너무 많은 사람들이 2 줄 사이에 빈 칸을 시작하면서 SPACE에 열중하고 있습니다. 감사합니다 감사합니다 감사합니다 감사합니다 감사합니다 !!!!!

1
또 다른 문제는 64 비트 버전의 Windows가 32 비트 응용 프로그램 (예 : 메모장 ++)의 System32 폴더를 리디렉션하므로 파일을 저장하면 System32 대신 SystemWOW64 폴더에 표시됩니다. 가장 좋은 해결 방법은 Windows 버전의 메모장 인 64 비트를 사용하는 것입니다. 32 비트 편집기를 사용하는 경우 관리 공유 (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc)에 연결하여 파일을 여는 것이 가장 좋습니다.
팀 루이스

4
좋은 게시물이지만 몇 가지 오류가 있습니다. 1) 네트워크가 실제로 프록시 자동 구성을 제공하는 경우 IE의 "자동으로 설정 검색"을 통해 프록시를 사용하도록 할 수 있습니다 (심지어도 모르게). 2) 네트워크 설정에서 DNS 서버를 변경하는 것은 hosts파일이 사용되는 방법 /시기 / 경우와 관련이 없으며 실제로 127.0.0.1로 변경하면 실제로 DNS 서버를 실행하지 않는 한 실제로 오류가 발생합니다 컴퓨터.
Massimo

1
# 5 (새 파일 작성 및 복사)가 나를 위해 속였습니다. Win7은 권한으로 재미있을 수 있습니다.
chris

1
vim을 사용하여 Cygwin에서 hosts 파일을 편집했는데, 이로 인해 hosts 파일의 작동이 중지되었습니다. 새 파일을 작성하고 이전 호스트 파일의 내용을 복사하여 수정했습니다.
forloop

16

ipaddress를 먼저 넣은 다음 "도메인"을 다음과 같이 입력하십시오.

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

6
나는 한 줄을 사용하는 것을 선호합니다 :127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk

1
주의, windows hosts 파일은 한 줄에 NINE 또는 LESS 항목 만 허용합니다! 이것은 나를 깨물고 알아내는 데 시간이 걸렸습니다.
앤드류

.dev충돌이 없을 것이라고 TLD를 로컬에서 사용하지 마십시오 . Google이 소유 한 유효한 일반 글로벌 TLD이므로이를 사용할 때 많은 문제가 발생합니다. ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek

신인 실수,하지만 작동했습니다. 도! 그들에게 거꾸로 이름을 붙인 다음 IP
ransems

11

파일 권한 확인을 추가하십시오. 컴퓨터와 호스트에 대한 로컬 관리자 권한이 있음을 알았습니다. Read and Read & Execute를 사용하여 호스트 파일 권한에 로컬 사용자를 추가 한 다음 ipconfig / flushdns를 사용하여 호스트가 활성화되었다.


3
그거였다! 나는이 문제로 몇 년 동안 당황 했다 . 나는 추가 (machine)\USERS읽기읽기 및 실행 권한을 후에 ipconfig /flushdns는했다. 정말 고맙습니다. 마지막으로 호스트 파일을 다시 가져 와서 매우 기쁩니다.
Clement Cherlin 2016 년

7

필자의 경우 Windows 7 생성 파일 C : \ Windows \ System32 \ drivers \ etc \ hosts.ics를 시도했습니다.

hosts.ics :

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

결과적으로 Windows는 C : \ Windows \ System32 \ drivers \ etc \ hosts의 설정을 무시하고 hosts.ics에서 사용합니다.


1
에서 support.microsoft.com/en-us/kb/309642/en-us 옛 그래서 아마 더 이상 정확하지 : 는 "Hosts.ics 파일은 동적으로 구성된 클라이언트에 대한 정보를 저장하는 데 ICS에 의해 사용을 변경하지 마십시오. 이 파일은 연결 또는 데이터 손실을 방지합니다. 파일 이름 확장자가없는 Hosts 파일은 정적으로 구성된 클라이언트에 대한 정보를 추가하는 파일입니다. " 따라서 Windows 가 존재 Hosts하기 때문에 Windows가 파일 을 무시할 것으로 기대하지 않습니다 Hosts.ics. 다른 원인으로 인해 잘못된 확장명과 같이 Windows에서 Hosts 파일을 무시할 수 있습니다.
Arjan

1
이 정보를 봅니다. 그러나 왜 호스트를 호스트로만 편집 할 수 있었는지 모르겠습니다 .hosts.ics를 편집했습니다. hosts.ics를 편집하기 전에이 주제의 모든 방법을 시도했지만 호스트가 작동하지 않습니다.
Unick

감사! 당신은 내 생명을 구했습니다. Windows 10에서 작업
Xatenev

3

동일한 문제가 발생하여 호스트 파일 항목이 무시됩니다. 나는 이것과 다른 많은 스레드에서 모든 것을 운없이 시도했다. 다른 사람 이이 문제를 겪을 경우 나를 위해 일한 것을 게시 할 것이라고 생각했습니다.

  1. 관리자 권한으로 Windows 탐색기를 엽니 다.
  2. 호스트 파일 삭제
  3. 관리자로 메모장을 열고 새 호스트 파일을 작성하십시오.
  4. 처음부터 시작하여 항목을 추가하십시오.
  5. 호스트 파일의 확장자가 .txt가 아닌지 확인하십시오

참고 : 간단히 hosts 파일을 열고 내용을 삭제하여 0kb인지 확인한 후 다시 추가해도 작동하지 않습니다. 파일에 대한 권한 문제가 의심됩니다.


빠른 참고-시스템 파일 (예 : 호스트 파일)을 수정할 때는 먼저 백업을 작성하는 것이 좋습니다. 데이터 손실을 피하려면 대신 기존 호스트 파일의 이름을 바꾸고 hosts.bak다음과 같이 3 단계에서 설명한대로 진행하십시오.
nshiff

1

아마 이것에 몇 시간을 보냈습니다.

IBM Trusteer Endpoint Rapport 보안으로 인해이 문제점이 발생할 수 있습니다.

신뢰할 수있는 사이트 목록에 mysite.com을 추가했습니다.

보안의 일부로 멀웨어 나 바이러스가 다른 사이트로 이동하는 것을 방지합니다.

신뢰할 수있는 사이트 목록에서 mysite를 가져와 더 이상 내 호스트 파일 전환을 확인하고 "수정"하지 않습니다.

누군가가 문제를 해결하는 데 도움이되기를 바랍니다.


1

로 입력 IP NAME하지 않았으며로 값을 입력했는지 확인하십시오 NAME IP.

예를 들어 파일에 항목이 하나만 있고 주석 처리 텍스트를 무시하면 이런 일이 발생할 수 있습니다.


1

위의 설명에서 누락 된 한 가지 문제는 hosts 파일에서 규정되지 않은 이름 (마침표를 포함하지 않는 이름)입니다. 이 시점에서 네트워크 설정이 시작되어 자격이없는 도메인 끝에 자신의 도메인을 자동으로 추가 할 수 있습니다. 결과적으로 이름이 완전히 다른 시스템으로 해석되지 않거나 더 나빠질 수 있습니다.


0

Windows에서 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath가 hosts 파일의 디렉토리를 가리키는 지 확인하십시오.


0

필자의 경우 문제는 암호화 된 디렉토리에서 호스트 파일을 복사하고 etc / hosts를 재정의한다는 것입니다. 속성을보고 "파일 암호화"체크 상자를 체크 해제해야했습니다.


0

(Windows 7) 랩톱에서 네트워크에 연결될 때까지 호스트 파일은 무시됩니다. 네트워크에 연결되면 모든 것이 예상대로 작동합니다. 분명히 네트워크가 없으면 호스트 등을 핑 (ping) 할 수 없지만 여전히 호스트 파일에서 Windows의 IP 주소를 얻을 것으로 예상했습니다. 그렇지 않습니다. 연결을 끊은 후에도 주소는 정상적으로 조회되지만 컴퓨터를 다시 시작하고 처음 네트워크에 연결하는 사이에는 호스트 파일이 무시됩니다.

(실수로 탭, 공백 및 캐리지 리턴은 모두 내가 알 수있는 한 관련이 없습니다).

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