DigitalOcean搭建Shadowsocks并优化

/ 0评 / 0

一、购买DigitalOcean服务器及优惠

1. 学生可以使用edu邮箱获取github edu package中50刀的digitalocean优惠码。若不是学生,请忽略。

2. 通过我邀请链接:https://m.do.co/c/e66536bd745a   可以额外获得10刀。

注意:注册时会让你绑定支付方式,若没有信用卡,可以注册Paypal并绑定借记卡。

3. 登录DigitalOcean,点击Droplets,系统选择Ubuntu 64。机房推荐San Francisco,点击create,稍等几十秒。

 

二、安装并配置Shadowsocks

1. 用Putty或Xshell登录DigitalOcean服务器,服务器的初始密码会发送到你的注册邮箱中,第一次登录时会强制修改密码。建议使用SSH Key,更加安全高效。

2. 更新软件源:

sudo apt-get update
安装python-pip:

apt-get install python-pip
设置Locale,否则下一步会报错:

export LC_ALL=C
安装shadowsocks:

sudo apt install libsodium-dev
sudo pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip -U
创建shadowsocks配置文件:

vim /etc/shadowsocks.json
输入以下内容配置多用户,之后保存并退出:(需要几个终端上网就开设几个端口服务,加密协议推荐用chacha20-ietf-poly1305,不容易被GFW墙掉)

{
"server": "0.0.0.0",
"local_address": "127.0.0.1",
"local_port": 1080,
"fast_open": false,
"port_password":{
"50001":"随意设定8381端口使用密码",
"50002":"随意设定8382端口使用密码",
"50003":"随意设定8383端口使用密码",
...
},
"timeout":300,
"method":"chacha20-ietf-poly1305"
}
启动shadowsocks:

ssserver -c /etc/shadowsocks.json -d start
打开客户端软件superwingy、Shadowsocks,输入IP、端口和密码,PAC按需选择。

 

三、服务器网络优化

为使服务器带宽得到最大限度利用,我们需要优化服务器的网络配置。

1. 安装并使用BBR网络拥塞控制算法

(1)查看内核版本:

uname -a
如果内核版本小于4.9则需要更新内核,4.9及以上跳过第(2)步。

(2)更新内核

此方法仅适用于Ubuntu和Debian 。首先查看系统位数,执行以下命令

getconf LONG_BIT
下载4.11的内核

#32位
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11/linux-image-4.11.0-041100-generic_4.11.0-041100.201705041534_i386.deb

#64位
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11/linux-image-4.11.0-041100-generic_4.11.0-041100.201705041534_amd64.deb
安装内核:

dpkg -i *.deb
/usr/sbin/update-grub
安装完成后输入重启系统:

reboot
(3)启用BBR算法

写入配置文件:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
使配置文件生效:

sysctl -p
检查BBR算法是否成功开启:
sysctl net.ipv4.tcp_available_congestion_control
如果开启成功会返回以下内容:

net.ipv4.tcp_available_congestion_control = bbr cubic reno
2. 优化内核参数

打开系统配置文件

vim /etc/sysctl.conf
向其中添加以下内容:

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.netdev_max_backlog = 4096
net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
保存并退出(:wq)。

使配置文件生效:

sysctl -p
3. 重启Shadowsocks服务

ssserver -c /etc/shadowsocks.json -d restart
优化完成,愉快享受高速的翻墙体验吧!

4. 使用SSH Key登录
将本地id_rsa.pub公钥拷贝到远程服务器.ssh目录下:

scp ~/.ssh/id_rsa.pub root@server_ip: ~/.ssh/
注意修改本地id_rsa.pub文件路径和服务器ip地址

登录服务器后,进入.ssh目录,将公钥追加写入到authorized_keys文件:

cat id_rsa.pub >> authorized_keys
接下来使用ssh命令登录服务器时就不用输入密码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注