在VPS上部署shadowsocks服务

这两天帮同事搭了一台用作代理的VPS,顺道把这些东西整理了一下。
本文不是面向零基础读者的,在阅读下面的东西之前,你首先应该有一台可以访问外网(国外网络)的VPS,其次你也应该具有一些基本的Linux操作的知识。

之前我写过一篇博文是讲在Linux下使用Shadowsocks的,有兴趣的可以看这里:Linux下使用Shadowsocks服务

安装Shadowsocks-Python

安装方法:

1
2
3
$ wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
$ chmod +x shadowsocks.sh
$ ./shadowsocks.sh 2>&1 | tee shadowsocks.log

卸载方法:
使用root用户登录,运行以下命令:

1
$ ./shadowsocks.sh uninstall

单用户配置文件 Sample:
配置文件路径:/etc/shadowsocks.json

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port":8989,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"yourpassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

多用户多端口配置文件 Sample:
配置文件路径:/etc/shadowsocks.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"server":"0.0.0.0",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
"8989":"password0",
"9001":"password1",
"9002":"password2",
"9003":"password3",
"9004":"password4"
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

使用命令:

1
2
3
4
5
6
7
8
# 启动
$ /etc/init.d/shadowsocks start
# 停止
$ /etc/init.d/shadowsocks stop
# 重启
$ /etc/init.d/shadowsocks restart
# 状态
$ /etc/init.d/shadowsocks status

安装libsodium(CHACHA20加密)

chacha20 依赖 libsodium,以下是编译安装 libsodium 的方法:

首先,编译安装依赖gcc和g++:

1
$ sudo apt-get install gcc g++

下载libsodium源码并编译安装:

1
2
3
4
5
6
7
8
$ wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
$ tar zxf LATEST.tar.gz
$ cd libsodium*
$ ./configure
$ make && make install

$ echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
$ ldconfig

安装完毕之后需要自己手动编辑Shadowsocks的配置文件shadowsocks.json中的method条目为chacha20来启用,上面一键安装SS脚本的配置文件路径为/etc/shadowsocks.json

修改结果如下(只修改method):

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port":8989,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"yourpassword",
"timeout":300,
"method":"chacha20",
"fast_open": false
}

安装net-speeder

安装步骤:
1:下载源码并解压

1
2
$ wget https://github.com/snooda/net-speeder/archive/master.zip
$ unzip master.zip

2:准备编译环境
debian/ubuntu:

1
2
3
4
#安装libnet-dev:
$ apt-get install libnet1-dev
#安装libpcap-dev:
$ apt-get install libpcap0.8-dev

centos:

1
2
3
4
5
6
7
#下载epel:https://fedoraproject.org/wiki/EPEL/zh-cn.比如 CentOS6 64位:
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#(如果是centos5,则在epel/5/下)
#安装epel:
$ rpm -ivh epel-release-6-8.noarch.rpm
# 然后即可使用yum安装:
$ yum install libnet libpcap libnet-devel libpcap-devel

编译:

Linux Cooked interface使用编译(venetX,OpenVZ):

1
$ sh build.sh -DCOOKED

普通网卡使用编译(Xen,KVM,物理机):

1
$ sh build.sh

使用方法(需要root权限启动):

1
$ nohup net_speeder venet0 "ip" >/dev/null 2>&1 &

使用finalspeed加速

2017.07.20 19:54注:我已弃用finalspeed,推荐使用锐速或者bbr.

一键安装代码:

1
$ wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh

一键卸载代码:

1
$ wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh uninstall

finalspeed操作命令

1
2
3
4
5
6
# 启动
$ /etc/init.d/finalspeed start
# 停止命令
$ /etc/init.d/finalspeed stop
# 状态命令(查看日志)
$ /etc/init.d/finalspeed status

finalspeed安装路径

安装路径: /fs/
日志路径:/fs/server.log

finalspeed使用方法

假设服务器IP为10.10.10.10、finalspeed端口为默认150、SS服务端端口为898.
加速前提SS服务端运行正常,SS客户端也能正常登录。

1.运行FinalSpeed客户端,填写你的服务器IP

2.点击添加-增加加速端口,加速端口为SS的服务端端口8989。如果为其他端口请相应修改。本地端口任意,这里是2000 。

3.打开SS客户端添加服务器,服务器IP为127.0.0.1,服务器端口为加速端口对应的本地端口,这里是2000,然后设置你的SS密码、加密方式。

5.确定保存,选择使用刚添加的服务器,并设置浏览器代理,成功连接后,FinalSpeed状态栏会出现”连接服务器成功”提示.

添加到VPS开机启动

最后,把我们安装的这几项服务添加到VPS的开机启动了里,这样就算VPS重启也会启动我们的SS服务。

将下面这几段代码添加到/etc/rc.local中:

1
2
3
4
nohup /etc/init.d/shadowsocks start >/dev/null 2>&1 &
# 注意:net-speeder设置成开机启动要写上绝对路径(比如/etc/net_speeder)
nohup /etc/net_speeder venet0 "ip" >/dev/null 2>&1 &
nohup /etc/init.d/finalspeed start >/dev/null 2>&1 &

最后,依次输入下面几条命令,检查程序状态:

1
2
3
$ /etc/init.d/shadowsocks status
$ /etc/init.d/finalspeed status
$ ps

如下图这样运行就OK.

参考资料

文中用到的工具的地址:

  1. shadowsocket
  2. net-speeder
  3. libsodium
  4. finalSpeed

参考文章:

Shadowsocks Python版一键安装脚本
Debian下shadowsocks-libev一键安装脚本
ShadowsocksR 服务端安装教程

finalspeed一键安装包
双边加速FinalSpeed客户端下载及教程 ,Openvz福音

搬瓦工(Bandwagonhost)搭建Shadowsocks并优化速度
net-speeder 在高延迟不稳定链路上优化单线程下载速度

全文完,若有不足之处请评论指正。

微信扫描二维码,关注我的公众号。

本文标题:在VPS上部署shadowsocks服务
文章作者:查利鹏
发布时间:2016年07月27日 20时34分
本文字数:本文一共有1.5k字
原始链接:https://imzlp.com/posts/31145/
许可协议: CC BY-NC-SA 4.0
文章禁止全文转载,摘要转发请保留原文链接及作者信息,谢谢!
您的捐赠将鼓励我继续创作!