#1.介绍说明
Shadowsocks 是科学上网的集大成者,其中 Shadowsocks-libev 是 Shadowsocks 的 C 语言移植版,推荐使用,优点:- 支持udp转发
- 可以设置透明代理
- 节省资源,占用资源小
Shadowsocks-libev 的使用遵循 C/S 架构,即由服务端和客户端构成。服务端运行在国外的服务器上,推荐使用Vultr服务器[邀请链接:https://www.vultr.com/?ref=6970034 (注册得$10)],或者DigtalOcean Gets $100 in credit over 60 days 国内使用的话选择东京或者新加坡的节点,速度快稳定,最低 5$/m. 不要购买便宜的VPS提供商的服务器,其网络太慢。客户端运行在本地连接服务端,为本地局域网内的其它主机提供代理。
#2.服务器端的安装配置
操作系统推荐Debian 9+ 或者 CentOS 7+,内核版本新,支持bbr等新特性,购买服务器后,远程登陆到远程服务器,打开终端执行CentOS
参考另一篇文章从源代码编译安装Shadowsocks-libev
Debian
ssh登录服务器后以root 运行$ su - root
① 添加 stretch-backports-sloppy 源
$ vim /etc/apt/sources.list
deb http://ftp.cn.debian.org/debian stretch-backports-sloppy main
$ apt update
② 安装aptitude
$ apt install aptitude
③ 查看所有源里软件包的版本
~$ aptitude versions shadowsocks-libev
p 2.6.3+ds-3+deb9u1 oldstable 500
p 3.2.5+ds-1~bpo9+1 stretch-backports 100
i 3.3.3+ds-3~bpo9+1 stretch-backports-sloppy 100
④ 安装指定源里的版本
$ aptitude install shadowsocks-libev/stretch-backports-sloppy
2.4编写配置文件
$ sudo vim /etc/shadowsocks-libev/config.json
修改如下内容,更改自己的IP地址,选一个端口号,设置一个密码
{
"server":"server_ip",
"server_port":8388,
"local_port":1080,
"password":"xxxxxxxx",
"timeout":600,
"mode": "tcp_and_udp",
"fast_open": true,
"method":"aes-128-gcm"
}
2.5启动服务
~$ sudo systemctl start shadowsocks-libev.service~$ sudo systemctl enable shadowsocks-libev.service
2.6 开启防火墙端口
服务端使用TCP和UDP的8388端口,需要放行。有安全规则的需要Web管理端找到Firewall放行这两个端口。~$ sudo firewall-cmd --zone=public --permanent --add-port=8388/tcp
~$ sudo firewall-cmd --zone=public --permanent --add-port=8388/udp
~$ sudo firewall-cmd --reload
2.7 开启bbr加速
bbr 是 Google 开源的TCP BBR 拥塞控制算法,并提交到了Linux 内核,从Linux kernel 4.9 开始,Linux 内核已经用上了该算法.这里使用秋水逸冰大佬的一键脚本安装。bbr教程
[xdl@vultr ~]$ wget https://github.com/teddysun/across/raw/master/bbr.sh
[xdl@vultr ~]$ sudo chmod +x bbr.sh
[xdl@vultr ~]$ sudo ./bbr.sh
#3.本地客户端的配置
本地端我选择一个树莓派3B(RaspberryPi 3B)作为本地客户端,同样的方法在本地树莓派上安装shadowsocks-libev~$ sudo apt install -y shadowsocks-libev
3.1配置
新建一个本地的配置文件client.jsoon
~$ sudo vim /etc/shadowsocks-libev/client.json根据自己的服务器配置相应的选项,注意 local_address 设置为 "0.0.0.0" 表示局域网内的主机都可以访问。
{
"server":"server_ip",
"server_port":8388,
"local_address": "0.0.0.0",
"local_port":1080,
"password":"xxxxxxxx",
"timeout":600,
"mode": "tcp_and_udp",
"fast_open": true,
"method":"aes-128-gcm"
}
3.2启动本地服务
~$ sudo systemctl start shadowsocks-libev-local@client.service~$ sudo systemctl enable shadowsocks-libev-local@client.service
#4.Socks 代理转 http 代理【可选】
Socks代理不是很常见,一般使用http代理较好配置,这里可以通过在树莓派上安装 privoxy 实现Socks 代理转 http 代理的目的。$ sudo apt install privoxy
4.1配置
更改 privoxy 的配置文件,找到下面的两行,修改配置,其它的默认即可。$ sudo vim /etc/privoxy/config
listen-address 0.0.0.0:8118
forward-socks5 / 127.0.0.1:1080 .
4.2启用 Privoxy 服务
$ sudo systemctl start privoxy.service$ sudo systemctl enable privoxy.service
Privoxy 是一个轻量级的http代理服务软件,监听端口为8118,上面的配置实现把本地1080端口的Socks代理服务转为8118端口的http代理。
#5.浏览器配置
5.1谷歌浏览器谷歌浏览器的用户可以安装一个插件Proxy SwitchyOmega ,新建一个情景模式privoxy
代理服务器处填写树莓派的IP地址。或者不用第四部,直接新建一个Socks的代理,代理协议那里选择socks5,代理端口填写1080.
这样在需要上网的时候选择单击 Proxy SwitchyOmega 选择对应的代理便可以科学上网了。
5.2火狐浏览器
火狐浏览器不需要安装任何的插件便可以配置。单击右上角的菜单-->选项-->高级-->网络-->设置,填写为下面的配置
ip地址填写树莓派的IP地址,确定后便可以实现科学上网。
5.3全部走代理
打开Windows10的设置-->网络和Internet-->代理,填写树莓派的IP地址和对应的8118端口,保存,这样流经电脑的所有流量都是通过代理访问的。
Q&A
1.为什么要使用树莓派?
直接把客户端安装在树莓派上24h运行可以方便局域网内的其他设备使用,并且不需要在其它设备上安装其它的软件 。
2.Android 和IOS可以使用吗?
可以,只要在同一个局域网内,在手机的网络设置代理那里填写树莓派的IP地址和对应的端口号,需要注意的是只支持http代理,需要第四步的设置 。
3.为什么要科学上网?
中国大陆有严格的网络审查制度,因此设置了一道长城防火墙(GWF),把国民与国际互联网隔绝。科学上网能够 翻越这道防火墙,看到世界的精彩!一句话:“为了知识和真相!”