在 Raspberry Pi OS 上設定代理伺服器

Jinku Hu 2023年1月30日 2022年5月18日
  1. 在 Raspberry Pi 上安裝 Privoxy Web 代理軟體
  2. 在 Raspberry Pi 上配置 Privoxy Web 代理軟體
  3. 將 Firefox 瀏覽器配置為使用者 Raspberry Pi 作為代理
在 Raspberry Pi OS 上設定代理伺服器

本文將介紹幾種在你的樹莓派上設定代理伺服器的方法。

在 Raspberry Pi 上安裝 Privoxy Web 代理軟體

代理伺服器是訪問 Web 服務或為其提供服務的常用工具。

在這種情況下,我們專注於轉發代理,客戶端可以使用它來增強安全性或限制來自閘道器的傳出流量。我們提出的方案是將 Raspberry Pi 設定為代理伺服器,並將來自其他客戶端的流量轉發給它。

該解決方案使用 Privoxy 軟體,該軟體為廣告攔截和其他高階功能提供過濾功能。請注意,Privoxy 沒有快取功能,因此必須提供附加軟體。

Privoxy 通常可在 Raspberry Pi OS 預設儲存庫上下載。你可以執行以下命令來安裝它或以其他方式確認它是否已安裝在你的 Raspberry Pi 裝置上:

sudo apt install privoxy

在 Raspberry Pi 上配置 Privoxy Web 代理軟體

此時,如果安裝成功,應該使用預設配置設定 Privoxy 並在 localhost:8118 埠上執行。請注意,此配置僅足以在同一客戶端計算機上使用過濾代理功能。

但是,如果我們將 Raspberry Pi 上的代理伺服器提供給其他客戶端計算機,那麼 Privoxy 應該正在偵聽外部埠。後者需要通過編輯 /etc/privoxy/config 檔案進行配置。

Privoxy 配置檔案需要使用 sudo 許可權進行編輯,但你可以使用你最熟悉的任何文字編輯器。在以下示例命令中,我們將使用 vim 文字編輯器:

sudo vim /etc/privoxy/config

開啟配置檔案後,搜尋包含 listen-address 127.0.0.1:8118 的行。

請注意,Privoxy 配置檔案包含相當大的註釋,因此最好搜尋特定的關鍵字。上述行應更改如下:

listen-address :8118

在後臺執行的 Privoxy 服務應該會自動生效。你還可以使用另外一篇文章中描述的 nmap 軟體檢查外部開放埠。

如果由於某種原因,Privoxy 沒有監聽外部 8118 埠,你可以使用以下命令重新啟動服務以強制更新配置:

sudo systemctl restart privoxy.service

將 Firefox 瀏覽器配置為使用者 Raspberry Pi 作為代理

現在,我們繼續進行客戶端配置,這可以在你希望使用 Pi 上的代理伺服器設定訪問 Web 的任何客戶端計算機上完成。

在這種情況下,我們只在 Firefox 瀏覽器上顯示客戶端設定,這允許我們使用代理而不設定系統範圍的代理。在 Firefox 的位址列中輸入 about:preferences 並導航到 Network Settings 部分。

然後,單擊設定按鈕以檢視代理配置選項。選擇手動代理配置並在 HTTP 代理框中指定 Pi 的 IP 地址。指定埠號 8118 並標記核取方塊 Also use this proxy for HTTPS

接下來,使用 Raspberry Pi 上的代理伺服器訪問 Web 服務。要驗證這一點,請在位址列中輸入以下地址,然後按 Enter:

http://config.privoxy.org/show-status

它應該顯示一個以 Privoxy 版本和執行它的主機名、IP 地址和埠號開頭的網頁。

如果此步驟導致頁面顯示未使用 Privoxy,請檢查防火牆等其他服務是否會干擾。如果是這樣,請允許在 Pi 上執行的防火牆將流量從特定客戶端 IP 地址傳遞到給定的服務埠。

你可以檢視 ufw我們的指南來設定這些規則。

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

相關文章 - Raspberry Pi