打算在樹莓派3B+上搭個VPN服務器,考慮到pptp不安全、L2TP/IPSec 在蘋果設備的各種連接不上,於是嘗試搭建一個SS服務器,這樣PC、手機使用ss客戶端都能連接。
試驗設備:
樹莓派3B+
Raspbian 系統
1. 準備
安裝ss之前需要打開樹莓派的 ssh,而且最好做好相關防護,不然端口很可能被掃爆。
2. 更新源
sudo apt update && sudo apt upgrade && sudo apt autoremove
3. 安裝fail2ban
該服務裝好後重啓生效、自啓動,作用:ssh登錄錯誤5次ban10分鐘。
sudo apt install fail2ban
另外可以在 /etc/fail2ban/jail.conf 修改fail2ban參數。
4. 安裝ss服務器
apt 源裏默認是有 shadowsocks 的,由於作者不再維護 apt 和 pip 中的 Shadowsocks,版本爲很老的2.8.2,所以我們就用 python 的 pip 安裝
4.1 python3 和 pip
支持樹莓派3B+的Raspbian 鏡像是默認帶了 python3 和 pip,如果老的版本沒有,可以手動安裝:
sudo apt install python3 && sudo apt install python3-pip
4.2 安裝最新的 shadowsosks
sudo python3 -m pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip
安裝完成查看一下 shadowsocks 的版本
sudo ssserver --version
目前最新版本是:Shadowsocks 3.0.0
5. 配置文件
執行:
sudo nano /etc/shadowsocks.json
shadowsocks 的配置文件是一個json形式的文件,各參數如下:。
{
"server": "0.0.0.0",
"server_port": xxxx,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "mypassword",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false,
"workers": 1,
"prefer_ipv6": false
}
server:服務器地址,就寫0.0.0.0即可,0.0.0.0意思是轉發到外網,不要寫127.0.0.1,127.0.0.1是僅在內網使用。
server_port:服務器端口,填入寬帶能支持的端口
password:密碼,採用複雜一點的密碼,即包含:大寫、小寫、數字、符號的長密碼,以保證安全性。
method:加密方式,默認用 aes-256-cfb 就可以,Shadowsocks 3.0.0 chacha20 等加密算法,需要安裝 libsodium。安裝命令
sudo apt install libsodium-dev
然後在加密方式填入chacha20-ietf-poly1305
配置文件編輯完畢之後,就可以運行shadowsocks了。嘗試前臺運行:
sudo ssserver -c /etc/shadowsocks/config.json
6. 後臺運行和停止
sudo ssserver -c /etc/shadowsocks/config.json -d start
sudo ssserver -c /etc/shadowsocks/config.json -d stop
以上都是在root用戶下運行的。以root方式運行可能會有一些安全問題。所以一般都是使用普通用戶運行:
ssserver -c /etc/shadowsocks/config.json --user nobody -d start
7. 開機啓動
要讓shadowsocks在系統啓動時自動運行,需要在/etc/rc.local中添加命令。
在最後一行 exit 0 上面添加如下語句:
sudo ssserver -c /etc/shadowsocks/config.json --user nobody -d start
8. 開啓BBR
Google 開源了其 TCP BBR 擁塞控制算法,內核並開啓了 TCP BBR 的機器上,網速甚至可以提升好幾個數量級。
具體的安裝步驟可以參考網絡的其他教程。