本文为历史产物,现已不推荐使用。全文在Ubuntu 18.04(64bit)环境下使用root用户搭建,其他版本的Linux请自行替换部分命令。
安装Git
使用git --version
检查git版本号,如未安装,使用apt-get install git
安装。
安装shadowsocks-python并开启bbr加速
这里使用flyzy小站提供的一键安装脚本进行。首先安装shadowsocks-python,这里默认初始路径为~(/root),其他路径请自行修改
git clone https://github.com/AstralHope/sspython-bbr.git
~/sspython-bbr/ss-fly.sh -i password 1024
如果报错,按提示操作即可。这里password为你需要设置的密码,端口缺省为1024,因为我们后面还要搭建shadowsocks-manager,所以这里密码和端口不关键。
注:如果需要改密码或者改端口,只需要重新再执行一次搭建ss脚本代码就可以了,或者修改/etc/shadowsocks.json
这个配置文件。
相关ss操作
启动:/etc/init.d/ss-fly start
停止:/etc/init.d/ss-fly stop
重启:/etc/init.d/ss-fly restart
状态:/etc/init.d/ss-fly status
查看ss链接:~/sspython-bbr/ss-fly.sh -sslink
修改配置文件:vim /etc/shadowsocks.json
卸载:~/sspython-bbr/ss-fly.sh -uninstall
开启bbr加速
~/sspython-bbr/ss-fly.sh -bbr
该脚本会自动升级内核,然后输入y 或者手动重启。输入下列命令,返回值有bbr则开启成功。
sysctl net.ipv4.tcp_available_congestion_control
安装shadowsocks-manager
为安全起见,这里使用pm2控制ssmgr的启动,使用lnmp自动配置nginx和Let'sEncrypt 泛域名SSL证书。以下安装顺序不分先后:
安装node js、npm、pm2
apt-get install -y libsqlite3-dev libssl1.0-dev nodejs npm redis-server
npm i -g shadowsocks-manager
npm install pm2 -g
````
安装shadowsocks-manager时如果一直报错(WARN没有关系,要有ERR才是报错),则尝试执行:npm i -g shadowsocks-manager --unsafe-perm
###配置shadowsocks-manager
```shell
mkdir ~/.ssmgr
cd .ssmgr/
touch ss.yml
touch webgui.yml
编辑s端配置文件vim ss.yml
,写入如下内容
type: s
shadowsocks:
address: 127.0.0.1:6001
# 这里的地址和端口需要和开启shadowsocks的 --manager-address 参数保持一致,连接上述 udp 端口
manager:
address: 0.0.0.0:4001
# 这个 address 参数会让程序监听一个 tcp 端口,用于接收 webgui 发送过来的控制命令
password: '123456'
db: 'ss.sqlite'
编辑web端配置文件vim webgui.yml
,写入如下内容
type: m
manager:
address: 1.1.1.1:4001
# 这里换成manager所在的服务器的ip或域名
password: '123456'
# 这部分的端口和密码需要和ss.yml中的 manager 参数里的保持一致,以连接 type s 部分监听的 tcp 端口
plugins:
flowSaver:
use: true
user:
use: true
account:
use: true
macAccount:
use: true
group:
use: true
email:
use: true
type: 'smtp'
username: 'username'
password: 'password'
host: 'smtp.your-email.com'
# 这部分的邮箱和密码是用于发送注册验证邮件,重置密码邮件
webgui:
use: true
host: '0.0.0.0'
port: '8080'
site: 'http://account.kxsw.39hope.com'
icon: 'icon.png' # 自定义首页图标,默认路径在 ~/.ssmgr 可省略
db: 'webgui.sqlite'
启动
ssserver -d stop
ssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001 -d start
cd ~/.ssmgr/
pm2 -n weigui -f start ssmgr -x -- -c ~/.ssmgr/webgui.yml
pm2 -n ssmgr -f start ssmgr -x -- -c ~/.ssmgr/ss.yml
安装lnmp
参考lnmp官网进行安装并创建虚拟主机,申请好SSL证书。
配置nginx
修改配置文件如下即可开启ssl安全访问,注意替换地址:
server {
listen 80;
server_name account.kxsw.39hope.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name account.kxsw.39hope.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/account.kxsw.39hope.com/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/account.kxsw.39hope.com/account.kxsw.39hope.com.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Frame-Options DENY;
proxy_pass http://127.0.0.1:8080;
}
至此,全部完成。
其他服务器
在其他服务器上安装s端,这里使用精简版端的shadowsocks-manager-tiny
安装
apt-get install -y git libssl1.0-dev nodejs npm
npm install pm2 -g
git clone https://github.com/gyteng/shadowsocks-manager-tiny.git
启动
cd ~/shadowsocks-manager-tiny/
ssserver -d stop
ssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001 -d start
pm2 -n ssmgr -f start index.js -x -- 127.0.0.1:6001 0.0.0.0:4001 123456
然后在网页上添加服务器,输入该服ip和上面设置的管理端口4001即可