本教程总体采用 apt 和 pip 进行安装,无需编译,两分钟即可搭建完成。适合于 树莓派3B 的 Raspbian 系统,以及支持 apt 的 Debian 系的系统。
准备
当然,安装之前,需要打开树莓派的 ssh,而且最好做好相关防护,不然端口很可能被扫爆。
更新源
sudo apt update && sudo apt upgrade && sudo apt autoremove
fail2ban(推荐)
安装 fail2ban 服务,该服务装好后重启生效、自启动,作用:ssh登录错误5次ban10分钟。
sudo apt install fail2ban
另外可以在 /etc/fail2ban/jail.conf 修改fail2ban参数。
安装
树莓派的 Raspbian 是基于 Debian 的系统,支持 apt 软件包管理(新立得)安装,那么就不需要编译了,树莓派这个性能,编译东西简直要炸了。apt 源里默认是有 shadowsocks 的,可由于作者不再维护 apt 和 pip 中的 Shadowsocks,定格在了很老的3.0.0,所以我们用 python 的 pip 安装
首先安装 python3 和 pip
sudo apt install python3 && sudo apt install python3-pip
然后使用 python3 的 pip 安装最新的 shadowsosks
sudo python3 -m pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip
安装完成查看一下 shadowsocks 的版本
sudo ssserver --version
软件包附带两个命令,ssserver和sslocal。一个用于服务端配置,一个用于客户端配置。详细情况可以运行man shadowsocks来查看。
另外新版 SS 支持了 chacha20 等加密算法,需要安装 libsodium
sudo apt install libsodium-dev
配置
有两种配置方法,一种是命令行参数配置,一种是配置文件。
命令行配置
参数名 | 参数意义 |
-s | 服务器地址 |
-p | 服务器端口号 |
-k | 服务器密码 |
-m | 服务器加密方式 |
-t | 服务器超时时间 |
-c | 配置文件路径 |
-fast-open | 快速打开模式,仅Unix/Linux系统可用 |
-workers | 工作者数量 |
每次运行 shadowsocks 都将一大堆参数传进去是件很麻烦的事情。所以一般情况下都是采用配置文件的方式来配置的。然后通过-c参数将配置文件路径传入。
配置文件
shadowsocks 的配置文件是一个json形式的文件,各参数的意义和命令行参数意义相同。
{
"server": "0.0.0.0",
"server_port": 8435,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "mypassword",
"timeout": 300,
"method": "chacha20-ietf",
"fast_open": true,
"workers": 1,
"prefer_ipv6": false
}
服务器地址就写0.0.0.0即可,0.0.0.0意思是转发到外网,不要写127.0.0.1,127.0.0.1是仅在内网使用。端口号可以自己写,但是不要占用其他服务的端口,我这里使用 8435 是因为我们学校仅允许连接外网 22/80/443/5228 端口。本地地址和本地端口是客户端使用的,服务端可以不用理会。密码尽量采用复杂一点的密码,以保证安全性。加密方式如果仅仅在手机或者电脑使用,用 aes-256-cfb 就可以,如果是路由器使用推荐 chacha20-ietf-poly1305。如果服务器是Linux系统的话,打开fast_open。
配置文件编辑完毕之后,就可以运行shadowsocks了。尝试前台运行:
ssserver -c /etc/shadowsocks/config.json
后台运行和停止
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
PC端的连接
传统的ss或者ssr客户端只能满足网页走代理的需求,为了使全部应用,比如网盘、游戏软件等等统统走代理,推荐使用SSTap。