介绍
Shadowsocks-Manager 是一个基于 Node.js 开发的 shadowsocks 多用户管理平台,支持 SS / SSR / Clash 等多种订阅方式 (#)。
前提条件
如果您愿意相信的我步骤,为了避免不必要的麻烦,请考虑以下推荐:
系统
Ubuntu Jammy 22.04 (LTS)
Ubuntu Focal 20.04 (LTS)
安装
大纲
1. 腾讯云/阿里云 -> 轻量应用服务器
2. -> 选择系统: Ubuntu Jammy 22.04 (LTS)
3. -> 安装 Docker Engine -> 启动 Shadowsocks-Manager(ssmgr) 容器
4. -> 登录面板: 安装 Redis 并配置密码
Docker Engine (#)
在 Ubuntu Jammy 22.04 (LTS) 上安装精简版 Docker Engine 是非常轻松从一件事,选择使用 apt 存储库安装,基本只需要跟着粘贴指令即可。
上图展示,安装 Docker 的 3 个主要步骤:(1) 选择 Docker Engine; (2) 安装 Docker Engine; (3) 验证 Docker Engine
使用 apt 存储库安装 (#)
- 设置 Docker apt 的仓库
# Add Docker's official GPG key(添加 Docker 的官方 GPG 密钥):
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources(将仓库添加到 Apt 源):
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- 安装 Docker 包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 验证 Docker 引擎安装是否成功
sudo docker run hello-world
如果看到,Hello from Docker!
则说明安装成功。
Shadowsocks-Manager (#)
添加配置
在这一环节,需要您完成以下前提步骤:
sudo su 切换 root 账号
-> mkdir ~/.ssmgr 创建目录 -> cd ~/.ssmgr 进入目录
-> 创建 nano default.yml 节点配置文件 & 创建 nano webgui.yml 面板配置文件
default.yml
插句话1: 之所以选择命名为 default.yml,而不是 ss.yml 或者 default.yaml。
是因为我发现官方 Docker 镜像创建容器时,调用的是 default.yml 这个名称的配置文件,纯属个人经验。
root@VM-4-5-ubuntu:~/.ssmgr# cat default.yml
type: s
shadowsocks:
address: 127.0.0.1:6001
manager:
address: 0.0.0.0:6002
password: '123456'
db: 'db.sqlite'
# db:
# host: '1.1.1.1'
# user: 'root'
# password: 'abcdefg'
# database: 'ssmgr'
webgui.yml
插句话2: 同样的,为了统一文件后缀,我选择了 webgui.yml 而不是 webgui.yaml。
root@VM-4-5-ubuntu:~/.ssmgr# cat webgui.yml
type: m
manager:
address: 127.0.0.1:6002 # 轻量应用服务器IP
password: '123456'
plugins:
flowSaver:
use: true
user:
use: true
account:
use: true
email:
use: true
type: 'smtp'
username: 'username'
password: 'password'
host: 'smtp.your-email.com'
webgui:
use: true
host: '0.0.0.0'
port: '80'
site: 'http://yourwebsite.com'
admin_username: 'admin@qq.com'
admin_password: 'pannel_password'
# icon: 'icon.png'
# skin: 'default'
# language: 'en-US'
# googleAnalytics: 'UA-xxxxxxxx-x'
# gcmSenderId: '476902381496'
# gcmAPIKey: 'AAAAGzddLRc:XXXXXXXXXXXXXX'
# google_login_client_id: '724695589056-p78tu8738t4fjel56yhe34qq34gjufsi.apps.googleusercontent.com'
# google_login_client_secret: 'TjUd36YnQ-YUI2uUtQa_43Tl'
# facebook_login_client_id: '9825686749820123'
# facebook_login_client_secret: 'a46c6bb6f8281c23d2b74b43008c9c46'
# github_login_client_id: '7c45c34c1de3ef937d37'
# github_login_client_secret: 'd2768efe5258cfb9ce4da11ed7ddc334bc65756b'
# twitter_login_consumer_key: 'tKPH3RViDT68PtHBMHYJuQ'
# twitter_login_consumer_secret: 'wYCtWdUSEfm8H3ES0r5rgHKeqGvYGiFDrGj4THiq3T6'
db: 'webgui.sqlite'
redis:
host: '127.0.0.1'
port: 6379
password: 'redis_password'
db: 0
注意到 admin_username 和 admin_password 两项,您 Shadowsocks-Manager 面板登录账号密码为 admin@qq.com 和 pannel_password
启动容器
为了方便小伙伴们, 我构造了以下指令,帮助您在完成 (1) 安装 Docker Engine; (2) 添加 2 项配置文件(default.yml & webgui.yml) 的基础上,可以顺利一键启动 Shadowsocks-Manager 面板 (#)。
docker run --name ssmgr -it --restart always --net=host -v ~/.ssmgr:/root/.ssmgr gyteng/ssmgr bash -c \
"(ssmgr -t s -s 127.0.0.1:6001 -m 0.0.0.0:6002 -p 123456 -r libev:aes-256-cfb &) && \
(ssmgr -c /root/.ssmgr/default.yml &) && \
(ssmgr -c /root/.ssmgr/webgui.yml &) && \
tail -f /dev/null"
我解决了参考[1]最后提及的问题,方便大家一键启动镜像容器,无需进入容器再进行启动操作。
参数
1. docker run: 启动新的 Docker 容器。
2. --name ssmgr: 为容器指定名称 ssmgr。
3. -it: 分配一个交互式终端。
4. --restart always: 容器停止后自动重启。
5. --net=host: 容器使用宿主机的网络。
6. -v ~/.ssmgr:/root/.ssmgr: 将宿主机的 ~/.ssmgr 目录挂载到容器内。
7. gyteng/ssmgr: 指定使用的 Docker 镜像。
8. bash -c: 通过 bash 执行随后的命令。
细节
1. (ssmgr -t s -s 127.0.0.1:6001 -m 0.0.0.0:6002 -p 123456 -r libev:aes-256-cfb &): 启动 ssmgr 服务,设置监听地址、端口、密码和加密方法。
2. (ssmgr -c /root/.ssmgr/default.yml &), (ssmgr -c /root/.ssmgr/webgui.yml &): 使用 ssmgr 分别启动 default.yml 和 webgui.yml 配置文件。
3. tail -f /dev/null: 保持容器持续运行。
展示
恭喜您已经完成一大步,现在只需要访问您服务器IP地址,就可以看到登录面板。
登录注册
首页
服务器
用户
账号
设置
但您目前还无法登录,接下来需要您,在服务器上的Docker容器里安装Redis,才可以正常登录。 因为篇幅有限,请看下一篇文章:使用 Docker 安装 Shadowsocks-Manager 过程: Redis 配置(2)。
参考
[1] Goldsubmarine, “Docker部署ss,” Goldsubmarine’s Blog, November 11, 2018. [Online]. Available: https://goldsubmarine.github.io/2018/11/11/docker%E9%83%A8%E7%BD%B2ss/. [Accessed: November 24, 2023].