由于Vultr日本节点大量被墙,所以被迫转投DigitalOcean,最便宜的是5刀一个月,但首充5刀后会送50刀,再加上Github教育礼包里包含的50刀优惠(需要验证教育邮箱、上传学生证照片),所以算下来几乎可以白嫖两年,岂不美滋滋。美中不足是DigitalOcean的系统快照占用的存储空间是要另付费的,所以每次换IP开新机就需要重新配置代理服务器,这里简单记录一下流程和命令,方便以后复制。
以Ubuntu 18.04搭建SS服务为例,如果今后SS情势不好可能会换用V2Ray
安装及配置
项目地址:https://github.com/shadowsocks/shadowsocks/tree/master
1 2 3 4 5 6
| # 从源更新软件列表 apt-get update # 安装pip apt-get install python-pip # pip安装SS pip install git+https://github.com/shadowsocks/shadowsocks.git@master
|
安装完成后可以建两个脚本start.sh、stop.sh方便控制服务开关(或编写json配置文件,反而麻烦)
start.sh:
1
| sudo ssserver -p 端口 -k 密码 -m aes-256-cfb --user nobody -d start
|
stop.sh:
最后还要给这两个脚本赋予执行权限
1
| chmod +x start.sh stop.sh # 或直接chmod 777
|
开启服务之前可以做以下优化,提高带宽利用率
优化
首先按照官方Wiki上的教程进行优化,地址:https://github.com/shadowsocks/shadowsocks/wiki/Optimizing-Shadowsocks
创建/etc/sysctl.d/local.conf并写入以下配置:
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
| # max open files fs.file-max = 51200 # max read buffer net.core.rmem_max = 67108864 # max write buffer net.core.wmem_max = 67108864 # default read buffer net.core.rmem_default = 65536 # default write buffer net.core.wmem_default = 65536 # max processor input queue net.core.netdev_max_backlog = 4096 # max backlog net.core.somaxconn = 4096
# resist SYN flood attacks net.ipv4.tcp_syncookies = 1 # reuse timewait sockets when safe net.ipv4.tcp_tw_reuse = 1 # turn off fast timewait sockets recycling net.ipv4.tcp_tw_recycle = 0 # short FIN timeout net.ipv4.tcp_fin_timeout = 30 # short keepalive time net.ipv4.tcp_keepalive_time = 1200 # outbound port range net.ipv4.ip_local_port_range = 10000 65000 # max SYN backlog net.ipv4.tcp_max_syn_backlog = 4096 # max timewait sockets held by system simultaneously net.ipv4.tcp_max_tw_buckets = 5000 # turn on TCP Fast Open on both client and server side net.ipv4.tcp_fastopen = 3 # TCP receive buffer net.ipv4.tcp_rmem = 4096 87380 67108864 # TCP write buffer net.ipv4.tcp_wmem = 4096 65536 67108864 # turn on path MTU discovery net.ipv4.tcp_mtu_probing = 1
# for high-latency network net.ipv4.tcp_congestion_control = hybla
# for low-latency network, use cubic instead # net.ipv4.tcp_congestion_control = cubic
|
最后的net.ipv4.tcp_congestion_control选择hybla还是cubic取决于服务器延迟的高低
然后加载我们写好的配置文件:
接下来是启用TCP BBR拥塞控制算法,可以用来取代ServerSpeeder
已经有人做好了傻瓜式脚本,我们只需要根据提示操作:
1
| wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
|
使用lsmod | grep bbr查看系统模块,若返回tcp_bbr说明BBR已启动
这时我们就可以运行start.sh,开启代理服务,进行科学上网了