树莓派3B 搭建ss服务端笔记

目前家里在用SoftBank的光网,1000M上下对等,而且是直连国内的线路,大部分时间连接国内网络都在30ms左右,平时带宽基本上闲置。

这几天看了下路由器里居然有端口转发功能,于是手头树莓派搭了个LNMP试了下,居然80和443端口都可以直接转发,那ss肯定没问题了…

于是简单鼓捣一下,尝试搭建个ss服务端。

准备

当然,安装之前,需要打开树莓派的ssh,而且最好做好相关防护,不然端口很可能被扫爆。

更新源

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove

fail2ban

安装fail2ban服务,该服务装好后重启生效、自启动,作用:ssh登录错误5次ban10分钟。

sudo apt-get install fail2ban

另外可以在/etc/fail2ban/jail.conf修改fail2ban参数。

安装

树莓派的Raspbian是基于Debian的系统,支持apt软件包安装,那么就不需要编译了,树莓派这个性能,编译东西简直要炸了。

sudo apt install shadowsocks

假如没有找到的话,也可以用python的pip进行安装

sudo pip install shadowsocks

软件包附带两个命令,ssserversslocal。一个用于服务端配置,一个用于客户端配置。详细情况可以运行man shadowsocks来查看。

配置

有两种配置方法,一种是命令行参数配置,一种是配置文件。

命令行配置

参数名
参数意义
-s服务器地址
-p服务器端口号
-k服务器密码
-m服务器加密方式
-t服务器超时时间
-c配置文件路径
–fast-open快速打开模式,仅Unix/Linux系统可用
–workers工作者数量

每次运行shadowsocks都将一大堆参数传进去是件很麻烦的事情。所以一般情况下都是采用配置文件的方式来配置的。然后通过-c参数将配置文件路径传入。

配置文件

shadowsocks的配置文件是一个json形式的文件,各参数的意义和命令行参数意义相同。

{
    "server":"0.0.0.0",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

服务器地址就写0.0.0.0即可,不要写127.0.0.1。端口号可以自己写,但是不要占用其他服务的端口。本地地址和本地端口是客户端使用的,服务端可以不用理会。密码尽量采用复杂一点的密码,以保证安全性。加密方式使用aes-256-cfb就可以了。如果服务器是Linux系统的话,打开fast_open。

配置文件编辑完毕之后,就可以运行shadowsocks了。尝试前台运行:

ssserver -c /etc/shadowsocks/config.json

这时候会发现报错:

AttributeError: /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

这是由于新版openssl库更新导致名称变更产生的问题。

/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py

将此文件中的52行和111行中的cleanup更新为reset后,再次启动即可。

后台运行和停止

ssserver -c /etc/shadowsocks/config.json -d start
ssserver -c /etc/shadowsocks/config.json -d stop

以上都是在root用户下运行的。以root方式运行可能会有一些安全问题。所以一般都是使用普通用户运行:

ssserver -c /etc/shadowsocks/config.json --user nobody -d start

以上都需要自己手动运行命令来启动shadowsocks。要让shadowsocks在系统启动时自动运行,需要在/etc/rc.local中添加命令。

sudo ssserver -c /etc/shadowsocks/config.json --user nobody -d start

后续

其实还可以做一些优化,比如安装KCPTun,优化系统连接数设置等,以后有空再做。

参考

https://github.com/shadowsocks/shadowsocks/issues/946

https://blog.csdn.net/u011054333/article/details/52496303

https://github.com/iMeiji/shadowsocks_install/wiki/shadowsocks-optimize

http://shuidl.com/311.html

https://blog.kuoruan.com/102.html

https://miaocode.tk/hello-kcp/

5 Comments (628 Views)

  1. 更新为reset之后还是报一样的错误,有木有解决方法
  2. 请问3b做SS服务端性能如何?
    1. @InfNorm:性能不是很好,最高也就40~60m,3b+好像有改善,据说可以上100了,不过我没有3b+的机器,不好评论嗯。。
  3. SixMoe says:
    超棒!
    照着其他linux教程搭,报错的时候都懵了ww
    搜到这里真的是太好了
    炒鸡感谢!

Leave a Reply

Your email address will not be published. Required fields are marked *