添加用户组和用户
切换到root用户
- 添加用户组:
1
| groupadd shadowsocks -g 1000
|
- 添加用户并修改密码:
1
2
| useradd -m -g 1000 -G 100 -s /bin/bash ss
passwd ss
|
安装加速组件
OpenVZ架构VPS——安装LKL
LKL全称是Linux Kernel Library。
LKL (Linux Kernel Library) is aiming to allow reusing the Linux kernel code as extensively as possible with minimal effort and reduced maintenance overhead.
系统需求
- 只适用于OpenVZ架构 64bit 系统;
- 默认只转发9000-9999端口(即SS端口应设置在这个范围内);
- 推荐系统CentOS 7, Debian 8和Ubuntu 16;
安装
切换到root用户
首先安装git
1
2
3
| apt-get update
apt-get upgrade
apt-get install git
|
一键安装命令:
1
| wget https://github.com/91yun/uml/raw/master/lkl/install.sh && bash install.sh
|
判断安装成功
执行ping 10.0.0.2
,如果能ping通则成功,否则失败。
修改转发端口
- 修改
/root/lkl/run.sh
,查找9000-9999
,改成想要的端口段; - 修改
/root/lkl/haproxy.cfg
,查找9000-9999
,改成想要的端口段; - 重启vps。
KVM架构VPS——更新内核并开启BBR
系统需求
- Debian 8.x 或者 Debian 9.x 系统, Ubuntu 14.04 或 Ubuntu 16.04;
- 如果不是新机器,建议先备份,升级内核有风险;
升级内核
从Ubuntu网站上下载新内核安装包,目前4.9.x内核最新的版本为4.9.65。
1
2
3
4
5
| mkdir kernel-tmp && cd kernel-tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.65/linux-headers-4.9.65-040965_4.9.65-040965.201711240331_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.65/linux-headers-4.9.65-040965-generic_4.9.65-040965.201711240331_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.65/linux-image-4.9.65-040965-generic_4.9.65-040965.201711240331_amd64.deb
sudo dpkg -i *.deb
|
安装完成后重启,重启后检查内核版本:
配置生效
使用root用户
修改 /etc/sysctl.conf
文件
1
2
3
4
| cat >> /etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
|
使内核配置生效
1
2
3
| [email protected] ~ # sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
|
检查 BBR 是否已正确开启,如果出现 tcp_bbr
字样则说明没有问题。
安装并配置ShadowSocks
安装
切换到ss用户
- 安装miniconda(可选)
1
| wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh
|
- 安装ShadowSocks
1
| pip install shadowsocks
|
配置
1
2
3
4
| mkdir shadowsocks && cd shadowsocks/
touch ssconfig.json
touch ss.pid
vi ssconfig.json
|
配置文件ssconfig.json
内容:
1
2
3
4
5
6
7
8
9
10
| {
"server":"0.0.0.0",
"port_password":{
"port1":"password1",
"port2":"password2",
"port3":"password3"
},
"timeout":600,
"method":"aes-256-cfb"
}
|
启动和停止ShadowSocks
普通方式
设置alias:
1
2
| alias startss="cd ~/shadowsocks;ssserver -c ssconfig.json --pid-file ss.pid --log-file ss.log -d start"
alias stopss="cd ~/shadowsocks;ssserver -c ssconfig.json --pid-file ss.pid --log-file ss.log -d stop"
|
-c
指定配置文件,—pid-file
指定进程pid储存文件,--log-file
指定日志文件,-d
以服务启动。
切换到ss用户
使用Supervisor
supervisor配置如下,运行时-q选项使程序只记录错误日志
1
2
3
4
5
6
7
8
9
10
| [program:shadowsocks]
directory = /home/ss/shadowsocks
command = /home/ss/miniconda3/bin/ssserver -c ssconfig.json -q
autostart = true
autorestart = true
startsecs = 3
startretries = 3
user = ss
redirect_stderr = true
stdout_logfile = /home/ss/shadowsocks/error.log
|
更新supervisor并启动:
1
2
3
| sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status
|