lưu trữ tập tin bị bỏ qua, làm thế nào để khắc phục sự cố?


148

Tệp máy chủ trên máy tính Windows được sử dụng để liên kết các chuỗi tên nhất định với các địa chỉ IP cụ thể để ghi đè các phương thức phân giải tên khác.

Thông thường, người ta quyết định thay đổi tệp máy chủ và phát hiện ra rằng các thay đổi từ chối có hiệu lực hoặc thậm chí các mục cũ của tệp máy chủ bị bỏ qua sau đó. Một số lỗi "gotcha" có thể gây ra điều này và có thể gây khó chịu khi tìm ra lỗi nào.

Khi gặp vấn đề Windows bỏ qua tệp máy chủ, giao thức khắc phục sự cố toàn diện có thể được theo sau là gì?


Câu hỏi này có trùng lặp trên SO, chẳng hạn như tệp HOSTS bị bỏ qua

Tuy nhiên, những điều này có xu hướng xử lý một trường hợp cụ thể và một khi bất kỳ sai lầm nào mà OP mắc phải được phát hiện, cuộc thảo luận đã kết thúc. Nếu bạn không xảy ra lỗi tương tự, một cuộc thảo luận như vậy sẽ không hữu ích. Vì vậy, tôi nghĩ sẽ hữu ích hơn khi có một giao thức chung để giải quyết tất cả các vấn đề liên quan đến máy chủ sẽ bao gồm tất cả các trường hợp.


11
Ngoài ra, như ai đó đã đăng ở nơi khác, đừng sử dụng "nslookup" để kiểm tra điều này vì lệnh đó bỏ qua tệp máy chủ. Thay vì sử dụng "ping".
LatinSuD

Bản sao có thể bị trùng lặp của tệp HOSTS bị bỏ qua
030

Câu trả lời:


220

Dựa trên kinh nghiệm của bản thân và những gì tôi gặp phải khi Googling, đây là một số điều cần thử:

1. Bạn đã kiểm tra xem nó hoạt động chính xác chưa?

Các thay đổi đối với máy chủ sẽ có hiệu lực ngay lập tức, nhưng Windows lưu trữ dữ liệu phân giải tên để đôi khi các bản ghi cũ có thể được sử dụng. Mở một dòng lệnh (Windows + R cmd,, Enter) và gõ:

ipconfig /flushdns

Để bỏ dữ liệu cũ. Để kiểm tra xem nó có hoạt động không, hãy sử dụng (giả sử bạn có mục nhập ipv4 trong máy chủ của mình cho www.example.com hoặc mục nhập ipv6 trong máy chủ của bạn cho ipv6.example.com):

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

Và xem nếu nó sử dụng IP chính xác. Nếu có, tập tin lưu trữ của bạn là tốt và vấn đề là ở nơi khác.

Ngoài ra, bạn có thể đặt lại bộ đệm NetBios bằng (mở bảng điều khiển với tư cách quản trị viên hoặc nó sẽ thất bại):

nbtstat -R

Bạn có thể kiểm tra dữ liệu hiện tại trong bộ đệm DNS với:

ipconfig /displaydns | more

