一年更新一次,摸了

环境

干净且不带 BBR 的 Centos7 系统

shadowsocks-libev 包含 ss-manager

Vultr 需要安 ss + WebGUI + ssmgr

Bandwagonhost 需要 ss + ssmgr-tiny

(不搞混就行了

PS. Vultr 用锐速是真的快,魔改 BBR 什么的完全比不上好吗。。。

两台机器都要配置

依赖包

1
2
3
yum update -y
yum install epel-release -y
yum install wget net-tools zlib-devel openssl-devel git vim wget gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y

shadowsocks-libev + simple-obfs

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
34
export LIBSODIUM_VER=1.0.16
wget https://download.libsodium.org/libsodium/releases/libsodium-$LIBSODIUM_VER.tar.gz
tar xvf libsodium-$LIBSODIUM_VER.tar.gz
pushd libsodium-$LIBSODIUM_VER
./configure --prefix=/usr && make
make install
popd
ldconfig
 
export MBEDTLS_VER=2.6.0
wget https://tls.mbed.org/download/mbedtls-$MBEDTLS_VER-gpl.tgz
tar xvf mbedtls-$MBEDTLS_VER-gpl.tgz
pushd mbedtls-$MBEDTLS_VER
make SHARED=1 CFLAGS=-fPIC
make DESTDIR=/usr install
popd
ldconfig

rm -rfv mbed* libso*
 
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init --recursive
./autogen.sh && ./configure --prefix=/usr && make
make install
cd ~
 
git clone https://github.com/shadowsocks/simple-obfs.git
cd simple-obfs
git submodule update --init --recursive
./autogen.sh
./configure && make
make install
cd ~

firewalld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
systemctl stop firewalld.service  # 停止firewall
systemctl disable firewalld.service # 禁止firewall开机启动
yum install -y iptables-services # 安装iptables
 
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
 
service iptables save

NodeJS

1
2
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs

Vultr

shadowsocks-manager

1
2
3
sudo npm i -g shadowsocks-manager --unsafe-perm
ssmgr # 会自动创建 ~/.ssmgr目录
cd ~/.ssmgr

配置节点

6001 与 ss-manager 监听端口对应

而 6002 则对应 WebGUI 端口,不要弄混

vim ss.yaml
1
2
3
4
5
6
7
8
type: s
empty: false
shadowsocks:
address: 127.0.0.1:6001
manager:
address: 0.0.0.0:6002
password: '123456'
db: 'ss.sqlite'

配置 WebGUI

主机IP:WebGUI端口(6002)以及校验密码(123456)

可以先看邮件服务的区别:https://www.zhihu.com/question/24605584

SMTP 设置请参考:https://www.imhunk.com/how-to-add-gmail-to-foxmail/

PS. 不推荐国内邮件服务厂商

支付宝要设置当面付,挺麻烦的(查水表

vim webgui.yaml
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
type: m
empty: false
manager:
address: your_vps_ip:6002
password: '123456'
plugins:
flowSaver:
use: true
user:
use: true
account:
use: true
pay:
hour:
price: 0.03
flow: 500000000
day:
price: 0.5
flow: 7000000000
week:
price: 3
flow: 50000000000
month:
price: 10
flow: 200000000000
season:
price: 30
flow: 200000000000
year:
price: 120
flow: 200000000000
email:
use: true
username: 'username'
password: 'password'
host: 'smtp.gmail.com'
webgui:
use: true
host: '0.0.0.0'
port: '80'
site: 'http://your_site'
gcmSenderId: '456102641793'
gcmAPIKey: 'AAAAGzzdqrE:XXXXXXXXXXXXXX'
alipay:
use: false
appid: <支付宝 APPID>
notifyUrl: ''
merchantPrivateKey: '<rsa_private_key.pem 中的私钥>'
alipayPublicKey: '<支付宝公钥>'
gatewayUrl: 'https://openapi.alipay.com/gateway.do'
db: 'webgui.sqlite'

启动

1
2
3
4
5
pm2 kill -a
cd /root/.ssmgr
pm2 --watch --name "webgui" --watch -f start ssmgr -x -- -c webgui.yaml
pm2 --watch --name "ssmgr" -f start ssmgr -x -- -c ss.yaml
pm2 --watch --name "ss" -f start "ss-manager -u -m aes-256-gcm --fast-open true --plugin obfs-server --plugin-opts obfs=http --manager-address 127.0.0.1:6001"

如无意外,直接访问 IP 或设置好的域名就能看到后台页面了
register


第一个注册的账号会成为管理员,点注册按钮后页面会卡住(BUG?),但实际上已注册成功,再次打开页面登陆即可

搬瓦工

因为不需要配置 WebGUI,所以用 ss-manager-tiny

1
2
3
4
5
screen -dmS ss ss-manager -m aes-256-gcm -u --fast-open true --plugin obfs-server --plugin-opts obfs=http --manager-address 127.0.0.1:6001 
 
git clone https://github.com/gyteng/shadowsocks-manager-tiny.git
cd shadowsocks-manager-tiny
screen -dmS ssmgr node index.js 127.0.0.1:6001 0.0.0.0:4001 123456

其中 4001 端口就是用于连接 WebGUI,密码 123456 对应上面配置
server
至此,两台可用的服务器就配置完成了,进阶用法请参考官方文档

限速

1
2
iptables -A OUTPUT -p tcp -m tcp --sport your_ss_port -m limit --limit 1000/sec --limit-burst 30 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport your_ss_port -j DROP

单端口限速至 30 兆,根据具体情况修改

如果是小范围内使用,自己添加账号即可(会自动分配节点,再调整节点流量配额