2024年使用 Docker 自建 shadowsocks-rust + v2ray-plugin 翻墙教程

2024年使用 Docker 自建 shadowsocks-rust + v2ray-plugin 翻墙教程

June 29, 2024

shadowsocks

目前 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为例,介绍一下购买,选择服务器的流程,基本都大同小异

    1. 打开Vultr官网 www.vultr.com
      • 右上角可以切换语言
      • 注册账号,Email认证一下 ,登录到后台

    1. 登录后,在 Products -> Instances 点击 Deploy Server

    1. 选择服务器规格
      • 选择 Cloud Compute
      • CPU 选择 intel Regular Performance
      • Sever Location 选择 Tokyo 或者 Singapore
      • Server Image 选择 Ubuntu 22.04 LTS x64 (最新Ubuntu即可)
      • Server Size 选择最便宜的5刀每月
      • 关闭自动备份(节省1美元),打开 Enable IPv6

    1. 确认价格后,点击最下方的 Deploy Now,完成后就会显示服务器正在初始化,等状态变为 Running 服务器购买就完成了

    1. 进入服务器详情页查看服务器信息

    1. 充值在 Billing -> Make Payment 选择 Alipay 就可以使用支付宝,最低10美元起充,服务器是按小时付费,如果是临时使用,用完可以销毁

安装SSH客户端 #

使用SSH连接服务器 #

  1. 打开putty,输入服务器IP,点击Open

  2. 接受服务器认证信息,点击Accept

  3. 输入服务器账号密码,账号一般是 root,密码在服务器信息页

  4. 连接成功

安装Docker #

  • Docker 是一个可以把软件和依赖环境打包部署的运维工具,可以保证用户的使用环境和软件开发者的运行环境一致,还有不会搞乱使用者的系统,是比较绿色的软件安装方式

  • 官网文档:docs.docker.com

  • linux执行指令示例,输入指令回车就是执行

  • 在 Ubuntu系统上安装指令如下:

    1. 安装必要的软件依赖
    sudo apt-get update
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    1. 加上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
    
    1. 安装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

  • 下载地址:

  • 使用:

    1. 安装后打开,点击上方加号添加服务器

    1. 填写服务器信息
      • 配置名称选填
      • 服务器填写服务器IP
      • 远程端口填写 80
      • 密码填写自己设置的密码
      • 加密方法选择 2022-blake3-chacha20-poly1305
      • 路由选择 GFW列表
      • 插件选择 v2ray

    1. 配置 v2ray 插件
      • Transport mode 选择 websocket-http
      • Hostname 填写 bing.com 或者可以自己选一些海外的知名流量大的网站、比如 www.alibabacloud.com、intl.cloud.tencent.com

    1. 保存服务器配置之后,选择服务器并点击小飞机图标就可以运行

    2. 打开浏览器 google.com 测试一下

Shadowrocket(iOS)安装 #

  • iPhone 端因为国内全都被下架了
    1. 你需要注册一个美国的苹果ID(或者买一个)

    2. 然后 iTunes/App Store 用这个美区的ID登录(不是退出 iCloud ,而是退出 App Store)

    3. 然后搜索 Shadowrocket,需要付费.

    4. Shadowrocket 添加节点

      1. 点击 + 号新建节点

      2. 如下图图所示填写 地址(你服务器的IP)、端口、密码(你自定义的密码)、算法、插件

        • 类型选择 Shadowsocks
        • 地址填写服务器IP
        • 端口填写 80
        • 密码填写自己设置的密码
        • 算法选择 2022-blake3-chacha20-poly1305
        • 混淆选择 none
        • 插件选择 v2ray-plugin (Host 可以填写 www.alibabacloud.com、intl.cloud.tencent.com,其他配置默认)

      完成后测试一下连通性

小广告 #

海外网络加速服务

评论区: