# 2021-01-11 #「Polipo」- 將 SOCKS 轉換為 HTTP(S) 代理
阿新 • • 發佈:2021-01-11
問題描述
現在我們有 SOCKS 代理伺服器,但是由於部分軟體功能限制,我們需要使用 HTTP(S) 代理服務。
該筆記將記錄:將 SOCKS 代理服務 轉化為 HTTP(S) 代理服務 的方法。
解決方案
使用 Polipo 軟體。
服務搭建
系統版本:Debian GNU/Linux 10
第一步、安裝服務
apt-get install polipo
第二步、修改配置
cp /etc/polipo/config /etc/polipo/config.backup cat > /etc/polipo/config <<EOF # 日誌等級 logSyslog = false logFile = /var/log/polipo/polipo.log logLevel=255 # 上游代理服務 socksParentProxy = "127.0.0.1:1080" socksProxyType = socks5 # 監聽服務地址及埠 proxyAddress = "::0" # both IPv4 and IPv6 # proxyAddress = "0.0.0.0" # or IPv4 only proxyPort = 8123 EOF
有關日誌等級設定,可以參考 http proxy - Make polipo to log all urls - Unix & Linux Stack Exchange 問題
第三步、啟動服務
systemctl start polipo systemctl enable polipo
第四步、代理驗證
# 此命令將返回代理 IP 地址 curl --proxy http://127.0.0.1:8123 http://bot.whatismyipaddress.com/ # 測試 Google 訪問 curl --proxy http://127.0.0.1:8123 https://www.google.com
相關連結
常見問題彙總
Couldn't create disk file ... Permission denied
問題描述:
在啟動 Polipo 服務之後,使用期間產生如下錯誤:
Couldn't create disk file /var/cache/polipo/repo.zabbix.com/hI-bv4EBKjxz41aA4cXXMQ==: Permission denied
問題原因:
通常不會遇到這個問題。在我們的場景中,當初為了測試,直接使用 ROOT 使用者啟動 Polipo 並測試,測試過程中已經建立 repo.zabbix.com 目錄,但是屬於 ROOT 使用者。隨後我們使用 systemd 管理服務,但是使用 proxy 使用者,導致無法向 repo.zabbix.com/ 中寫入。
解決方法:
Couldn't create disk file /var/cache/polipo/repo.zabbix.com/hI-bv4EBKjxz41aA4cXXMQ==: Permission denied
參考文獻
- WikiNotes/將 SOCKS 轉換為 HTTP(S) 代理
- Convert Socks Proxy To Http Proxy: Using Polipo
- Make polipo to log all urls