所謂IPv6隧道其實都是為了讓IPv6的各個孤島能通過IPv4的海洋相互連接起來,或者說都是一個過渡技術(IPv4向IPv6過渡)。
在RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and Routers中定義的一種隧道技術: 在兩個支持雙棧(既支持IPv4也支持IPv6的設備,如路由器)的節點間靜態建立IPv6 over IPv4的隧道。IPv6報文經過雙棧節點時,通過查詢路由(靜態IPv6路由配置),可知出接口為IPv6 over IPv4隧道接口,報文封裝IPv4頭(IPv4目的和源地址分別為隧道出入接口地址,協議號為41),報文經過IPv4網絡后到達隧道出口,剝離IPv4隧道頭后,在出口節點查找IPv6路由或鄰居信息(同一子網時)將報文送達目的IPv4節點。
當IPv6終端需要與掛接在IPv4網絡中很多個IPv6信息島(不同IPv6子網)通訊時,其出接口的雙棧路由器需要配置很多的隧道(同一個隧道起點,不同的隧道終點),自動隧道技術應運而生。
自動隧道中,用戶僅需要配置設備隧道的起點,隧道的終點由設備自動生成。為了使設備能夠自動產生終點,隧道接口的IPv6地址采用內嵌IPv4地址的特殊IPv6地址形式。設備從IPv6報文中的目的IPv6地址中解析出IPv4地址,然后以這個IPv4地址代表的節點作為隧道的終點。
根據IPv6報文封裝的不同,自動隧道又可以分為IPv4兼容IPv6自動隧道、6to4隧道和ISATAP隧道三種。
IPv4兼容IPv6自動隧道,其承載的IPv6報文的目的地址(即自動隧道所使用的特殊地址)是IPv4兼容IPv6地址。IPv4兼容IPv6地址的前96位全部為0,后32位為IPv4地址。
其格式為:
#IPv4兼容IPv6地址格式
#IPv4兼容IPv6報文抓取
如下圖所示: 源IP為::10.1.1.1目的IP為::20.1.1.1的IPv6報文到達路由器R1后,R1查找其IPv6路由表,發現出接口為隧道接口,則對IPv6報文進行封裝(加一個IPv4頭),其源地址為隧道地址10.1.1.1, 目的地址則從IPv6報文的最后32位獲得(即20.1.1.1), 封裝后的報文經過IPv4網絡送達R2后,解封(剝掉IPv4頭),根據IPv6路由表進行轉發,回來的報文按照同樣的邏輯進行處理。
#IPv4兼容IPv6隧道的組網示意圖
注:如果IPv4兼容IPv6地址中的IPv4地址是廣播地址、組播地址、網絡廣播地址、出接口的子網廣播地址、全0地址、環回地址,則該IPv6報文被丟棄,不會進行隧道封裝處理。
由于IPv4兼容IPv6隧道要求每一個主機都要有一個合法的IP地址,而且通訊的主機要支持雙棧、支持IPv4兼容IPv6隧道,不適合大面積部署。目前該技術已經被6to4隧道所代替。
6to4隧道也屬于一種自動隧道,隧道也是利用在IPv6地址中內嵌IPv4地址方式來自動建立的。與IPv4兼容自動隧道不同,6to4自動隧道支持Router到Router、Host到Router、Router到Host、 Host到Host。這是因為6to4地址是用IPv4地址做為網絡標識,其地址格式如下所示:
#6to4隧道封裝地址格式
6to4地址可表示為2002:IPv4地址::/48, 如2004:101.0.0.65::/48, 6to4地址的網絡前綴長度為64bit,其中前48bit(2002: a.b.c.d)在分配路由器上的IPv4地址時就被定下來了(劃定了路由器下屬的一個IPv6大網),用戶不能改變,而后16位(SLA)可在路由器下掛網絡進一步細分(由該大網管理用戶自己定義)。如圖所示,20.2.2.200路由器下,有兩個IPv6子網: 2002:20.2.2.200:1::/64和2002:20.2.2.200:2::/64。
# 6to4組網示意圖
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站點內自動隧道尋址協議)是另外一種自動隧道技術。ISATAP隧道同樣使用了內嵌IPv4地址的特殊IPv6地址形式,只是和6to4不同的是,6to4是使用IPv4地址做為網絡前綴,而ISATAP用IPv4地址做為接口標識。其接口標識符格式如下圖所示:
#ISATAP地址格式
#ISATAP報文抓取
由于ISATAP是通過接口標識來表現的,所以,ISATAP地址有全局單播地址、鏈路本地地址、ULA(Local IPv6 Unicast Address)地址、組播地址等形式。ISATAP地址的前64位是通過向ISATAP路由器發送請求來得到的,它可以進行地址自動配置。在ISATAP隧道的兩端設備之間可以運行ND(鄰居發現)協議。ISATAP隧道將IPv4網絡看作一個非廣播的點到多點的鏈路(NBMA)。
ISATAP過渡機制允許在現有的IPv4網絡內部署IPv6,該技術簡單而且擴展性很好,可以用于本地站點的過渡。ISATAP支持IPv6站點本地路由和全局IPv6路由域,以及自動IPv6隧道。ISATAP同時還可以與NAT結合,從而可以使用站點內部非全局唯一的IPv4地址。典型的ISATAP隧道應用是在站點內部,所以,其內嵌的IPv4地址不需要是全局唯一的。
#ISATAP 組網示意圖
如上圖所示,在IPv4網絡內部有兩個雙棧主機B和C,它們分別有一個私網IPv4地址。要使其具有ISATAP功能,需要進行如下操作:
將IPv6報文封裝一個GRE頭部,然后再封裝IPv4頭部
#IPv6 over IPv4 GRE隧道
與前面的自動隧道通過在IPv4的數據報文中承載著IPv6數據報文(IPv6-in-IPv4)不同, Teredo隧道利用了UDP(端口3544)頭進行了封裝,以便于封裝后的報文透過NAT進行傳輸。路由器對TCP、UDP等傳輸層協議做NAT處理,而無法正確處理IPv6-in-IPv4這種報文,例如使用ISATAP隧道,IPv6雙棧節點與ISATAP路由器之前如果存在NAT,ISATAP建立隧道失敗;6to4隧道也會遇到同樣的問題。
Teredo隧道是有微軟公司主導的一項隧道技術,主要用于在NAT網絡架構下建立穿越NAT的隧道。Teredo隧道的核心思路,是將IPv6的數據封裝成IPv4的UDP數據包,利用NAT對IPv4的UDP支持進行穿越NAT的傳輸,當UDP包到達隧道的另外一端后,再把IPv4的包頭、UDP包頭剝離,還原IPv6的數據包,再進行下一步的IPv6數據通信轉發。Teredo節點會分配一個以2001::/32的前綴,而且地址中還包含Teredo的服務器、標志位和客戶端外部映射模糊地址和端口號等信息。
Teredo的實現還會遇到NAT的類型不同而被限制的問題。NAT的類型有錐形NAT、受限制的NAT、對稱NAT幾種(見附錄1),Teredo只能在錐形NAT和受限制的NAT的環境下正常工作,而且在這兩種NAT需要處理的邏輯又是不一樣的。
如在win10下開啟teredo隧道
netsh interface teredo set state server=teredo.remlab.net
#win 10 teredo虛擬接口
#teredo隧道報文抓取
6RD是IPv6快速部署(IPv6 Rapid Deployment)的簡稱,其對應標準為RFC5569,6RD是在6to4基礎上發展起來的一種IPv6網絡過渡技術方案。通過在現有IPv4網絡中增加6RD-BR,向使用IPv6的用戶提供IPv6接入;在IPv6用戶的家庭網關和6RD網關之間建立6in4隧道,從而實現在IPv4網絡提供IPv6服務的能力。
6RD在向IPv6過渡的過程中已經取得了部分成功,因為它容易實施,擴展性強而且可靠,同時它還是無狀態的。
6RD是6to4自動隧道的擴展技術,部署更加靈活。它使得運行商通過已經部署完畢的IPv4網絡提供IPv6服務,當然也是通過最常用的把IPv6封裝在IPv4中實現。
6RD和6to4自動隧道的區別:
#6rd組網示意圖
按照端口轉換的工作方式對NAT的類型進行劃分:
l 全錐形NAT
其特點為:一旦內部主機端口對(私網IP:端口,目的IP: 端口)被NAT網關映射到公網端口對(公網IP:端口,目的IP:端口),所有后續的該端口對的報文都會被轉換為同一個公網端口對;任何一個外部主機發送到公網端口對的報文將會被轉換后發到內部的主機端口對。
l 限制錐形NAT
其特點為:一旦內部主機端口對(私網IP:端口,目的IP: 端口)被NAT網關映射到公網端口對(公網IP:端口,目的IP:端口),所有后續的該端口對的報文都會被轉換為同一個公網端口對;只有內部主機端口對向特定的外部主機(目的IP)發送過數據,外部主機(目的IP)從任意端口發送到(公網IP: 端口)的報文將會被轉發到內部主機端口對。
l 端口限制錐形NAT
其特點為:一旦內部主機端口對(私網IP:端口,目的IP: 端口)被NAT網關映射到公網端口對(公網IP:端口,目的IP:端口),所有后續的該端口對的報文都會被轉換為同一個公網端口對;只有內部主機端口對向特定的外部主機(目的IP)發送過數據,外部主機端口對(目的IP:端口)發送到(公網IP: 端口)的報文將會被轉發到內部主機端口對。
l 對稱型NAT(大多數互聯網網關的NAT轉換模式)
其特點為:NAT網關會把內部主機“地址端口對”和外部主機“地址端口對”完全相同的報文看作一個連接,在網關上創建一個公網“地址端口對”映射進行轉換,只有收到報文的外部主機從對應的端口對發送回應的報文,才能被轉換。即使內部主機使用之前用過的地址端口對去連接不同外部主機(或端口)時,NAT網關也會建立新的映射關系。
為了避免超額收集隱私和販賣隱私這類情況的惡化,不僅 Apple 和 Mozilla 這類一貫以「保護用戶隱私」為己任的公司或基金會都紛紛在系統或者瀏覽器中集成了各種各樣保護用戶隱私的手段;甚至 Google 這種通過廣告精準投放進行盈利的公司,也將在未來 Chrome 瀏覽器和 Chromium 開源計劃中內置「隱私沙盒」(Privacy Sandbox)功能,在保證廣告投放效果的情況下,能夠充分保護用戶隱私。
AdGuard 桌面端
不過,這些保護措施對我這種非常抗拒隨意收集隱私的人來說,大部分還是不夠嚴格的。我希望無論是誰都盡可能的少的收集我的隱私,這也是我為什么開始從使 AdGuard 瀏覽器插件版轉向 AdGuard 桌面版的主要原因。
第一步:通過攔截規則開始隱私保護
攔截規則在 AdGuard 桌面端里被稱為廣告攔截器,不僅有非常好用的廣告攔截功能,還能防止跟蹤、屏蔽社交媒體插件、網頁上的繁瑣且無用的元素以及對詐騙網站發出提醒。這些規則事實上都是一連串的網址,用戶打開對應的規則以后,軟件會通過匹配,符合規則的網址在連接到用戶之前就會被阻斷。用戶使用的過程中并不會感知到發生了過濾的情況,同時頁面加載的速度也會快上不少(如果規則沒有設置的過多的話)。
規則過多時的提示
雖然 AdGuard 默認就會打開一部分的規則,但是這些規則還是會放過不少「漏網之魚」,因此我開啟了額外的過濾器,保證規則足夠格,大家要根據實際情況考慮開啟哪些過濾器。
非常簡單地創建自定義規則
當你打開一個頁面,頁面中有廣告/元素沒有被已經訂閱地規則正確過濾?AdGuard 內置的助手功能可以幫助沒有任何代碼的基礎的你創建規則,點擊助手,然后選擇攔截此網站上的廣告,然后拖動滑桿,選取最合適的攔截大小,點擊攔截即可,廣告就被很輕松地去除了。
使用 AdGuard 助手快速屏蔽頁面中的廣告
如果沒有找到助手,請前往設置-擴展,打開使用 AdGuard 助手,當然擴展頁面上的其他功能也可以選擇打開,能幫助你更好的使用 AdGuard。
第二步:通過調整設置完善隱私保護的流程
AdGuard 桌面版設置非常復雜,即使是開箱即用,不做任何調整,大部分用戶還是很難理解每個功能分別是做什么的,它是怎么影響攔截過程的,會有更好的選項保護隱私嗎?
AdGuard 作用原理
AdGuard 的桌面端簡單來說就是一個架設在電腦和你瀏覽的網站中間的一個中間服務器,它負責把一個網頁經過規則過濾以后的網頁呈現在用戶面前。任何的網頁流量都必須通過 AdGuard 桌面端。
常規模式
語言、主題、更新通道、過濾器檢查周期和日志級別,這些都和過濾的過程沒有關系,概念也都很好理解,這里就不展開贅述了。會影響過濾過程的選項主要是在高級設置里,分別是:
當使用 WFP 驅動程序時攔截 Teredo,WFP 網絡驅動程序是從 Windows 8 版本開始微軟引入的兩種新的網絡過濾程序之一,他的好處是能接管 UWP 應用的網絡請求。簡單來說 WFP 就是一種能篩選所有 Windows 程序和 UWP 流量的接口。而 Teredo 是一種 IPV6 地址轉換機制,它幫助有 IPv4 互聯網但沒有原生 IPv6 網絡支持的電腦提供 IPv6 的網絡支持。這個選項開啟以后,AdGuard 將可以過濾來自 Teredo 轉換過來的 IPv6 流量。
攔截 TCP 連接請求,TCP 是一種傳輸協議,它先要經過三次握手協議,確認對面的身份以后,再數據包安全可靠的發往目的地,是電腦上程序和服務器通訊的時必須要使用的協議,AdGuard 只有攔截 TCP 連接請求,才能對攔截的請求進行過濾,這樣應用程序的請求才會被完全的過濾。
攔截 TCP 快速打開,TCP 快速打開(TCP fast open)是一項 TCP 的拓展技術。開啟以后,如果 TCP 將要連接到的服務器是曾經連接過的,那么在第一次握手完成以后,在后續的兩次握手中都可以直接攜帶數據開始傳輸,而不需要等待三次握手全部完成以后再傳輸,能夠大大降低傳輸延遲。而攔截 TCP 快速打開,能夠對后續的兩次握手中傳輸的數據進行過濾,避免出現漏網之魚。
Apple 已經開始使用了 TLS 1.3
使用 TLS 版本 1.3,TLS 版本 1.3 是一項全新的 TLS 協議,它旨在提供更快的訪問速度、更好的安全性,現在 Apple、Google、Cloudflare 等大型公司已經開始在服務器上部署這一項技術了。雖然 TLS 1.3 的前身 TLS 1.2 還沒發現過于的嚴重的漏洞,不過 TLS 1.3 中廢棄了多個現在看來已經不安全的加密方式。使用 TLS 版本 1.3 雖然不會讓過濾變得更干凈,但是可以讓用戶在瀏覽的時候變得更加安全。
使用重新定向驅動模式,這個功能將會把所有的流量轉發給 AdGuard 的本地服務器上,進行充分過濾。如果不開啟 AdGuard 會選擇動態過濾,這樣可能部分流量沒辦法進行過濾,比如某些視頻播放器在播放途中插入的廣告,可能會認為是視頻直接放行。
過濾 Localhost 連接,Localhost 連接是指來自電腦內部的連接,如果你本地有架設服務,并且這些服務中的流量有廣告,那么打開這個選項將能正確地過濾來自他們廣告。
網絡
網絡設置
網絡的設置也將會影響 AdGuard 過濾的質量,Adgaurd 提供了兩種不同的流量過濾方式:
AdGuard 用作 HTTP 代理時,AdGuard 會在后臺運行一個 HTTP 代理,所有的請求會在這個 HTTP 代理中進行處理。在無視系統內代理行為的同時將會自動過濾所有的流量(也就是即使使用重新定向驅動模式關閉,也可以直接過濾所有流量),不過這個模式有個嚴重的問題:沒辦法過濾 HTTPS 流量。
HTTPS 通過證書確認身份(圖片來自知乎又拍云)
HTTPS (超文本傳輸協議)通過證書確保發送方身份,保證數據在傳輸的時候不會被人嗅探或是篡改,因此 AdGuard 在作為 HTTP 代理的的時候,很難處理證書驗證的部分,自然 HTTPS 流量無法過濾,而且現在 HTTPS 用的地方也越來越多了。因此我在這里更建議使用自動過濾程序流量。
自動過濾程序流量將使用系統內置的網絡驅動程序對所有的流量進行過濾,因此它能夠對 HTTPS 流量進行過濾,效率也相對更好一點(不過有的時候不少所有的都會被過濾到,因此要打開使用重新定向驅動模式)。啟用 WFP 網絡驅動程序則是可以讓 Adugard 過濾 UWP 類應用,也可以過濾 Teredo 通道里的流量。自動過濾程序流量 選項大家可以選擇手動將應用添加到過濾列表(也可以進行排除),有選擇性的進行強制過濾或是不對它進行過濾。
第三步:隱形模式是保護隱私最強的保護手段
如果說規則和 AdGuard 的設置是基礎保護,那么隱形模式就是進階的保護,讓你輕松逃離周圍成千上萬的跟蹤器。規則只能攔截來自網頁的跟蹤器,而隱身模式可以攔截網站和網站之間的聯系。
不僅僅是請求還有很多額外的數據會被發送到服務器
首先我們需要明確一個概念,你在瀏覽網頁時,網站不僅知道你要請求什么內容;它還會知道你的很多額外信息,比如:你的 IP 地址、當前正在使用的瀏覽器和系統的信息、分辨率(瀏覽器當前窗口的)、你從哪里跳轉過來的(比如你從搜索引擎跳轉到了這個網頁)、讀取曾經的瀏覽器 Cookie 標記和有關你的信息、用戶的某些首選項(比如語言、有哪些插件)等等信息。因為這些信息能夠很好的幫助網站識別你是你,并能連續地了解到你的活動記錄。
隱型模式下除了特殊說明的選項,其他我幾乎所有的選項都開啟了,大家使用時一定要根據自己的情況適當的開啟選項。
而 AdGuard 的隱形模式就是針對上述情況進行設計的,它主要分為四個部分:常規、跟蹤方式、瀏覽器 API 和雜項。下面我們就來看看他們是如何幫助用戶逃離跟蹤器的:
常規
隱身模式的常規選項
常規包含了下面 4 個選項,通過他們能夠簡單快速移除一些簡單的跟蹤路徑:
隱藏您的搜索記錄會隱藏你使用搜索引擎進入某個網站的查詢記錄,這樣這個網站就無法知道你常用的搜索引擎是什么了。通過了解常用的搜索引擎,網站可以返回給我們特定的結果(也有可能是推送廣告),或是調整相關關鍵詞來提升搜索時的位置。這是一種非常常見的跟蹤方式。
發送「請勿跟蹤」請求,AdGuard 將會給每個用戶瀏覽的網絡頁面發送一個 HTTP 請求,里面包含一個請勿跟蹤的請求,要求這個頁面不要通過用戶跟蹤或是跨站點跟蹤的方式記錄你的活動記錄。這個選項一般瀏覽器里也會有,不過一般這個功能是用來「防君子」的,因為你雖然請求了不要跟蹤,但是網站還是可以選擇繼續跟蹤你。
移除 HTTP 請求中的 X-Client-Data 數據頭這是針對 Chrome 瀏覽器的選項,你使用 Chrome 瀏覽器瀏覽到任何和 Google 有關的網頁時候(包括 Double Click 和 Google Analyse),Chrome 瀏覽器都會自動把瀏覽器版本、系統信息和其他一些修改的信息等傳遞給 Google。而移除 HTTP 請求中的 X-Client-Data 數據頭,能攔截這一塊的數據,保護你的隱私。
剝離 URL 中的跟蹤參數將會剝離用戶從一個網址跳轉訪問其他網址時包括在 url 里的跟蹤參數,加上沒用戶會關心我跳轉鏈接為什么會變得那么長,所以跟蹤參數是一種最簡單的跨站點跟蹤的方式,。剝離參數以后可以適當緩解跨站跟蹤情況的發生。高級用戶也可以選擇添加自定義的跟蹤參數。
跟蹤方式
阻止跟蹤
跟蹤方式里包含了常見的網站能跟蹤你的方法,限制和阻止他們能夠很有效的減少各種網站的跟蹤方式。包括了:
自銷毀第三方 Cookie,Cookie 的特點是「記憶性」,它可以輕松的記憶用戶的身份,避免用戶反復的登錄;在跟蹤用戶時,可以利用這個特點可以記憶用戶身份,比如購物車里有什么。而第三方意味著并不是你當前瀏覽的頁面的產生的 Cookie(否則被稱為第一方 Cookie)。在瀏覽網站的時候第三方 cookie 可以輕松記錄你最常瀏覽哪些網頁、什么時候來瀏覽 XX 的網頁、停留多久等等,并將這些數據發送回這個第三方服務器上,幫助第三方輕松的補上用戶畫像。同時這個選項比起攔截第三方 Cookie 有個好處是,他不會導致通過第三方登錄按鈕失效。當然這個選項在實際使用也是有點問題的: Google 賬戶因為這個選項的原因頻繁登出(原來登入 Google 也是用的第三方 Cookie 啊),我借此推斷出 Google 也會通過第三方 Cookie 收集用戶信息,所以我選擇保留這個開關處于打開的狀態。
自銷毀第一方 Cookie和自銷毀第三方 Cookie 很像,不過他是針對第一方 Cookie 的,打開以后哪怕是第一方網頁超時以后都會讓你再次登錄,說實話太過麻煩了。當然網頁還會通過第一方 Cookie 傳遞一些重要信息,禁用以后麻煩是只多不少,因此我這里沒打開,也不推薦大家打開。
禁止緩存第三方請求,和利用 Cookie 跟蹤很像,不過這里用到的跟蹤技術會相對更新一點。一個網頁 A 可以在加載的時候對網頁里多處做上標記,這些標記也被稱為 E-TAGS。只要這個網頁 A 還在你的電腦緩存里,那么這些標記可以將你后來請求的頁面記錄發送這個網頁 A,是不是感覺非常毛骨悚然?不過目前 E-TAGS 技術,只能知道你后續瀏覽了哪些網站,不能知道你的訪問頻率或是訪問過程,而且一旦從網頁 A 從緩存里清除也不能進行跟蹤了。不過禁止緩存第三方請求這個功能能很好的從源頭阻止這個問題,讓你的隱私一點都不泄漏。
攔截第三方授權頭,授權頭是一組數據,它的主要目的是授權,但也可以被用來跟蹤用戶。授權頭所做的的事情和 Cookie 很像,只不過需要當訪問這個網站時才會從本地發送到服務器(而 Cookie 可以隨時發送);此外有很多第三方授權頭都是通過 HTTP 發送的,很容易被不懷好意的人或者軟件截獲。因此打開攔截第三方授權頭的選項也能大幅度減少被跟蹤或者隱私泄漏的可能。不過攔截第三方授權頭,可能會影響部分軟件(比如:瀏覽器插件)的工作,這個時候可能需要短暫的關閉這個選項。
瀏覽器 API
深層次過濾瀏覽器 API
隱形模式中瀏覽器 API 這一部分只會影響過濾列表中瀏覽器的有關 API,不會影響過濾列表中的其他軟件的運作,它們包括了:
攔截 WebRTC,WebRTC 是一種快速開發實時多媒體的技術,更簡單點說是實時通訊協議。這種通訊協議其實挺好的,使用起來也無需安裝插件,只不過它會無視代理暴露你真實的 IP 地址。我打開了這個選項完全是因為:反正我用不到這個協議,還不如更加嚴格一點直接禁用了比較好。
攔截推送 API和攔截定位 API,這兩個 API 也很好理解,分別是管理瀏覽器推送和定位的。選上以后瀏覽器就沒辦法給你推送消息或者大概的定位到你在哪里。同時這兩個 API 也是很好的跟蹤方式,利用推送 API 可以保持第三方 Cookie 的活性(不被刪除);而利用定位 API 可以了解用戶大概的位置,可以記錄用戶的工作時間地點等信息。由于我用不到瀏覽器推送通知或者利用網頁地圖查看什么東西,所以這兩項我也默認啟用了。
攔截 Flash和攔截 Java將直接禁用過時的 Flash 插件和 Java 插件,也就是說瀏覽器即使支持也無法正常地使用這兩個插件。Flash 插件和 Java 插件都存在非常多安全問題,同時對網頁地加載時間也有非常糟糕地負面影響,此外這兩種插件也逐漸被業界所淘汰,越來越多的網頁開始選擇更新更現代更安全的 HTML5 技術。所以我也選擇將這兩項進行禁用。Javascript 雖然也有 Java 前綴,不過不用擔心,它可和 Java 沒有任何的關系,啟用攔截 Java 后,Javascript 還是可以正常運作的。
雜項
不得不被收集的數據也有解決方案
雜項中也包含了一部分你不能禁止的,必須要發送給服務端的數據,這些數據也能被用來跟蹤用戶,他們包括了:
隱藏您的第三方 Referrer這個和上面的隱藏您的搜索記錄或剝離 URL 中的跟蹤參數有相通的地方,能告訴你訪問的網址你是從哪里跳轉過去的。只不過 Referrer 是包含在你訪問那個網頁的 HTTP(S) 請求頭中,你不能將它去掉,但是你可以選擇隱藏它。我這里使用的第三方 Referrer 是用的 https://www.zhihu.com。
隱藏您的 User-Agent,User-Agent 也同樣是包含在網頁的 HTTP(S) 請求頭中的,User-Agent 將包括了發起請求的用戶所使用的應用類型、操作系統、軟件開發商以及版本號,在加上非常多的用戶喜歡全屏瀏覽網頁(網站就能獲得當前屏幕的分辨率),這樣網站就能完整的收集到用戶使用的瀏覽器,用戶使用的操作系統,當前屏幕的大小,并以此作為跟蹤用戶個人信息的一種手段。我們同樣也可以對這部分請求頭進行修改,我這里使用的 User-Agent 是Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36,這是一個非常常見的運行在 Windows 10 之上 Chrome v74 版本的瀏覽器。
隱藏您的 IP,這個功能就是利用一個假的 IP 地址去替換掉你真正的 IP。不過我打開試驗過了,對于各種查詢 IP 的網站來說好像沒有任何作用,因此我也很難確定這個功能否正常工作。
以上就是我如何利用 AdGuard 桌面端對我的隱私進行保護的一個實踐,希望它能幫助到你。AdGuard 桌面端提供了長達 14 天的試用期,超過試用期后你可以前往數碼荔枝這類國內授權的 AdGuard 銷售商進行購買激活碼。感覺用不到桌面端功能那么復雜的功能也沒有關系,AdGuard 的瀏覽器插件也提供上文中部分選項開關,同樣也能幫助到你攔截廣告和保護隱私。