阿里云centos7.4 香港服务器的ss搭建(影梭)
2018年08月03日 13:47:12 开挂的人生 阅读数:9084
转载:https://www.cnblogs.com/cheyunhua/p/8683956.html
部署 Shadowsocks之前,对它做了一个简单的了解,下面先介绍下。
一道隐形的墙
众所周知,天朝局域网通过 GFW (中国防火墙长城:英文名称Great Firewall of China,简写为Great Firewall,缩写GFW)隔离了我们与外界的交流,当然,这个隔离并非完全隔离,而是选择性的,天朝不希望你上的网站就直接阻断。每一个网络请求都是有数据特征的,不同的协议具备不同的特征,比如 HTTP/HTTPS 这类请求,会很明确地告诉 GFW 它们要请求哪个域名;再比如 TCP 请求,它只会告诉 GFW 它们要请求哪个 IP。
GFW 封锁包含多种方式,最容易操作也是最基础的方式便是域名黑白名单,在黑名单内的域名不让通过,IP 黑白名单也是这个道理。如果你有一台国外服务器不在 GFW 的黑名单内,天朝局域网的机器就可以跟这一台机器通讯。那么一个FQ的方案就出来了:境内设备与境外机器通讯,境内想看什么网页,就告诉境外的机器,让境外机器代理抓取,然后送回来,我们要做的就是保证境内设备与境外设备通讯时不被 GFW 怀疑和窃听。
ssh tunnel 是比较具有代表性的防窃听通讯隧道,通过 ssh 与境外服务器建立一条加密通道,此时的通讯 GFW 会将其视作普通的连接。由于大家都这么玩,GFW 着急了,于是它通过各种流量特征分析,渐渐的能够识别哪些连接是 ssh 隧道,并尝试性的对隧道做干扰,结果还是玩不过 GFW,众多隧道纷纷不通。
Shadowsocks简单介绍
shadowsocks是一种基于Socks5代理方式的网络数据加密传输包,并采用Apache许可证、GPL、MIT许可证等多种自由软件许可协议开放源代码。shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。目前包使用Python、C、C++、C#、Go语言等编程语言开发。
Shadowsocks简单介绍运行原理:
Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。具体而言,Shadowsocks 将原来 ssh 创建的 Socks5 协议拆开成 Server 端和 Client 端,两个端分别安装在境外服务器和境内设备上。
Client 和 Server 之间可以通过多种方式加密,并要求提供密码确保链路的安全性。
Shadowsocks部署记录:
服务器信息:阿里云上购买的海外机器(专用网络):172.12.166.194(内网)、147.174.190.138(外网,购买机器时选择的固定带宽的公网),Centos7.4。
安装依赖包
[root@shadowsocks-server src]# yum install wget curl curl-devel zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel git autoconf libtool gcc swig python-devel
- 1
下载setuptools
[root@shadowsocks-server ~]# cd /usr/local/src/
[root@shadowsocks-server src]# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
[root@shadowsocks-server src]# tar -zvxf setuptools-19.6.tar.gz
[root@shadowsocks-server src]# python2.7 setup.py build
---------------------------------------------------------------
温馨提示:
如果失败,提示说需要zlib-devel依赖,RuntimeError: Compression requires the (missing) zlib module
[root@shadowsocks-server src]# yum install -y zlib-devel
---------------------------------------------------------------
[root@shadowsocks-server src]# python2.7 setup.py build
[root@shadowsocks-server src]# python2.7 setup.py install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
安装pip
[root@shadowsocks-server ~]# yum -y install epel-release
[root@shadowsocks-server ~]# yum -y install pip python-pip
对安装好的pip进行升级
pip install –upgrade pip
- 1
- 2
- 3
- 4
- 5
安装shadowsocks
[root@shadowsocks-server ~]# pip install shadowsocks
- 1
安装加密依赖包
[root@shadowsocks-server ~]# pip install M2Crypto
- 1
创建服务端配置文件/etc/shadowsocks.json
[root@shadowsocks-server ~]# cat /etc/shadowsocks.json
{
"server": "172.21.166.194", //专用网络下,这里只能写私网ip,不能写外网ip,否则启动失败!或者写0.0.0.0
"server_port": 8388, //ss服务器的端口,默认是8388端口。
"password": "AS3e123jK", //ss服务器密码
"timeout": 30,
"method": "aes-256-cfb" //ss服务器配置的加密方式
}
温馨提示:
1)如果出现报错: Cannot assign requested address, 请将 server 换成 0.0.0.0, 然后重新启动上面的命令。
2)也可以进行多用户设置,已经测试可用!
{
"server": "172.21.166.194",
"port_password": {
"8388": "AS3e123jK",
"8389": "wang2",
"8390": "zhang3"
},
"timeout":30,
"method":"aes-256-cfb",
"fast_open": false
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
服务端ssserver启动
[root@shadowsocks-server ~]# vim /etc/systemd/system/ssserver.service
[Unit]
Description=ssserver
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target
[root@shadowsocks-server ~]# systemctl enable ssserver
[root@shadowsocks-server ~]# systemctl start ssserver
[root@shadowsocks-server ~]# systemctl restart ssserver
为了检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:
[root@shadowsocks-server ~]# systemctl status ssserver -l
● ssserver.service - ssserver
Loaded: loaded (/etc/systemd/system/ssserver.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-03-02 23:53:31 CST; 1min 55s ago
Main PID: 10623 (ssserver)
CGroup: /system.slice/ssserver.service
└─10623 /usr/bin/python2 /usr/bin/ssserver -c /etc/shadowsocks.json
Mar 02 23:53:31 shadowsocks-server systemd[1]: Started ssserver.
Mar 02 23:53:31 shadowsocks-server systemd[1]: Starting ssserver...
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: INFO: loading config from /etc/shadowsocks.json
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 WARNING warning: your timeout 60 seems too short
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 INFO loading libcrypto from libcrypto.so.10
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 INFO starting server at 0.0.0.0:8388
[root@shadowsocks-server ~]# lsof -i:8388
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssserver 1958 root 3u IPv4 56980 0t0 TCP *:8388 (LISTEN)
ssserver 1958 root 4u IPv4 56981 0t0 UDP *:8388
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
安装锐速
锐速是一款强大的服务器加速软件。由于这个软件只针对特定的linux内核才能使用,所以需要修改服务器系统的内核。
Centos6和CentOS7 一键更换内核,完成后会重启
[root@shadowsocks-server src]# uname -r
3.10.0-514.26.2.el7.x86_64
[root@shadowsocks-server src]# wget --no-check-certificate https://blog.asuhu.com/sh/ruisu.sh
[root@shadowsocks-server src]# bash ruisu.sh
[root@shadowsocks-server src]# wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
或者执行下面命令,然后重启服务器后,内核即将改变
# rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force
- 1
- 2
重启服务器后,再次查看,内核就更换了
[root@shadowsocks-server src]# uname -r
3.10.0-229.1.2.el7.x86_64
- 1
- 2
- 3
接着安装锐速
[root@shadowsocks-server src]# wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
- 1
- 2
操作系统:CentOS
发行版本:7.3
内核版本:3.10.0-229.1.2.el7.x86_64
位数:x64
锐速版本:3.10.61.0
=================================================
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 96179 100 96179 0 0 63855 0 0:00:01 0:00:01 --:--:-- 63863
我们用的锐速安装文件是 3.10.60.0 ,但这个内核没有匹配的,请选择一个接近的锐速版本号尝试,不确保一定可用,(如果有版本号重复的选项随便选一个就可以)
1:3.10.61.12
2:3.11.20.4
请选择锐速版本号(输入数字序号):
2
........
[Running Configuration]
accif eth0
acc 1
advacc 1
advinacc 1
wankbps 10000000
waninkbps 10000000
csvmode 0
subnetAcc 0
maxmode 1
pcapEnable 0
最后启动锐速:
[root@shadowsocks-server src]# service serverSpeeder start
ServerSpeeder is running!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
至此,Shadowsocks服务器端的配置完成。同时注意,在如上的Shadowsocks部署机器上要关闭iptables防火墙(如果开启iptables防火墙,则需要放开8388端口访问)。同时,在阿里云控制台上,要在这台机器的安全规则里设置好8388端口(如果设置了多用户登录,就要将所涉及到的几个端口都在防火墙里放行,如上面设置的8388、8389、8390)。
安装客户端
ss 的客户端地址:
window:https://github.com/shadowsocks/shadowsocks-windows/releases
mac:https://github.com/shadowsocks/ShadowsocksX-NG/releases
andorid:https://github.com/shadowsocks/shadowsocks-android/releases