Shadowsocks + Privoxy 搭建 http 代理服务
目前很多软件都支持配置 http 代理来加速访问,或者绕过 GFW 来获取需要的资源。比如 docker、git、gcloud、curl 这些软件都支持 http 代理。那么我们该如何轻松地基于 shadowsocks 搭建一个 http 代理,其实很简单,使用 privoxy 代理软件将收到的 http 请求转发给 shadowsocks 客户端即可。
Shadowsocks 软件整体架构
如下图所示,shadowsocks 由两部分组成:客户端(SS Local),服务端(SS Server)。客户端就是用来做本地 Sock5 代理的,代理本地 PC 的请求和服务端通信,我们一般在手机、平板、PC 上安装的图形化 shadowsokcs 软件就是 SS 客户端软件,当然如果在 Linux 下,也有SS 客户端:sslocal,后面会介绍到如何配合 privoxy 来实现 http 代理服务。服务端就是在 Linux 服务器上安装的 shadowsocks 服务端软件,供客户端连接,我们一般说的搭建 shadowsocks 代理就是在服务器上安装并配置 SS Server。
Shadowsocks + privoxy 搭建 http 代理服务步骤
整体架构如下图所示,我们需要找一台机器将 SS Server 搭建好,然后在局域网内的任何一台 Linux 服务器安装 SS Local 和 Privoxy,Privoxy 暴露 8118 端口作为 http 代理的端口:
安装配置 Shadowsocks Server 端(ssserver)
Shadowsocks 是用 Python 编写的,因此可以通过如下命令直接安装(sslocal 和 ssserver 均已安装):
sudo pip install shadowsocks
接下来编写 Shadowsocks Server 端的配置文件,配置监听端口,加密方式,密码等,新建 /etc/shadowsocks-server.json
文件,填入如下内容:
{
"server": "0.0.0.0",
"server_port": 1851, # SS Server 端口
"local_address": "127.0.0.1", #SS Local 端配置,不影响Server端使用
"local_port": 1080, #SS Local 端配置,不影响Server端使用
"password": "xxxxx",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}
使用配置文件启动 SS Server:
ssserver -c /etc/shadowsocks-server.json -d start
安装配置 Shadowsocks 客户端(sslocal)
第一步已将 SS Server 安装并配置完成,服务端口为 1851,接下来在需要安装 http 代理的机器上安装配置 shadowsocks 客户端,安装方法和第一步一样:
sudo pip install shadowsocks
编写 SS Local 客户端配置文件,配置远程连接 SS Server 的 IP,端口,密码,加密方式等,新建 /etc/shadowsocks-client.json
文件,填入如下内容:
{
"server": "xxx.xxx.xxx.xxx", # SS Server 端服务器公网 IP
"server_port": 1851, # SS Server 端口
"local_address": "127.0.0.1", # SS Local 本地监听 IP
"local_port": 1080, # SS Local 本地监听端口
"password": "xxxxxx",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}
使用配置文件启动 SS Local:
sslocal -c /etc/shadowsocks-client.json -d start
若报ERROR already started at pid xxx
错误,则使用如下命令启动
nohup sslocal -c /etc/shadowsocks-client.json start &
配置示例
/etc/shadowsocks-server.json
{
"server": "0.0.0.0",
"server_port": 8688,
"password": "123456",
"timeout": 300,
"method": "rc4-md5",
"fast_open": false,
"workers": 1
}
/etc/shadowsocks-client.json
{
"server": "127.0.0.1",
"server_port": 8688,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "123456",
"timeout": 300,
"method": "rc4-md5",
"fast_open": false
}
安装并配置 Privoxy
Privoxy 是一款代理软件,我们这里用该代理软件实现 HTTP 到 Socks5 的转换,所有来自 Privoxy 的请求被转发到 SS Local,从而实现了一个 HTTP 代理服务,Privoxy 的安装非常简单,直接 yum 一键搞定:
sudo yum install privoxy
编辑 Privoxy 配置文件 /etc/privoxy/config
,搜索关键字 listen-address
找到这一句,改成 listen-address 0.0.0.0:8118
,表示该代理可以对外访问。
接下来在该配置该文件末尾添加 HTTP 请求转发到 SS Local Socks5 的配置:
forward-socks5t / 127.0.0.1:1080 .
- forward-socks5t: 表示 Privoxy 转发请求到 Socks5 协议
- 127.0.0.1: 第二步中启动 SS Local 本地绑定 IP
- 1080: 第二步中启动 SS Local 本地监听端口
启动 Privoxy:
systemctl restart privoxy
systemctl enable privoxy
测试代理是否可用
curl -x privoxy_ip:8118 https://www.google.com
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/26/building-http-proxy-service-using-shadowsocks-and-privoxy/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论