甲骨文云服务器Ubuntu系统安装Shadowsocks-libev以及网络提速配置说明

发布日期 目录 Linux, 后端知识, 建站, 操作系统

Ubuntu安装Shadowsocks-libev以及网络提速配置说明

随着墙的增高,单纯的shadowsocks简单加密也越来越容易被检测和封锁,因此需要更强力的加密与混淆手段,避免流量被检测出来
本笔记采用的是:甲骨文服务器 + HTTPS加密访问 + Shadowsocks + v2ray插件的方案

服务端

这里针对服务器的操作默认都是在 root 用户下操作,所以没有加 sudo 前缀。

首先安装编译环境

apt install --no-install-recommends build-essential autoconf libtool \
         libssl-dev gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc \
         xmlto apg libpcre3-dev zlib1g-dev libev-dev libudns-dev libsodium-dev \
         libmbedtls-dev libc-ares-dev automake

拉取shadowsocks-libev源码并安装

# 如果服务器没有安装 git 的话,执行下方安装
# apt install git

git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init
./autogen.sh && ./configure --disable-documentation && make
make install

创建配置文件

mkdir /etc/shadowsocks-libev
vi /etc/shadowsocks-libev/config.json

写入以下内容

{
  "server":"127.0.0.1",
  "mode":"tcp_only",
  "server_port":8388,
  "local_port":1080,
  "password":"password",
  "timeout":60,
  "method":"chacha20-ietf-poly1305",
  "plugin":"v2ray-plugin",
  "plugin_opts":"server;host=127.0.0.1;path=/"
}

其中password 要自定义为自己的密码,8388为服务的端口号

创建系统启动文件

vi /etc/systemd/system/shadowsocks-libev.service

并写入以下内容

[Unit]
Description=Shadowsocks-libev Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Restart=on-abort

[Install]
WantedBy=multi-user.target

下载v2ray插件

下载地址:https://github.com/shadowsocks/v2ray-plugin/releases
要依据自己的服务器架构版本下载对应的版本,否则程序是无法启动的

⚠️注意:我这里以甲骨文的arm架构的服务器为例
注意我的是arm64位架构的(v2ray-plugin-linux-arm64-v1.3.1.tar.gz),实际要换成自己对应的

# 下载v2ray-plugin
wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.1/v2ray-plugin-linux-arm64-v1.3.1.tar.gz
# 解压
tar -zxvf v2ray-plugin-linux-arm64-v1.3.1.tar.gz
# 移动至bin目录
mv v2ray-plugin-linux-arm64-v1.3.1 /usr/bin/v2ray-plugin
# 赋予777权限
chmod 777 /usr/bin/v2ray-plugin

启动Shadowsocks

systemctl start shadowsocks-libev

设置开机自启

systemctl enable shadowsocks-libev

查看启动日志

可通过输入 gg 移动到文档开头 输入 shift+g 移动至结尾
注意:要查看自己的日志是不是在结尾位置,结尾位置为最新日志

journalctl -u shadowsocks-libev

启动日志显示以下内容说明服务启动成功

如果未出现上面的日志,说明启动很可能失败了,一般失败原因都是v2ray-plugin的版本与当前系统的架构版本不一致导致

至此, Shadowsocks-libev服务器端的基本配置已经全部完成了

接下来我们可以准备个域名,可以去阿里云或者腾讯云购买,购买后将域名解析至服务器,然后服务器使用nginx去解析对应的域名

此操作过程省略:安装nginx的过程,解析的过程…

为了提高链接的私密性,我们还需要ssl证书来开启https协议访问

以去阿里云或者证书可以去阿里云或者腾讯云厂商购买一年有效期免费的ssl证书,此处过程省略

证书绑定域名后就可以下载证书了,可以下载nginx版本证书
使用ssh工具将证书上传至nginx目录下,可在该目录下新建 ssl 目录用来存放证书

可以使用 finalshell 工具

然后配置nginx的server访问
首先,找到自己的nginx配置文件,我这里是 /etc/nginx/conf.d/default.conf,修改server部分为:

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    ssl_certificate /etc/nginx/ssl/wall.seebin.cn.pem;
    ssl_certificate_key /etc/nginx/ssl/wall.seebin.cn.key;
    ssl_session_timeout 3m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    server_name  xx.seebin.cn;

    location / {
      proxy_redirect off;
      proxy_pass http://127.0.0.1:8388;
      proxy_set_header Host $http_host;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
}

注意:上方的 server_name 要改为自己的解析的域名

保存后重启nginx,这样当访问 xx.seebin.cn 的时候就被nginx 反向代理到服务器的8388端口上了(即我们的shadowsocks服务)
至此,域名的解析访问配置结束

客户端

接下来我们就可以在电脑上安装 shadowsocks 访问工具了

注意:我们虽然安装的是 shadowsocks 服务,但是内部使用了v2ray插件进行了v2ray的使用,所以 我们在客户端安装shadowsocks工具后,还需要安装 v2ray-plugin 插件才能进行访问

