CentOS 7 Shadowsocks+Privoxy 代理

“本文介绍的是在 CentOS 上安装 shadowsocks 客户端的过程,最终实现的也就是当前 CentOS 通过其他服务器的 Shadowsocks 服务联网,非在 CentOS 上安装 shadowsocks 服务端的过程,因此你需要一个已经能科学上网的 shadowsocks 服务端。”

前言

本文介绍的是在 CentOS 上安装 shadowsocks 客户端的过程,最终实现的也就是当前 CentOS 通过其他服务器的 Shadowsocks 服务联网,非在 CentOS 上安装 shadowsocks 服务端的过程,因此你需要一个已经能科学上网的 shadowsocks 服务端。

安装 pip

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

1
2
yum install python-pip
pip install shadowsocks

配置 shadowsocks

新建配置文件:

1
vi /etc/shadowsocks.json

填写以下内容:

1
2
3
4
5
6
7
8
9
10
11
{
"server":"your_server_ip", #ss服务器IP
"server_port":your_server_port, #端口
"local_address": "127.0.0.1", #本地ip
"local_port":1080, #本地端口
"password":"your_server_passwd",#连接ss密码
"timeout":300, #等待超时
"method":"rc4-md5", #加密方式
"fast_open": false, # true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。开启方法: echo 3 > /proc/sys/net/ipv4/tcp_fastopen 开启之后,将 fast_open 的配置设置为 true 即可
"workers": 1 # 工作线程数
}

Demo参考:

服务器地址:45.76.93.4 服务器端口:16458 加密方式:chacha20 密码:ZwtU9c 协议:origin 协议参数: 混淆:plain 混淆参数:

1
2
3
4
5
6
7
8
9
10
11
{
"server":"23.105.222.129",
"server_port":5800,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"*******",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}

启动shadowsocks服务

1
sslocal -c /etc/shadowsocks.json

设置shadowsocks开机自启

1
sudo vim /etc/systemd/system/shadowsocks.service

填写如下内容:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Shadowsocks Client Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target

配置生效:

1
systemctl enable /etc/systemd/system/shadowsocks.service

测试

运行curl --socks5 127.0.0.1:1080 http://httpbin.org/ip
如果返回你的 ss 服务器 ip 则测试成功:

1
2
3
{
"origin": "23.105.222.129"
}

安装 Privoxy

Shadowsocks 是一个 socket5 服务,因此我们需要使用 Privoxy 把流量转到 http/https 上。
直接使用yum安装即可:
yum install privoxy
安装好后,修改一下配置:
vim /etc/privoxy/config
搜索forward-socks5t
forward-socks5t / 127.0.0.1:9050 .
取消注释并修改为:
forward-socks5t / 127.0.0.1:1080 .

启动 privoxy

privoxy /etc/privoxy/config
或以指定用户如www运行privoxy:
privoxy --user www /etc/privoxy/config

设置privoxy开机自启

1
sudo vim /lib/systemd/system/privoxy.service

填写如下内容:

1
2
3
4
5
6
7
8
9
[Unit]
Description=Privoxy Web Proxy With Advanced Filtering Capabilities
Wants=network-online.target
After=network-online.target

[Service]
Type=forking
PIDFile=/run/privoxy.pid
ExecStart=/usr/sbin/privoxy --pidfile /run/privoxy.pid /etc/privoxy/config

配置生效:

1
systemctl enable /lib/systemd/system/privoxy.service

配置/etc/profile

执行vim /etc/profile,添加如下代码:

1
2
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

修改后使配置生效:

1
source /etc/profile

测试生效:

1
curl www.google.com

返回一大堆 HTML 则说明 shadowsocks 正常工作了。
备注:如果不需要用代理了,把 /etc/profile 里的配置注释即可。