2. Khái niệm cơ bản

  • Là tập tin lưu trữ của bạn được đặt tên chính xác? Nó nên hostsvà không host, vv
  • Là phần mở rộng đúng? Nó không nên có phần mở rộng ( hostskhông hosts.txt) - hãy cẩn thận nếu bạn đã cấu hình các cửa sổ để ẩn các tiện ích mở rộng đã biết, kiểm tra các thuộc tính để chắc chắn: Loại tệp máy chủ chính xác sẽ hiển thị dưới dạng "Tệp".
  • Bạn đã làm đúng cú pháp ? Bạn đã vô tình tiền tố dòng với một hàm băm ( #) cho biết ý kiến?
  • Bạn đã chăm sóc tất cả các biến thể ( www.example.comexample.com- an toàn nhất để chỉ thêm cả hai)?

3. Khoảng trắng

Định dạng cho mỗi dòng là IP address, sau đó là một tab ngang (mã thoát \t, ASCII HT, hex 0x09) hoặc một khoảng trắng (hex 0x20), sau đó là tên máy chủ, tức là. www.example.com, sau đó cuối cùng là trả lại vận chuyển theo sau là một nguồn cấp dữ liệu, (mã thoát \r\n, ASCII CRLF, hex 0x0d 0x0a).

Các mục mẫu, sử dụng hình ảnh điều khiển Unicode để chỉ ra các ký tự điều khiển. (Không sao chép và dán chúng vào tệp máy chủ của bạn!)

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

Các byte riêng lẻ có thể được xem trong Notepad ++ với plugin trình soạn thảo hex . Notepad ++ cũng sẽ hiển thị các ký tự đặc biệt (Xem -> Hiển thị Biểu tượng) để bạn có thể dễ dàng kiểm tra số lượng và loại ký tự khoảng trắng.

Nếu bạn đã sao chép và dán các mục lưu trữ từ một nơi nào đó, bạn có thể kết thúc với nhiều khoảng trắng. Về lý thuyết, máy chủ hỗ trợ nhiều không gian ngăn cách hai cột, nhưng đó là một điều khác để thử nếu không có gì khác hoạt động.

Để đảm bảo an toàn, hãy đảm bảo tất cả các dòng trong tệp máy chủ của bạn sử dụng tab hoặc dấu cách, không phải cả hai.

Cuối cùng, chấm dứt tệp với một dòng trống.

4. Khóa đăng ký

Có một khóa đăng ký chỉ định vị trí của tệp máy chủ. Giả sử, Windows không thực sự hỗ trợ đặt tệp máy chủ ở các vị trí khác, nhưng bạn có thể muốn kiểm tra. Chìa khóa là:

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

Mục nhập phải là:

%SystemRoot%\System32\drivers\etc

5. Quyền

Đôi khi có vấn đề với quyền trên tệp, thuộc tính tệp và những thứ tương tự. Để tạo lại tệp với quyền mặc định:

  1. Tạo một tệp văn bản mới trên máy tính để bàn của bạn.
  2. Sao chép và dán nội dung của tệp máy chủ hiện tại của bạn vào tệp này trong Notepad.
  3. Lưu tệp văn bản mới và đổi tên thành hosts.
  4. Sao chép ( không di chuyển ) tệp vào %SystemRoot%\System32\drivers\etcthư mục của bạn và ghi đè lên tệp cũ.

Điểm cuối cùng rất quan trọng: Sao chép tác phẩm, di chuyển không.

UsersTài khoản cục bộ phải có khả năng đọc tệp máy chủ . Để đảm bảo (trong Windows 7):

  1. Điều hướng đến %SystemRoot%\System32\drivers\etctrong Windows Explorer.
  2. Nếu bạn không thể xem hoststệp, hãy đảm bảo bạn có thể xem các tệp hệ thống và ẩn .
  3. Nhấp chuột phải vào hoststệp và chọn Propertiestừ menu ngữ cảnh.
  4. Trong hosts Propertiescửa sổ, bấm vào Securitytab.
  5. Kiểm tra danh sách các tên trong Group or user names:hộp. Nếu %COMPUTERNAME%\Userscó, nhấp vào nó để xem quyền.
  6. Nếu Userskhông có mặt, hoặc có mặt nhưng không Readđược phép, hãy nhấp vào Edit....
  7. Nếu Userskhông có, bấm Add..., gõ Users, bấm Check Namesvà bấm OK hoặc nhấn Enter.
  8. Chọn Usersvà đảm bảo Read & executeđược kiểm tra trong Allowcột. Nhấn OK. Nếu một Windows Securityhộp cảnh báo bật lên, chọn Yestiếp tục.
  9. Nhấn OK để đóng hosts Propertiescửa sổ.
  10. Đến phần 1 của câu trả lời này và làm theo hướng dẫn để kiểm tra xem bây giờ nó có hoạt động không.

6. Mã hóa

Tệp máy chủ phải được mã hóa trong ANSI hoặc UTF-8 mà không cần BOM. Bạn có thể làm điều này với File -> Save As.

7. Proxy

Nếu bạn có proxy được cấu hình, nó có thể bỏ qua tệp máy chủ. Giải pháp là không sử dụng proxy hoặc cấu hình nó để không làm điều này.

Để kiểm tra, hãy truy cập Internet Explorer -> Tùy chọn Internet -> Kết nối -> Cài đặt mạng LAN. Nếu mọi thứ đều trống và "Tự động phát hiện cài đặt" được chọn, bạn không sử dụng proxy.

Nếu bạn dựa vào proxy để truy cập web và do đó không muốn tắt nó, bạn có thể thêm ngoại lệ bằng cách truy cập Internet Explorer -> Tùy chọn Internet -> Kết nối -> Cài đặt LAN -> Proxy Server / Advanced. Sau đó thêm ngoại lệ của bạn vào hộp văn bản Ngoại lệ. Ví dụlocalhost;127.0.0.1;*.dev

8. Địa chỉ DNS

(Điều này cũng có thể giải quyết các vấn đề proxy.)

Chuyển đến thuộc tính kết nối mạng của bạn, sau đó cài đặt TCP / IP và thay đổi máy chủ DNS đầu tiên thành 127.0.0.1(localhost). Thứ hai có lẽ phải là IP DNS thực tế của bạn.

Điều này là không cần thiết để tập tin máy chủ hoạt động , nhưng nó có thể giúp ích trong trường hợp của bạn nếu một cái gì đó được cấu hình kỳ lạ.

9. Địa chỉ địa phương

Nếu bạn đang sử dụng mục nhập tên miền .local dưới dạng myhost.local và nó bị bỏ qua, vui lòng thử cách sau

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

ngay cả khi www.myhost.local không tồn tại. Windows bằng cách nào đó không nối thêm nhóm làm việc hoặc tên miền cục bộ của nó.


3
CẢM ƠN BẠN ĐÃ SIÊU NHIỀU! Tôi gần như đang khóc, rất nhiều người trong chúng ta phát điên vì một KHÔNG GIAN khi cầu xin một mục trống giữa 2 dòng. Cảm ơn bạn Cảm ơn bạn Cảm ơn bạn Cảm ơn bạn Cảm ơn bạn !!!!!

1
Một vấn đề khác là các phiên bản Windows 64 bit chuyển hướng thư mục System32 cho các ứng dụng 32 bit (như Notepad ++) để khi bạn lưu tệp hiển thị trong thư mục SystemWOW64 thay vì System32. Cách giải quyết tốt nhất là chỉ sử dụng phiên bản Windows của Notepad là 64 bit. Tốt nhất thứ hai là kết nối với chia sẻ quản trị (\ yourmachinename \ c $ \ Windows \ System32 \ driver \ etc) để mở tệp nếu bạn sử dụng trình chỉnh sửa 32 bit.
Tim Lewis

4
Bài đăng tốt, nhưng với một vài lỗi. 1) "Tự động phát hiện cài đặt" trong IE có thể dẫn bạn (thậm chí không biết) sử dụng proxy, nếu mạng của bạn thực sự cung cấp cấu hình tự động proxy. 2) Thay đổi máy chủ DNS của bạn trong cài đặt mạng không liên quan gì đến cách thức / thời gian / nếu hoststệp được sử dụng và việc thay đổi nó thành 127.0.0.1 thực sự là một lỗi, trừ khi bạn thực sự đang chạy máy chủ DNS trên máy vi tính.
Massimo

