手动设置 Shadowsocks-Rust 服务器

背景

前写了一篇 Shadowsocks-libev 的设置步骤 博文,但晚上突然看到 Github 里的描述,发现后续的开发已经转移到 Rust 分支上了。 Shadowsocks-Rust 不需要手动编译,安装步骤相对来说比较简单。

系统环境准备

apt install -y --no-install-recommends \
    gettext \
    build-essential \
    autoconf \
    libtool \
    libpcre3-dev \
    asciidoc \
    xmlto \
    libev-dev \
    libudns-dev \
    libc-ares-dev

接下来的 libmbedtls、libsodium 依赖需要手动编译安装,直接复制下面的命令即可:

# libmbedtls
wget -qO- https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v3.3.0.tar.gz | tar xzv
cd mbedtls-3.3.0
make SHARED=1 CFLAGS=-fPIC && make DESTDIR=/usr install

# libsodium
wget -qO- https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz | tar xzv
cd libsodium-1.0.18
./configure --prefix=/usr && make && make install

下载 Shadowsocks-Rust

这里我选择把程序存放在 /root/shadowsocks 文件夹,你可以依据个人喜好配置:

#创建目录
cd ~ && mkdir shadowsocks && cd shadowsocks

#下载、解压 Shadowsocks-Rust
wget -qO- \
https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.15.3/shadowsocks-v1.15.3.x86_64-unknown-linux-gnu.tar.xz | \
tar xJf -
上面的命令一定要复制完全

执行上方命令后,你会在目录里看到这几个文件:

  • sslocal
  • ssmanager
  • ssserver
  • ssservice
  • ssurl

创建配置文件

这里选择在 /root/shadowsocks 目录创建:

cd ~/shadowsocks && nano config.json

配置文件大同小异,这里直接复制上一篇文章的配置:

{
    "server":"127.0.0.1", #本地监听地址
    "mode":"tcp_only", #TCP、UDP 设置
    "server_port":8888, #服务器端口
    "local_port":1080,
    "password":"password", #密码
    "timeout":86400,
    "method":"chacha20-ietf-poly1305", #加密方式
}

配置 V2Ray-Plugin

V2Ray-Plugin 是常用的混淆插件,这里选用 teddysun 维护的项目:

wget -qO- https://github.com/teddysun/v2ray-plugin/releases/download/v5.3.0/v2ray-plugin-linux-amd64-v5.3.0.tar.gz | tar xzv
mv v2ray-plugin_linux_amd64 /usr/bin/v2ray-plugin

最后在上一步的配置文件尾部加入两行配置:

{
    "server":"127.0.0.1", #本地监听地址
    "mode":"tcp_only", #TCP、UDP 设置
    "server_port":8888, #服务器端口
    "local_port":1080,
    "password":"password", #密码
    "timeout":86400,
    "method":"chacha20-ietf-poly1305", #加密方式
    #加入下面两行
    "plugin":"v2ray-plugin",
    "plugin_opts":"server;host=<你的域名>;path=/random;mux=0",
}
需要把“#”及后方的文字删除

配置 Shadowsocks 系统服务

如果不进行配置,在系统重启之后软件不会自启动。输入如下命令进入编辑:

nano /etc/systemd/system/shadowsocks.service

输入如下内容:

[Unit]
Description=Shadowsocks server
After=network.target
 
[Service]
ExecStart=/root/shadowsocks/ssserver -c /root/shadowsocks/config.json 
Restart=always
 
[Install]
WantedBy=multi-user.target

保存之后,执行下面的命令启用并运行 Shadowsocks 服务:

systemctl enable shadowsocks && systemctl start shadowsocks

配置 Nginx 反代

Nginx 配置文件示例如下:

server {
    listen 443 ssl;
    ssl_certificate /path/to/cer; #证书位置
    ssl_certificate_key /path/to/key; #密钥位置
    ssl_session_timeout 3m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY13>
    ssl_conf_command Ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256;
    ssl_conf_command Options PrioritizeChaCha;
    ssl_prefer_server_ciphers on;

    server_name <你的域名>;

    location /random {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
注意要提前申请好 TLS 证书,同时要保证 proxy_pass 后的端口与你 config.json 配置文件中的端口一致

Clash 客户端配置

在配置文件中,我个人的配置如下:

...
proxies:
  - name: <自定义服务器名称>
    type: ss
    server: <你的域名>
    port: 443
    cipher: chacha20-ietf-poly1305
    password: <服务器密码>
    plugin: v2ray-plugin
    plugin-opts:
      mode: websocket
      tls: true
      host: <你的域名>
      path: /random
      mux: 0 #这里的 mux: 0 是为了兼容 Quantumult X 软件。
...
接下来就享受愉快的上网体验吧!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注