當我在 Windows 8 中更改主機檔案時,它不起作用。儘管我的更改保留在主機文件中。
我正在嘗試使用以下行將網域riddergarn.dev重定向到127.0.0.1:
127.0.0.1 riddergarn.dev
我用的是avast!並且 Windows Defender 被停用,因此這不會導致問題。我已經ipconfig /flushdns
在CMD中嘗試過,但也沒有解決問題。
我嘗試在各個網站上尋找答案,但到目前為止還沒有運氣。也許有人可以幫助我。
編輯:停用 avast!並沒有解決問題。
我的hosts
檔案(example.com 也無法解析為 127.0.0.1):
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
# ::1 localhost
127.0.0.1 riddergarn.dev
127.0.0.1 example.com
我的 %SYSTEMROOT% 是C:\Windows
我不使用 IIS,而是使用 Apache。
當我嘗試 ping 網域時,我得到以下資訊:
C:\Users\Andreas>ping riddergarn.dev
Ping request could not find host riddergarn.dev. Please check the name and try a
gain.
答案1
當我寫這篇文章時,已經是 2019 年 8 月了。我在功能強大但較舊的戴爾桌上型電腦 (XPS Gen5) 上使用 Windows 8.1。我的瀏覽器是 Firefox(48;我知道已經過時了),而且還有 Windows Explorer (11)。我的電腦上的根目錄是C:。
我想輕鬆有效地阻止來自令人反感的、未經請求的廣告商(來自其他無害的網頁)的在線彈出圖像,但無法獲取主機文件命令(旨在將“邪惡”主機名與127.0.0.1本機IP 相關聯)位址)來執行。
我嘗試了很多補救措施(來自各種線上論壇網站),當它終於開始起作用時,我正要放棄。很棒的感覺。問題是,主機檔案命令不起作用的原因可能有多種,您可能必須找出並解決所有這些問題。以下是一些(不是全部)需要檢查和嘗試的事情(請原諒那些對於您的專業水平來說太基礎的事情):
確保您的主機檔案位於
C:\Windows\System32\drivers\etc
(或同等)子目錄/資料夾中。確保您的註冊表在此處有一個條目:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
指向正確的主機位置;例如:(
%SystemRoot%\System32\drivers\etc
不含引號)"C:\Windows\System32\drivers\etc\hosts" also works when the location of Windows is "C:\Windows."
確保僅使用可靠的文字檔案編輯器(例如Windows 記事本)編輯和儲存主機文件,該編輯器在儲存修改後的檔案時不會引入任何類型的隱藏字元或新增檔案名稱後綴(如“.txt” ) “主機”檔案。
為了方便和簡單,當您工作時,重新命名(例如,到
hosts.sav
)或移動並保存原始主機文件並保存在安全的地方,並創建(例如,使用Windows 記事本)並使用全新的ANSI 類型臨時測試主機檔案只需一個指令 - 例如:「127.0.0.1google.com」(不含引號) - 後面跟著一個完全空白/空行(沒有回車符號)。 (你可以使用任何網站。我選擇強大的Google。)(如果有必要,127.0.0.1<tab>localhost
還插入第一行,總共三行。)使用此測試hosts文件可以輕鬆、快速、明確地知道hosts文件和其命令處於“開啟”狀態並處於活動狀態。如果您的瀏覽器沒有封鎖 Google,主機無法正常運作或因某種原因被繞過。但是,如果 Google.com(或您選擇的測試網站)被阻止,則主機正在工作,並且您擁有一個成功的命令措辭模式,可以對其他真實命令重複該模式。然後,您可以在 Google 行前面放置一個“#”來禁用它,或者只是刪除該行,但是該命令可以方便地在編輯主機文件時連續檢查主機文件的狀態(它是否工作?) (並可能引入錯誤,導致主機無法運作)。使用DOS指令
ipconfig /flushdns
(不含引號)在 Windows「命令提示字元」功能中根據需要變更主機檔案。比重新啟動要容易得多。我發現不需要重新啟動。
如果您在文字編輯器中開啟主機文件,進行更改並儲存主機(無需關閉編輯器),Firefox 會對變更做出反應(即,點擊刷新或重新載入頁面按鈕後),而無需停止並重新啟動Firefox 。相較之下,Microsoft Internet Explorer (IE) 要求您停止然後重新啟動 IE 才能使變更(例如,造訪特定被封鎖的網站)生效。
在主機檔案本身:
我 (a) 在最左側啟動命令列語言(數字 IP 位址),不帶任何前導空格,並始終使用單一製表符將數字位址與字母主機名稱分隔開。有人告訴我,單一空格也應該有效,或者地址和主機之間可能有多個空格。
確保每一行都以“#”開頭(用於文件)或命令列,直到到達最後一行。然後以完全空行結束。
重申一下,每一行都以某種字元開始,沒有空格,直到到達文件末尾。然後,...
最後一行應為空白(沒有字元、隱藏或其他字元)。
例如,要封鎖 Google,您可以使用下列任一命令:
127.0.0.1<tab>www.google.com
或者
0.0.0.0<tab>www.google.com
當
127.0.0.1
你收到錯誤訊息時(在 Firefox 中)無法連接。
當
0.0.0.0
您收到 (Firefox) 錯誤訊息時找不到伺服器。
我需要做的最後一件事(這阻止了我挑剔的主機命令的工作)是從字母主機名稱中刪除“http://”或“https://”。我正在複製整個網址並將它們放入主機文件命令行中。我犯的愚蠢的菜鳥錯誤。您似乎沒有這個問題,但其他人可能會遇到這個問題。 「www」。來自網址(如果存在)對於主機命令似乎不是問題,實際上可能是必要的。實驗。
答案2
您使用的是 Internet Explorer 嗎?根據我的經驗,您需要重新啟動 IE 才能識別主機變更(其他瀏覽器將立即接受變更)。
答案3
Windows 8(特別是 Windows Defender)會封鎖主機檔案編輯。
Defender 中有一個選項可以將檔案排除在此保護之外。
具體請看這個連結: http://www.howtogeek.com/122404/how-to-block-websites-in-windows-8s-hosts-file/