前言
本文主要介绍如何在Debian 12上搭建Shadowsocks-Rust (AEAD-2022)服务器。此教程应当大致也适用于Ubuntu操作系统的VPS。
系统更新与软件安装
例行更新:
1 | sudo apt update -y |
安装snapd(Ubuntu用户大概可以跳过这一步):
1 | sudo apt install snapd -y |
安装Shadowsocks-Rust:
1 | sudo snap install shadowsocks-rust |
配置文件
snap渠道安装的Shadowsocks-Rust目前没有提供默认的配置文件,最好是自己新建一个,方便管理。例如:
1 | sudo mkdir /var/snap/shadowsocks-rust/common/etc/shadowsocks-rust |
再新建并打开一个配置文件。为了对新手友好此处使用nano,vim完全没问题:
1 | sudo nano /var/snap/shadowsocsk-rust/common/etc/shadowsocks-rust/config.json |
以下是一个Shadowsocks-Rust的配置文件示例:
1 | { |
具体参数方面的讲解此处略带一下,之前Shadowsocks-Libev的搭建教程中已经提及。
server_port看自己心情修改,不太推荐用8388,然后也别填个22,443之类的和自己现有的服务冲突了之类的就行。客户端和服务端应该保持一致。
此处着重讲解更新的加密算法和密码。
加密算法和密码(重点)
Shadowsocks-Rust对AEAD-2022的实现主要引入了三个新的加密算法:
2022-blake3-aes-128-gcm ,2022-blake3-aes-256-gcm 和 2022-blake3-chacha20-poly1305。
具体的安全性细节不再赘述,详情可见 SIP022 AEAD-2022 Ciphers | Shadowsocks
本文主要讲解在配置层面上引入的限制,具体而言,这三种加密算法现在不接受ASCII编码的,任意长度的字符串作为密码("password")了,而是需要指定长度的,Base64编码的字符串作为密钥才能够正常运转。
2022-blake3-aes-128-gcm 需要 16 字节的,Base64编码的随机数。
2022-blake3-aes-256-gcm 和 2022-blake3-chacha20-poly1305 需要 32 字节的,Base64编码的随机数。
快速生成合法格式的密码
Linux通常预装了OpenSSL,那么此处可以直接使用OpenSSL命令来生成所需的密钥。例如,假设用户希望使用 2022-blake3-aes-128-gcm 作为加密算法,那么就可以使用:
1 | openssl rand -base64 16 |
来生成一个合法的密钥。
类似地,如果用户决定使用 2022-blake3-aes-256-gcm 或 2022-blake3-chacha20-poly1305 ,则可以使用:
1 | openssl rand -base64 32 |
来生成一个合法的密钥。
把生成的密钥复制到配置文件中的"password"键对应的值当中即可。
运行与维护
启动Shadowsocks-Server服务,并允许开机自启动:
1 | sudo snap start --enable shadowsocks-rust.ssserver-daemon |
可以通过以下指令来查看服务状态:
1 | sudo snap services shadowsocks-rust.ssserver-daemon |
注意此处如果看到一个inactive,那么多半是配置文件写错了,注意检查一下JSON格式,或者是不是密码的格式有误等问题。这是用了AEAD-2022的一个常见问题,而使用AEAD-2017(例如普通的AES-128-GCM等加密算法)则不会面临这个问题,但是会牺牲一些安全性。
可以通过这条命令查看运行日志,便于诊断问题:
1 | sudo snap logs shadowsocks-rust.ssserver-daemon |
此外,如果系统开启了UFW,别忘了开放Shadowsocks服务监听的端口,例如:
1 | sudo ufw allow ssh |
通过指令查询ufw的工作状态:
1 | sudo ufw status |
另外,此处是以Vultr,Digital Ocean,Bandwagon等相对简单的VPS作为例子,如果使用的是阿里云香港ECS等,则要留意一下服务器的安全组,也是同样要允许访问ssserver监听的端口。
结语
本文简单介绍了如何在Debian操作系统上部署一台Shadowsocks-Rust AEAD-2022服务器。