我测试的是利用两台机器 ,一台做socks5服务端,一台做客户端,然后利用在客户端机器 利用 Privoxy 将 socks5代理转为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

标签: ssr

添加新评论