Mac电脑

shadowsocks 下载地址:ShadowsocksX-NG
v2ray-plugin 插件下载安装:
这里通过 HomeBrew 安装
如果 HomeBrew 安装失败,请更换 HomeBrew 的源为国内源后再次下载即可成功下载

# 下载安装v2ray-plugin
brew install v2ray-plugin
# 进入到安装的位置
cd /Users/seebin/Library/Application\ Support/ShadowsocksX-NG/plugins
# 添加软连接
ln -s /usr/local/Cellar/v2ray-plugin/1.3.1/bin/v2ray-plugin

注意:安装的位置是在自己的个人目录下,要依据自己的用户目录,上面是以我电脑的个人目录为例

然后打开 shadowsocks 工具,找到 服务器-> 服务器设置,点击打开,然后点击左下角的 + 号添加一条配置,内容如下:

地址填写自己的解析地址
端口填写443
加密啊方法选择 chacha20-ietf-poly1305
密码输入 shadowsocks 配置文件里面的密码
插件输入 v2ray-plugin
插件选项输入 tls;host=自己的解析地址
备注随便写,备注随便写,然后点击确定就可以去访问google了

安卓手机

shadowsocks 下载地址:shadowsocks-android
v2ray插件下载地址:v2ray-plugin-android
上面这2个安装包都需要安装,但是v2ray插件安装包安装后不会生成桌面图标

如果你的手机是高通或者华为麒麟的处理器,记得要选择arm架构的版本

然后打开 shadowsocks 安装包,添加如下配置:

注意:插件要选择v2ray插件,然后再点击下方的配置对v2ray插件进行配置

transport mode 要选择 websocket-tls
hostname 要输入服务域名地址
path 默认 /

然后点击右上家保存后返回 shadowsocks 的配置页面,再点击右上角的保存返回,这时点击下方的链接按钮即可链接服务

Window电脑

shadowsocks下载地址:shadowsocks-windows
待补充

优化 shadowsocks-libev 网络提速

优化 shadowsocks-libev 网络速度,让 shadowsocks-libev 轻松跑满宽带
优化吞吐量
新建配置文件

vi /etc/sysctl.d/local.conf

输入以下内容

#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

net.ipv4.tcp_congestion_control = bbr

运行

sysctl --system

编辑配置文件limits.conf

vi /etc/security/limits.conf

在文件结尾添加下面两行

* soft nofile 51200
* hard nofile 51200

编辑 shadowsocks-libev 服务文件

vi /etc/systemd/system/shadowsocks-libev.service

在[Service]之后加入 ExecStartPre=/bin/sh -c ‘ulimit -n 51200’
如下示例:

[Unit]
Description=Shadowsocks-libev Server
After=network.target

[Service]
Type=simple
# 在这里加入 ExecStartPre=/bin/sh -c 'ulimit -n 51200'
ExecStartPre=/bin/sh -c 'ulimit -n 51200'
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Restart=on-abort

[Install]
WantedBy=multi-user.target

重新加载 shadowsocks-libev 服务配置

systemctl daemon-reload

重启 Shadowsocks-libev 服务

systemctl restart shadowsocks-libev

开启TCP Fast Open

TCP Fast Open可以降低Shadowsocks服务器和客户端的延迟。实际上在上一步已经开启了TCP Fast Open,现在只需要在Shadowsocks配置中启用TCP Fast Open。
编辑 shadowsocks 的配置文件

vi /etc/shadowsocks-libev/config.json

添加 fast_open 属性,并设置为 true

{
  "server":"127.0.0.1",
  "mode":"tcp_only",
  "server_port":8388,
  "local_port":1080,
  "password":"password",
  "timeout":60,
  "method":"chacha20-ietf-poly1305",
  "plugin":"v2ray-plugin",
  "plugin_opts":"server;host=127.0.0.1;path=/",
  "fast_open":true
}

重启 shadowsocks-libev 服务

systemctl restart shadowsocks-libev

开启BBR提速

Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。 根据实地测试,在部署了最新版内核并开启了 TCP BBR 的机器上,网速甚至可以提升好几个数量级
运行bbr

 lsmod | grep bbr

如果结果中没有tcp_bbr,则先运行下方命令,否则跳过下面这一步

modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

然后接着运行

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

在运行

sysctl -p

最后在运行

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

至此BBR开启成功

CDN提速

除了上面的优化手段外,可以通过CDN进行提速
首先打开 KEYCLOCK(点击打开) CDN厂商并注册登录
复制下方的cname值

然后去域名厂商,解析一条自定义域名使用cname解析至此地址

然后在来到CDN厂商控制台,点击添加域名:

然后点击下方关闭即可
这时候再来到客户端的 shadowsocks 服务器设置页面,复制一份原有的配置,并修改为新的CDN地址,保存即可
然后 shadowsocks 切换为新的配置,可以发现速度又提升了一节

至此安装与提速的配置全部配置完毕!

发表评论

邮箱地址不会被公开。