無法存取 Windows 上的某些網站,但可以在同一台 PC 上的 Linux 上存取

無法存取 Windows 上的某些網站,但可以在同一台 PC 上的 Linux 上存取

我在訪問此類網站時遇到問題Pastebin.com或者海盜灣從我的 Windows 10 系統。瀏覽器超時。我嘗試了不同的瀏覽器(Brave、Edge、Chrome、Firefox),也在 Windows 中建立了一個新的使用者設定檔 - 結果相同。

我的網路中的其他系統造訪這些網站沒有問題。當我在系統上啟動 Linux 時,我也可以從該 PC 存取這些網站。

這表示路由器或 ISP 等級沒有進行任何過濾 - 否則,其他系統也不應該到達這些網站。

我可能會尋找什麼想法?

答案1


長話短說

您無法存取網站,因為您的主機檔案已更改,將網站位址重新導向到錯誤的 IP,導致網站無法存取。


電腦檔案hosts 是將主機名稱對應到IP 位址的作業系統檔案。它是一個純文字檔案。最初,名為 HOSTS.TXT 的檔案由史丹佛研究所手動維護並透過檔案共享提供給 ARPANET 成員,其中包含由成員組織貢獻的主機名稱和位址。域名系統於 1983 年首次描述並於 1984 年實施,1自動化發布過程,並在快速成長的網路中提供即時和動態的主機名解析。在現代作業系統中,主機檔案仍然是一種替代名稱解析機制,通常可以作為名稱服務切換等設施的一部分進行配置,作為主要方法或後備方法。

維基百科

對於 Windows 系統,hosts 檔案位於 C:\Windows\System32\drivers\etc\hosts,它包含網站位址到 Internet 協定位址的對應。

電腦無法識別網站位址,它們只能識別 1 和 0,因此我們需要將網站位址轉換為 IPv4 位址,以便電腦知道要連接到哪裡。

一個IPv4位址是一個 4 位元組(32 位元)二進制數,分為 4 個數字,每個數字一位元組長,它們之間用點分隔,因此將總位址限制為 4294967296。

在此輸入影像描述

要將 IPv4 轉換為 4 位元組數,從左到右:

16777216*$ip.split('.')[0]+65536*$ip.split('.')[1]+256*$ip.split('.')[2]+$ip.split('.')[3]

不過,要將 4 位元組轉換為 IPv4,比較困難:

$byte1=[math]::floor($number/16777216)
$number=$number % 16777216
$byte2=[math]::floor($number/65536)
$number=$number % 65536
$byte3=[math]::floor($number/256)
$number=$number % 256
"{0}.{1}.{2}.{3}" -f $byte1,$byte2,$byte3,$number

上面是在PowerShell中轉換IPv4的例子,很容易理解,真的,雖然我不得不承認我不能在一秒鐘內快速轉換這些值,但計算機可以,但是我理解網站地址,但計算機不知道。

IP 位址之於電腦就像名字之於人類;網站就像電腦擁有的書籍。一本書可能被很多人擁有,一個人可以擁有很多本書,但是每個人的名字都是唯一的(至少理論上是這樣),人與名字之間存在著一一對應的關係。請注意,IP 位址對於每台電腦來說都是唯一的。我們不會用某人擁有的書名來稱呼某人,而是用他的名字來稱呼某人。計算機的工作原理類似。如果你想訪問一個網站,你必須與擁有這本書的電腦進行通訊才能閱讀這本書。

因此,當我們存取網址時,我們有 DNS 伺服器來告訴電腦要連接到哪台電腦。 DNS 伺服器記錄網站託管在哪個 IP 位址(誰擁有該書),並告訴電腦與 IP 位址指向的電腦進行通訊。

電腦不知道網站的實際位置以及答案的真實性,它們只是轉到被告知的 IP 位址,因此如果回答錯誤的 IP 位址,您將無法訪問該網站(因為該網站不是不託管在錯誤IP 指向的電腦中,且網頁不存在於與錯誤IP 關聯的電腦中)。這稱為 DNS 欺騙,當被詢問某些網站時,故意讓 DNS 伺服器回答虛假的 IP,從而阻止這些網站。該技術被 GFW 廣泛使用,以禁止一些網站,例如 Wikipedia 和 DeviantArt(並非所有被封鎖的網站都會被該技術阻止)。

有一個簡單的方法可以對抗 DNS 欺騙:更改主機。造訪網站時,電腦會檢查網站的位址是否存在於hosts檔案中,如果該位址不存在於hosts檔案中,它們只會查詢DNS伺服器;如果他們在主機檔案中找到該位址,他們將存取在主機檔案中找到的位址,並且不會查詢 DNS 伺服器。因此,如果主機檔案中包含正確的 IP,則 DNS 伺服器的錯誤答案不會阻止您存取某些網站。透過線上 DNS 查找可以找到正確的 IP。

但是,主機檔案也可以被利用。

您可以透過以下方式使用主機檔案來封鎖網站:

127.0.0.1 www.contoso.com

某些程式(尤其是惡意軟體和反惡意軟體)也可以執行此操作。

同樣,電腦無法判斷 IP 是否正確,或者您是否想阻止某個網站,它們只會遵守。

因此,幾乎所有的防毒和反惡意軟體(至少我所知道的)都會阻止主機檔案被更改,同時它們會自行更改主機檔案以阻止某些網站以「保護」用戶出於「安全」原因,所以如果你想涉足hosts文件,請先卸載所謂的防毒軟體。

相關內容