1
# 5 (tạo một tệp mới và sao chép nó) đã giúp tôi. Win7 có thể hài hước với quyền.
chris

1
Tôi đã chỉnh sửa tệp máy chủ lưu trữ dưới Cygwin bằng vim, tôi nghĩ rằng điều này gây ra sự cố cho tệp máy chủ của tôi ngừng hoạt động. Tôi đã phải tạo một tệp mới và sao chép nội dung của tệp máy chủ trước đó và nó đã sửa nó.
forloop

16

Hãy chắc chắn rằng bạn đã đặt ipaddress trước và sau đó là "tên miền" như thế này:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

6
Tôi thích sử dụng một dòng duy nhất:127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk

1
Cẩn thận, tệp máy chủ windows chỉ cho phép các mục NINE HOẶC LESS trên mỗi dòng! Điều này cắn tôi và mất một lúc để tìm ra.
andrew

Không sử dụng .devTLD tại địa phương nghĩ rằng bạn sẽ không có va chạm. Đây là một TLD toàn cầu chung hợp lệ thuộc sở hữu của Google và bạn sẽ gặp rất nhiều vấn đề khi sử dụng nó. Xem ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek

Rookie sai lầm, nhưng nó đã làm việc. Đừng! có tên ngược rồi IP
ransems

