CentOS 7安装ShadowSocks(libev版本)加上KCP加速

由于Python版本的一直比较慢,而且经常断线,极其不稳定。开启BBR也是叼用没用,加上KCP之后才快起来,但是反应还是比较迟钝,于是就换了C语言写的libev版本。试了下,嗖嗖的爽。

References:

>>>>Update 20190917
目前来看SS已经很不稳定,敏感时期大概率被封,建议使用V2Ray,教程参考:https://www.racecoder.com/archives/528/
<<<<

通过yum源安装相关软件

# yum install epel-release -y
# yum update
# yum install gcc gettext autoconf libtool automake make openssl-devel pcre-devel asciidoc xmlto zlib-devel openssl-devel libsodium-devel udns-devel libev-devel -y

通过yum安装shadowsocks-libev需要单独的仓库,下载:

# wget https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo

下载的文件内容如下:

[librehat-shadowsocks]
name=Copr repo for shadowsocks owned by librehat
baseurl=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

如果链接失效了,直接把上面的copy一下就好了。
把文件放到/etc/yum.repos.d/目录下

# cp librehat-shadowsocks-epel-7.repo /etc/yum.repos.d/

然后安装

# yum update
# yum install shadowsocks-libev

如果在安装shadowsocks-libev依赖包的时候出现如下的提示信息,应该是epel源已经安装,但是被禁用了。

No package udns-devel available.
No package mbedtls-devel available.

如果被禁用就执行如下命令启用,yum-config-manager也是要安装的(通过yum -y install yum-utils安装):

# yum-config-manager --enable epel
# yum update

启用epel源后重新安装shadowsocks-libev。如果还是失败就自己动手编译安装相关软件吧。
安装成功后编辑文件/etc/shadowsocks-libev/config.json,以下供参考:

{
    "server":"0.0.0.0",
    "server_port":8388,
    "password":"uzon57jd0v869t7w",
    "timeout":300,
    "method":"aes-256-cfb"
}

其中server配置为本机,server_port配置为服务器开启的端口,password为加密的密钥(可以用在线密码生成器搞个复杂点的),timeout为超时时间,method为加密方式。
需要注意的是,如果加密方法选择aes-256-cfb,需要安装额外的软件,执行如下命令:

# yum install rng-tools -y
# rngd -r /dev/urandom

端口的话建议不要用默认的8388,平时用可能没什么问题,但是关键时期这个端口会被封掉,比如现在的第十九次运动会期间(2017-10-18)。搞得我纳闷的很久,看日志也没问题,结果换端口就好了。
注册为开机启动项并启动软件:

# systemctl start shadowsocks-server
# systemctl enable shadowsocks-server

ShadowSocks的服务名称跟系统或者ShadowSocks版本有关,如果启动失败,可以尝试列出systemd下的ss服务名:

# ll /usr/lib/systemd/system/shadowsocks*

如果为

/usr/lib/systemd/system/shadowsocks-libev.service

则执行:

# systemctl enable shadowsocks-libev
# systemctl start shadowsocks-libev

这里我在刚装好后启动好几次都提示找不到,搜了一会资料无果后又执行了一次成功了,遇到同样问题的不妨等一会或者多试几次,还不行可以参考shadowsocks-libev.service的内容在/etc/systemd/system/下手动创建开机启动项。
最后记得开启防火墙相关的端口:

# firewall-cmd --zone=public --add-port=8388/tcp --permanent
# #刷新防火墙,不然可能不生效
# firewall-cmd --reload

这样服务端的ShadowSocks就搭建好了。
客户端的话就非常简单了,照着服务器的配置填好就能用了。
ssclientconfig.png

这样就已经打开大门了。Across the Great Wall, we can reach every corner in the world


不过只是这样并不能让我愉快的玩耍,慢速和不稳定让我一度想砸电脑。所以用了KCPtun加速,不要信什么BBR加速多好多牛逼,终归只是优化而已,实测无叼用,还是得KCP这种暴力的才能有效果。我也不想浪费带宽资源,然而实际就是不浪费根本没法用,所以要怪就怪万恶的GFW吧[dog]。
虽然ShadowSocks-libev版本下作者提供了KCP的启用方式,不过我看了下配置不太爽,于是就参考了KCP的github上配置了。
到参考链接的kcp地址下载合适的版本。
解压后有两个文件,其中类似server_linux_amd64这样的文件就是服务端程序了,另一个类似client_linux_amd64的就是客户端程序了。如果客户端在Windows上使用要下载Windows版本的哦。
先来配置服务端,创建开机启动项如下供参考:

# vi /etc/systemd/system/kcptun.service 
[Unit]
Description=kcptun

[Service]
TimeoutStartSec=20
ExecStart=/usr/bin/server_linux_amd64 -t "0.0.0.0:8388" -l ":4000" -mode fast2

[Install]
WantedBy=multi-user.target

其中TimeoutStartSec为延时启动的时间,这里由于需要等待ShadowSocks启动完成后再启动,所以配置20秒的延迟。ExecStart后的server_linux_amd64为你刚刚下载的文件的位置,建议放到相应的文件夹以便管理。-t后的是服务器的IP和ShadowSocks服务的端口,这里IP配置为本机IP即可。-l表示KCP服务使用的端口,-mode表示速度的模式,从快到慢依次是fast3 > fast2 > fast > normal > default,fast3一般用于游戏,不想要任何的延迟(no lag),但这也意味浪费的流量会增多,这里我选择fast2就够用了。然后执行systemctl start kcptun启动kcp服务。

最后就剩下KCP客户端的配置了,由于KCP的作者只提供了cmd程序,但是这样使用的体检极差,如下图:
ktpwincliconsole.png

所以有热心的网友为其提供了GUI程序:https://github.com/dfdragon/kcptun_gclient/releases。虽然只是简单的把设置转为命令行参数,但这也很方便了,尤其是有开机启动配置。第一次使用记得要以管理员模式运行,不然开机启动项勾选上也不起作用。
kcpcliguiconf.png

其中客户端exe程序选择kcp的客户端合适版本。本地侦听端口选一个不被占用的即可。服务器、端口、模式和服务器对应即可,此处的模式需要注意的是,由于kcp使用双向交互,所以链路的最大速度取决于服务端和客户端中配置速度最低的一段,比如:服务端配置了fast3,而客户端只配置了fast2,实际速度只有fast2,一般的两端配置一样即可,不过经常需要改变速度的可以尝试差异配置。
应该就这些了吧,写的真累啊。
提前祝国庆快乐~~!

标签: none

已有 2 条评论

  1. Leo Leo

    参考一下,博主辛苦

  2. mike mike

    感谢给出 CentOS 7安装ShadowSocks(libev版本)设置的详细步骤包括各种可能出现的情况,节省了不少时间,几分钟就设置好用上了!

添加新评论

ali-01.gifali-58.gifali-09.gifali-23.gifali-04.gifali-46.gifali-57.gifali-22.gifali-38.gifali-13.gifali-10.gifali-34.gifali-06.gifali-37.gifali-42.gifali-35.gifali-12.gifali-30.gifali-16.gifali-54.gifali-55.gifali-59.gif

加载中……