问题描述
现在我们有 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
参考文献
Convert Socks Proxy To Http Proxy: Using Polipo
Make polipo to log all urls