2024年使用 Docker 自建 shadowsocks-rust + v2ray-plugin 翻墙教程
June 29, 2024
目前 shadowsocks-rust 是维护比较及时的版本,本文介绍使用 Docker 自建 shadowsocks-rust + v2ray-plugin 的过程,以及如何使用最新的 Shadowsocks 2022 加密方式。
shadowsocks 协议的 2022 版。Shadowsocks 2022 在 Shadowsocks AEAD(2017)的基础上进行了改进,解决了之前版本中众所周知的问题,放弃了使用过时的加密技术,优化了安全性和性能,并为未来的扩展留出了空间。
shadowsocks-rust 不同加密方法性能测试:
shadowsocks-rust | TCP | UDP |
---|---|---|
2022-blake3-aes-128-gcm | 12.2Gbps | 14.2Gbps |
2022-blake3-aes-256-gcm | 10.9Gbps | 12.5Gbps |
2022-blake3-chacha20-poly1305 | 8.05Gbps | 2.35Gbps |
2022-blake3-chacha8-poly1305 | 8.36Gbps | 2.60Gbps |
aes-128-gcm | 8.99Gbps | 13.5Gbps |
aes-256-gcm | 8.21Gbps | 11.9Gbps |
chacha20-poly1305 | 6.55Gbps | 8.66Gbps |
需要注意的是 Shadowsocks 2022 在移动端支持比较及时,但是 shadowsocks-windows 迟迟没有更新,如有 windows 需求请使用兼容更好的旧版:2023年使用Docker自建shadowsocks + v2ray-plugin翻墙教程
服务器篇 #
购买服务器 #
-
服务器厂商:海外知名且易用的有 DigitalOcean、Linode、Vultr、BandwagonHost,支付方式基本都支持外币信用卡、Paypal,也有部分支持支付宝支付(比如Vultr、BandwagonHost)
-
以支持支付宝的Vultr为例,介绍一下购买,选择服务器的流程,基本都大同小异
- 打开Vultr官网 www.vultr.com
- 右上角可以切换语言
- 注册账号,Email认证一下 ,登录到后台
- 登录后,在 Products -> Instances 点击 Deploy Server
- 选择服务器规格
- 选择 Cloud Compute
- CPU 选择 intel Regular Performance
- Sever Location 选择 Tokyo 或者 Singapore
- Server Image 选择 Ubuntu 22.04 LTS x64 (最新Ubuntu即可)
- Server Size 选择最便宜的5刀每月
- 关闭自动备份(节省1美元),打开 Enable IPv6
- 确认价格后,点击最下方的 Deploy Now,完成后就会显示服务器正在初始化,等状态变为 Running 服务器购买就完成了
- 进入服务器详情页查看服务器信息
- 充值在 Billing -> Make Payment 选择 Alipay 就可以使用支付宝,最低10美元起充,服务器是按小时付费,如果是临时使用,用完可以销毁
- 打开Vultr官网 www.vultr.com
安装SSH客户端 #
- 下载安装Putty
使用SSH连接服务器 #
-
打开putty,输入服务器IP,点击Open
-
接受服务器认证信息,点击Accept
-
输入服务器账号密码,账号一般是
root
,密码在服务器信息页 -
连接成功
安装Docker #
-
Docker 是一个可以把软件和依赖环境打包部署的运维工具,可以保证用户的使用环境和软件开发者的运行环境一致,还有不会搞乱使用者的系统,是比较绿色的软件安装方式
-
官网文档:docs.docker.com
-
linux执行指令示例,输入指令回车就是执行
-
在 Ubuntu系统上安装指令如下:
- 安装必要的软件依赖
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
- 加上Docker官方软件源
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装Docker
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
备注:如果已经是root用户可以不用加
sudo
,有些精简版的Ubuntu系统会去除sudo,导致sudo的命令无法执行
拉取 shadowsocks-rust + v2ray-plugin镜像 #
-
使用teddysun大佬打包好的Docker镜像来部署 shadowsocks-rust + v2ray-plugin,一行命令就可以完成
docker pull teddysun/shadowsocks-rust
shadowsocks-rust 配置&运行 #
- 写入shadowsocks配置,password 换成自己生产的密码,命令行运行
openssl rand -base64 32
与之前的版本不同,Shadowsocks 2022 要求用户使用固定长度密码,为方便起见,密码采用 base64 编码。实际上,它可以用 openssl rand -base64 <key_size> 生成。密钥大小取决于所选的方法,这一更改的灵感来自 WireGuard。
Method | Key Bytes | Salt Bytes |
---|---|---|
2022-blake3-aes-128-gcm | 16 | 16 |
2022-blake3-aes-256-gcm | 32 | 32 |
2022-blake3-chacha20-poly1305 | 32 | 32 |
```
mkdir -p /etc/shadowsocks-rust
cat > /etc/shadowsocks-rust/config.json <<EOF
{
"server":"0.0.0.0",
"server_port":9000,
"password":"password",
"timeout":300,
"method":"2022-blake3-chacha20-poly1305",
"fast_open":true,
"nameserver":"1.1.1.1",
"mode":"tcp_only",
"plugin":"v2ray-plugin",
"plugin_opts":"server"
}
EOF
```
-
运行
docker run -d -p 80:9000 --name ss-rust --restart=always -v /etc/shadowsocks-rust:/etc/shadowsocks-rust teddysun/shadowsocks-rust
-
查看运行状态
- 查看状态
docker ps -f name=ss-rust
如果输出 STATUS 是以
Up
开头的就是正常的- 输出运行日志
docker logs ss-rust
-
shadowsocks重启,修改配置需要重启才会生效
docker restart ss-rust
关闭 ufw #
ubuntu 默认的 ufw 可能会封堵80端口。
放行 80 端口
sudo ufw allow 80
或者关闭 ufw
sudo ufw disable
客户端篇 #
Shadowsocks 移动端(安卓)安装 #
使用 Shadowsocks 2022 需要软件版本 >= v5.3.3
-
下载地址:
-
使用:
- 安装后打开,点击上方加号添加服务器
- 填写服务器信息
- 配置名称选填
- 服务器填写服务器IP
- 远程端口填写 80
- 密码填写自己设置的密码
- 加密方法选择
2022-blake3-chacha20-poly1305
- 路由选择 GFW列表
- 插件选择 v2ray
- 配置 v2ray 插件
- Transport mode 选择 websocket-http
- Hostname 填写 bing.com 或者可以自己选一些海外的知名流量大的网站、比如 www.alibabacloud.com、intl.cloud.tencent.com
-
保存服务器配置之后,选择服务器并点击小飞机图标就可以运行
-
打开浏览器 google.com 测试一下
Shadowrocket(iOS)安装 #
- iPhone 端因为国内全都被下架了
-
你需要注册一个美国的苹果ID(或者买一个)
-
然后 iTunes/App Store 用这个美区的ID登录(不是退出 iCloud ,而是退出 App Store)
-
然后搜索 Shadowrocket,需要付费.
-
Shadowrocket 添加节点
-
点击 + 号新建节点
-
如下图图所示填写 地址(你服务器的IP)、端口、密码(你自定义的密码)、算法、插件
- 类型选择 Shadowsocks
- 地址填写服务器IP
- 端口填写 80
- 密码填写自己设置的密码
- 算法选择
2022-blake3-chacha20-poly1305
- 混淆选择 none
- 插件选择 v2ray-plugin (Host 可以填写 www.alibabacloud.com、intl.cloud.tencent.com,其他配置默认)
完成后测试一下连通性
-
-