Centos7搭建shadowsocksrrs privoxy, 支持Chacha20加密

shadowsocksrrs和shadowsocks-libev是shadowsocks之后的两分支。window和mac os系统上使用shadowsocks-libev的图形客户端进行翻墙,它安装和配置简单,这里就不在介绍。本文主要对linux服务器如何翻墙进行介绍,下面以Centos7为例。

安装shadowsocksrrs

Pip 是 Python 的包管理工具,这里我们用 pip 安装 shadowsocks。

使用 yum install -y pip 安装,官方一个最小化的 CentOS,没有这个包,可以手动安装。

1
2
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

安装客户端

1
2
pip install --upgrade pip
pip install shadowsocks

配置客户端

1
2
mkdir -p /etc/shadowsocks
vim config.json

配置如下

1
2
3
4
5
6
7
8
{
"server":"server_ip",
"server_port":4004,
"local_port":8016,
"password":"password",
"timeout":600,
"method":"aes-256-cfb"
}

启动客户端

1
sslocal -c /etc/shadowsocks/config.json

使用systmed

新建文件/etc/systemd/system/ssclient.service

1
vim /etc/systemd/system/ssclient.service

文件中内容

1
2
3
4
5
6
7
8
9
[Unit]
Description=Shadowsocks Client

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/config.json

[Install]
WantedBy=multi-user.target

启动客户端

1
systemctl start ssclient

客户端状态

1
systemctl status ssclient

开启启动客户端

1
systemctl enable ssclient

好了,shadowsocksrrs客户端安装完成,由于pip安装的客户端不支持chacha20等加密方式,要支持这些加密方式,需要下载源码。

支持chacha20加密方式

安装libsodium

1
2
3
4
5
6
7
wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxvf LATEST.tar.gz
cd libsodium-1.0.13
./configure
make -j8 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

下载源码
由于shadowsocksrrs作者别请去喝茶,代码已经删除。自己备份了一份。

1
2
git clone https://github.com/gunsluo/shadowsocksrrs.git
cd shadowsocksrrs/shadowsocks/

可以看到目录下有local.py文件,它就是客户端入口函数文件。

修改配置文件

1
vim /etc/shadowsocks/config.json

配置如下

1
2
3
4
5
6
7
8
9
10
11
12
{
"dns_ipv6": false,
"server": "server_ip",
"server_port": 6003,
"local_address": "127.0.0.1",
"local_port": 8086,
"password": "password",
"timeout": 600,
"method": "chacha20",
"protocol": "auth_aes128_md5",
"obfs": "tls1.2_ticket_auth"
}

客户端加密配置必须和服务器端相同,根据自己的需求做响应修改。

启动客户端

在下载的源码目录下:

1
python ./local.py -c /etc/shadowsocks/config.json

编写启动脚步ssclient

1
2
3
#!/bin/bash

/root/shadowsocksrrs/shadowsocks/local.py -c /etc/shadowsocks/japan.json -d $1

mv ssclient /usr/bin/

启动客户端

1
ssclient start

测试安装shadowsocksrrs

测试命令:curl --socks5 127.0.0.1:8086 http://httpbin.org/ip 返回vpn服务器ip,说明安装成功。

1
2
3
{
"origin": "x.x.x.x"
}

安装privoxy

1
yum install privoxy

编辑 vim /etc/privoxy/config,确保下面两项。

1
2
listen-address  127.0.0.1:8016
forward-socks5t / 127.0.0.1:8086 .

启动privoxy

1
/usr/sbin/privoxy --user privoxy /etc/privoxy/config

配置终端使用代理的命令

~/.zshrc 或者~/.bashrc中加入:

1
2
3
4
5
6
7
function setproxy() {
export {http,https,ftp}_proxy="http://127.0.0.1:8016"
}

function unsetproxy() {
unset {http,https,ftp}_proxy
}

重新登录终端,setproxy开始代理,unsetproxy关闭代理。