11

Vui lòng thêm quyền kiểm tra tập tin. Tôi thấy rằng mặc dù tôi có quyền Quản trị viên cục bộ đối với máy tính và do đó đối với máy chủ lưu trữ. Mãi cho đến khi tôi thêm người dùng cục bộ vào quyền truy cập tệp máy chủ với Đọc và Đọc & Thực thi và sau đó một ipconfig / flushdns thì máy chủ đã hoạt động.


3
Điều đó là vậy đó! Tôi đã gặp khó khăn bởi vấn đề này trong nhiều năm . Tôi đã thêm (machine)\USERSvới quyền ĐọcĐọc & thực thi và sau khi ipconfig /flushdnsnó hoạt động. Cảm ơn bạn rất nhiều. Tôi rất hài lòng khi cuối cùng đã có tập tin lưu trữ của tôi trở lại.
Clement Cherlin

7

Trong trường hợp của tôi, tôi đã thử tệp Windows 7 đã tạo: C: \ Windows \ System32 \ driver \ etc \ hosts.ics.

host.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.

Do đó, Windows bỏ qua các cài đặt trong C: \ Windows \ System32 \ driver \ etc \ hosts và sử dụng nó từ hosts.ics.


1
Từ support.microsoft.com/en-us/kb/309642/en-us , đã cũ nên có thể không còn chính xác: "Tệp Hosts.ics được sử dụng bởi ICS để lưu trữ thông tin về các máy khách được định cấu hình động. Tránh thay đổi tệp này để tránh mất kết nối hoặc dữ liệu. Tệp Máy chủ (không có phần mở rộng tên tệp) là tệp mà bạn thêm thông tin về các máy khách được định cấu hình tĩnh. " Vì vậy, tôi KHÔNG mong Windows bỏ qua Hoststệp chỉ vì Hosts.icscó mặt. Một cái gì đó khác có thể khiến Windows bỏ qua các tệp Hosts của bạn, như có thể là một phần mở rộng sai (nhưng bị ẩn).
Arjan

1
Tôi thấy thông tin này. Nhưng tôi không biết, tại sao tôi có thể làm cho máy chủ hoạt động chỉ khi tôi chỉnh sửa host.ics. Trước khi chỉnh sửa hosts.ics, tôi đã thử tất cả các phương pháp từ chủ đề này, nhưng máy chủ không hoạt động.
Bỏ chọn

Cảm ơn! Ông đã cứu vớt đời tôi. Hoạt động trên Windows 10
Xatenev

3

