在 Ubuntu 上把 SOCKS5 代理转换为 HTTP 代理,最常用的方法是借助 Privoxy 这样的中转工具。它可以监听本地端口,把 HTTP 请求转发到 SOCKS5 代理,从而让不支持 SOCKS5 的程序也能用上代理。下面是一个完整的配置流程:
🛠 配置步骤
1. 安装 Privoxy
sudo apt update
sudo apt install privoxy
2. 编辑配置文件
打开 Privoxy 配置:
sudo nano /etc/privoxy/config
在文件中找到或添加以下内容:
# 将 SOCKS5 请求转发到你的 SOCKS5 代理
forward-socks5 / 127.0.0.1:1080 .
# 设置 Privoxy 监听端口(HTTP 代理端口)
listen-address 127.0.0.1:8118
说明
–127.0.0.1:1080
是你的 SOCKS5 代理地址和端口,可改成实际值
–listen-address
默认只监听本机,如需外网访问可改为0.0.0.0:8118
3. 重启 Privoxy
sudo systemctl restart privoxy
4. 测试 HTTP 代理
现在 Privoxy 会在 8118 端口提供 HTTP 代理服务,你可以用 curl
测试:
curl -x http://127.0.0.1:8118 http://httpbin.org/ip
如果返回的是 SOCKS5 代理的出口 IP,说明转换成功。
5. (可选)设置系统环境变量
如果想让终端命令全局走 HTTP 代理,可以在 ~/.bashrc
添加:
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
然后执行:
source ~/.bashrc
📌 小结
- SOCKS5 → HTTP 转换的核心是 Privoxy 的
forward-socks5
配置 - 适合不支持 SOCKS5 的软件(如部分下载器、命令行工具)
- 如果需要更高性能或支持 HTTPS 转发,也可以考虑 polipo 或 3proxy 等替代方案