Debian/CentOS使用 Shadowsocks-libev 实现科学上网

一月 21, 2020

 

#1.介绍说明

Shadowsocks 是科学上网的集大成者,其中 Shadowsocks-libev 是 Shadowsocks 的 C 语言移植版,推荐使用,优点:
  1.  支持udp转发
  2.  可以设置透明代理
  3.  节省资源,占用资源小

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),把国民与国际互联网隔绝。科学上网能够 翻越这道防火墙,看到世界的精彩!一句话:“为了知识和真相!”

You Might Also Like

0 评论

Popular Posts

Like us on Facebook

Flickr Images