Tôi đã gặp vấn đề tương tự, lưu trữ các mục nhập tệp bị bỏ qua. Tôi đã thử tất cả mọi thứ trong này và nhiều chủ đề khác không có may mắn. Tôi hình dung tôi sẽ đăng những gì làm việc cho tôi trong trường hợp người khác gặp phải điều này.

  1. Mở Windows Explorer với tư cách Quản trị viên
  2. XÓA tập tin máy chủ
  3. Mở notepad với tư cách Quản trị viên và tạo tệp máy chủ mới
  4. Bắt đầu từ đầu và thêm các mục.
  5. Đảm bảo tệp máy chủ không có phần mở rộng .txt

Lưu ý: chỉ cần mở tệp máy chủ và xóa nội dung, xác minh rằng đó là 0kb và thêm lại nó không hoạt động. Tôi nghi ngờ một vấn đề quyền trên tập tin.


lưu ý nhanh - khi sửa đổi tệp hệ thống (chẳng hạn như tệp máy chủ), bạn nên thận trọng tạo bản sao lưu trước. Để tránh mất dữ liệu, thay vào đó hãy xem xét đổi tên tệp máy chủ hiện có, như hosts.baksau đó, sau đó tiến hành như bạn mô tả trong bước 3.
nshiff

1

Đã dành hàng giờ, có lẽ là ngày về điều này.

Bảo mật IBM Endeer Rapport có thể gây ra vấn đề này.

Tôi đã thêm mysite.com vào danh sách các trang web đáng tin cậy.

Tôi nghĩ là một phần của bảo mật, nó ngăn chặn phần mềm độc hại hoặc vi rút chuyển hướng bạn đến các trang web thay thế.

Đã xử lý danh sách các trang web đáng tin cậy và nó không còn kiểm tra và "sửa chữa" việc chuyển đổi tệp máy chủ của tôi.

Hy vọng rằng sẽ giúp ai đó giải quyết vấn đề của họ.


1

Hãy chắc chắn rằng bạn đã nhập các giá trị như IP NAME, không phải NAME IP.

Điều này có thể xảy ra nếu có, chỉ có một mục trong tệp và khi bạn bỏ qua văn bản nhận xét.


1

Một vấn đề bị bỏ lỡ trong cuộc thảo luận ở trên là tên không đủ tiêu chuẩn (tên không bao gồm dấu chấm) trong tệp máy chủ. Cài đặt mạng của bạn có thể bắt đầu tại thời điểm đó và tự động thêm tên miền của bạn vào cuối tên miền không đủ tiêu chuẩn. Do đó, tên có thể không giải quyết, hoặc tệ hơn nữa, giải quyết cho một máy hoàn toàn khác.


0

Trong các cửa sổ, hãy đảm bảo HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Services \ Tcpip \ Paramameter \ DataBasePath được trỏ đến thư mục của tệp máy chủ.


0

Trong trường hợp của tôi, vấn đề là tôi đã sao chép một tập tin máy chủ từ một thư mục được mã hóa và ghi đè các etc / hosts với điều đó. Tôi đã phải xem xét các thuộc tính và bỏ chọn hộp kiểm "tệp mã hóa".


0

Tệp máy chủ của tôi bị bỏ qua cho đến khi tôi có kết nối mạng trên máy tính xách tay (Windows 7). Khi tôi kết nối với mạng, mọi thứ sẽ hoạt động như mong đợi. Rõ ràng, không có mạng tôi không thể ping máy chủ, v.v. nhưng tôi vẫn mong Windows sẽ lấy địa chỉ IP của họ từ tệp máy chủ. Nó không. Ngay cả sau khi ngắt kết nối, nó vẫn tìm kiếm địa chỉ OK, nhưng giữa việc khởi động lại máy tính và lần đầu tiên kết nối với mạng, nó sẽ bỏ qua tệp máy chủ.

(Ngẫu nhiên, các tab, không gian và không có lợi nhuận vận chuyển đều không liên quan như tôi có thể nói).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.