目前網路上,充滿許多廣告,從網頁(Web)到行動裝置的應用程式(App),可能當你上了某個購物或商店的網站瀏覽商品後,再進入一些放置廣告的網站瀏覽時,會出現剛剛瀏覽過或是同類型的產品。除了很討厭見到廣告內容外,在行動裝置上更是會使用到可觀的行動網路流量,更重要的是,讓廣告商們能夠追蹤自己的瀏覽記錄與喜好等。Chrome 在今年(2018 年)二月加入了廣告過濾(AD Filtering),Google 在 Chrome 瀏覽器中,加入廣告過濾主要並不是想要保護使用者的隱私,因為使用者看不到廣告,與使用者不被追蹤是兩回事,沒看到廣告不表示你沒被追蹤。
下面會分享,自己目前或使用過的阻擋廣告、追蹤的方式與軟體(皆是開源的),主要分成瀏覽器、行動裝置端與其他。
瀏覽器端
在瀏覽器上瀏覽網頁,是透過 JavaScript 載入執行的程式,來顯示廣告或追蹤你點擊、瀏覽過的網頁,常見防止廣告與第三方追蹤的方式是阻擋特定的 JavaScript 檔案或特定的域名,來避免瀏覽器執行這些 JavaScript,或向特定域名送出 HTTP/HTTPS 請求。
uBlock Origin
uBlock Origin 廣泛來說,並不是完全來阻擋廣告與被追蹤的工具,它提供了多種阻擋規則,包含了請求類型、主機名稱、網址、HTML DOM 等,也能利用正規表示式(regular expression)等來撰寫阻擋規則。(注意:uBlock Origin 與 uBlock 是不同的,可以從 logo 圖案來區分)
uBlock Origin 專案原始碼:https://github.com/gorhill/uBlock
如果你是 Firefox 瀏覽器使用者,請從 Firefox Add-on 安裝;如果你是 Chromium/Chrome 瀏覽器使用者請從 Chrome 線上應用程式商店安裝。
uBlock Origin 支援許多瀏覽器,像是 Firefox、Chrome、Safari 等,只要在瀏覽器內,安裝 uBlock Origin 擴充套件後就能使用,uBlock Origin 中也包含了許多的阻擋清單,讓你依照自己的需求,如阻擋的類型,或依照國家內常見的廣告與追蹤來阻擋。
uBlock logo 取自 Raymond Hill (@gorhill) https://github.com/gorhill/uBlock/blob/master/doc/img/ublock-16.svg,以公眾領域(CC0)釋出
Privacy Badger
Privacy Badger 由 EFF 開發的瀏覽器擴充套件,也是來防止廣告與被第三方追蹤,只是做法與 uBlock Origin 不大相同,uBlock Origin 是利用清單來進行阻擋,Privacy Badger 是以啟發式的方法來阻擋廣告與被追蹤,它能利用演算法分析網站中第三方資源的行為,來判斷這些行為是不是有要追蹤使用者,如果發現似乎要追蹤使用者,Privacy Badger 就會讓瀏覽器停止載入這些資源,來避免使用者被追蹤。
Privacy Badger 專案原始碼:https://github.com/EFForg/privacybadger/
Privacy Badger 官方網站:https://www.eff.org/privacybadger
Privacy Badger logo 取自 EFF https://www.eff.org/sites/all/themes/badger/badger-stroke.png,以 CC BY 3.0 US 釋出
行動裝置端
在行動裝置上的操作,並不完全是使用瀏覽器,也會使用各式各樣的應用程式,但是,沒辦法像瀏覽器一樣,在應用程式內安裝擴充套件來阻擋廣告與被追蹤(Firefox 行動版瀏覽器可以安裝擴充套件),不過,在行動裝置端也是可以進行阻擋,只是方式不一樣,常見的都是以 DNS 域名解析的方式來阻擋,只不過這會是使用 VPN 來達成,簡單來說,在行動裝置上需要建立 VPN 連線,然後在 VPN 伺服器攔截 DNS 解析,把連線到廣告或追蹤的域名解析成 0.0.0.0 或 127.0.0.1,將連線導至黑洞(blackhole),避免連線到伺服器上來阻擋這些請求,而這些 VPN 伺服器可以是建立在遠端的也能是在行動裝置上。
Blokada
Blokada 是在 Android 作業系統中的廣告、被追蹤阻擋應用程式,它利用在應用程式建立 VPN 連線、服務,來防止行動裝置向廣告與第三方追蹤服務連線,Blokada 社群宣稱不會大量消耗行動裝置的電池,自己經常使用下來,大多時候的耗電量是 2% 至 3% 左右。
Blokada 社群網站:https://blokada.org
Blokada 專案原始碼:https://github.com/blokadaorg/blokada
目前 Blokada 沒辦法透過 Google Play 下載,到專案網站的下載頁面內,提供了直接下載 APK 與透過 F-Droid 開源的應用程式商店來下載、安裝 Blokada,Blokada 的在地、繁體中文化也蠻完整的。
Blokada 安裝完開啟後,就能直接使用,擁有基本阻擋廣告與被追蹤的黑名單,如果想啟用更多的黑名單,來更完整的阻擋,可以點選 App 起始畫面的右上角,加入黑名單圖示在 Blokada 中,再點選黑名單,就能看到目前已經擁有的黑名單有哪些,Blokada 也能讓你增加更多的黑名單進來。
Blokada Logo 取自 Blokada 專案 https://github.com/blokadaorg/blokadaorg.github.io/blob/master/img/blokada_icon.png
DNS66
DNS66 跟 Blokada 兩者很相似,都是以 VPN 連線、服務,來阻擋廣告與第三方追蹤服務的域名。
DNS66 官方網站:https://jak-linux.org/projects/dns66/
DNS66 專案原始碼:https://github.com/julian-klode/dns66
DNS66 跟 Blokada 一樣無法在 Google Play 下載,必須透過 F-Droid 來下載、安裝。DNS66 也可以啟用、增加要阻擋的主機與清單,也能設定允許的主機,與 Blokada 相比多了讓使用者自訂 DNS 伺服器,不過,Blokada 預計也在 3.2 版本加入自訂 DNS 功能,除了這些之外,一個蠻明顯的區別是 DNS66 目前看來還沒有繁體中文化,還有 DNS66 的介面比較明亮 XD。
也有人分享覺得 Blokada 的耗電量與使用資源還是有差異,這應該要依照每個人去試試看了,我自己都是在使用 Blokada 為主。
DNS66 Logo 取自 DNS66 專案 https://github.com/julian-klode/dns66/blob/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
其他
這裡主要的方式一樣也是透過 DNS 域名解析的攔截來阻擋,只不過方法會有些許不同,像是用第三方提供的阻擋服務,將自己裝置的域名設定為第三方的 DNS 伺服器,或是在區域網路內透過 DHCP 來設定 DNS 伺服器,而這個 DNS 伺服器一樣會攔截特定域名。
Pi-hole
Pi-hole 一樣是利用了 DNS 黑洞的方式來阻擋廣告與被追蹤,它主要是安裝在 Linux 作業系統內,讓安裝 Pi-hole 的主機作為 DNS 伺服器,例如:在家中利用個人電腦或 Raspberry Pi 安裝 Pi-hole 後,將無線路由器內 DHCP 內的 DNS 伺服器設為 Pi-hole 伺服器的 IP 位址,這樣在家中使用無線網路時,就能夠阻擋廣告及被追蹤的連線;或者是,如果在外面的公用 Wi-F,有使用自己 VPN 服務時,也能夠在自己的 VPN 伺服器安裝 Pi-hole,並讓 VPN 設定的 DNS 伺服器,使用 Pi-hole 的 DNS。
Pi-hole 官方網站:https://pi-hole.net/
Pi-hole 專案原始碼:https://github.com/pi-hole/pi-hole
Pi-hole 安裝對有熟悉指令操作的人非常簡單,只要一個指令就能安裝好,它也提供了網頁管理介面,讓你可以了解到阻擋了多少個域名、最常阻擋哪些域名,在管理方面,在網頁中,能新增阻擋清單與設定白名單,與自訂要查詢的 DNS 伺服器。
如果,在安裝、設定的步驟有任何問題,可以先到 Pi-hole 在 Github 上的 Wiki,這裡頭有許多整合相關服務的文件,像是與 OpenVPN、Nginx 等。
Pi-hole logo 取自 Pi-hole https://pi-hole.net/trademark-rules-and-brand-guidelines/
Adblock
家中使用的無線路由器(Wireless router)如果是 OpenWrt/LEDE 的韌體,能再安裝 Adblock 套件,一樣能將黑名單域名的流量導入黑洞,這樣也能讓家人在家中使用網路時,來阻擋廣告及被追蹤。
Adblock 在 OpenWrt 專案的原始碼:https://github.com/openwrt/packages/tree/master/net/adblock
Adblock 在 OpenWrt/LEDE 也有提供管理介面,但是需要再安裝 luci-app-adblock 套件,可以直接透過 OpenWrt/LEDE 網頁管理介面來操作 Adblock,管理介面中能看到有許多可以直接啟用的阻擋清單,來增加被阻擋的主機數量。比較沒這麼方便的是,當要加入新的阻擋清單時,會沒那麼直覺,必須在 Adblock > Advanced > Edit Configuration 內加入新的一筆清單來源,詳細設定語法,可以到 Adblock README 中的「add a new blocklist source」查看。
LEDE 與 OpenWrt logo 取自 OpenWrt https://openwrt.org/,以 CC BY-SA 4.0 釋出
上面所介紹的都是以開源軟體為主,還是有一些不錯的免費或付費服務,可以看看,像是提供免費 DNS 服務、瀏覽器擴充套件,在 Android、iOS 上付費應用程式來阻擋廣告的 Adguard;還有在 Firefox 瀏覽器內建阻擋清單的 Disconnect,也有提供免費在瀏覽器上、行動裝置瀏覽器與付費的跨裝置阻擋服務。
比較
名稱 | 開源 | 支援裝置/平台 | 阻擋方式 | 備註 |
uBlock Origin | ✔ | 瀏覽器 | 以清單、規則,阻擋瀏覽器載入資源 | |
Privacy Badger | ✔ | 瀏覽器 | 以演算法來做啟發式阻擋 | |
Blokada | ✔ | Android 作業系統 | 藉由 VPN 連線,阻擋黑名單域名 | 支援自訂 DNS 伺服器 |
DNS66 | ✔ | Android 作業系統 | 藉由 VPN 連線,阻擋黑名單域名 | 支援自訂 DNS 伺服器 |
Pi-hole | ✔ | 所有裝置 | DNS 伺服器阻擋黑名單域名 | 需安裝在 Linux 作業系統 |
Adblock | ✔ | 所有裝置 | DNS 伺服器阻擋黑名單域名 | 需安裝在 OpenWRT/LEDE |
最後
要如何開始呢?你是新手的話,可以試試從直接安裝在瀏覽器的擴充套件 uBlock Origin、Privacy Badger 與在行動裝置上的 Blokada、DNS66 為主,Pi-hole、Adblock 的安裝、操作,需要在網路裝置設備,較適合進階使用者。
發佈留言