bingoogolapple.github.io
bingoogolapple.github.io copied to clipboard
Docker 安装 ShadowSocks
安装 Docker
- 更新 yum
sudo yum update
- 通过脚本安装 Docker
curl -fsSL https://get.docker.com/ | sh
- 启动 Docker 进程
sudo service docker start
- 停止 Docker 进程
sudo service docker stop
制作 ShadowSocks 镜像之容器的基本用法
- 拉取 centos:7.2.1511 镜像
docker pull centos:7.2.1511
- 基于 centos:7.2.1511 镜像以交互式创建名叫 bga-ss 的容器
docker run -it --name bga-ss centos:7.2.1511 bash
- 临时有事停掉容器后,再次使用时可以以交互方式重新启动容器 bga-ss
docker start -i bga-ss
- 以交互方式启动容器后,通过以下步骤可以使容器在后台运行
先按 ctrl + p
再按 ctrl + q
- 进入后台运行的容器 bga-ss
docker attach bga-ss
安装 ShadowSocks
- 更新 yum
yum -y update
- 安装 pip
yum -y install python-setuptools && easy_install pip
- 安装 ShadowSocks
pip install shadowsocks
- 增加别名方便快捷启动和停止 ssserver。「vi ~/.bashrc」追加如下内容,然后「source ~/.bashrc」
alias startssserver='ssserver -m aes-256-cfb -p 8000 -k 123456 --manager-address 127.0.0.1:8001 -d start'
alias stopssserver='ssserver -d stop'
多账户管理
准备 screen
- 安装 screen
yum install screen
rpm -qa|grep screen
- 查看会话列表
screen -list
- 杀死进程
kill -9 进程号
- 清除被杀死的会话
screen -wipe
安装 Node.js
- 安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
- 安装 Node 6
nvm install 6
- 安装 ShadowSocks-Manager
npm i -g shadowsocks-manager
运行 ssmgr
- 创建 ssmgr 配置目录
mkdir /etc/ssmgr
mkdir /etc/ssmgr/db
- vi /etc/ssmgr/ss.yml
type: s
shadowsocks:
address: 127.0.0.1:8001
manager:
address: 0.0.0.0:8002
password: '123456'
db: '/etc/ssmgr/db/ss.sqlite'
- vi /etc/ssmgr/webgui.yml
type: m
manager:
address: localhost:8002
password: '123456'
plugins:
flowSaver:
use: true
user:
use: true
account:
use: true
macAccount:
use: true
group:
use: true
email:
use: true
type: 'smtp'
username: 'mail-placeholder'
password: 'mail-pwd-placeholder'
host: 'mail-host-placeholder'
webgui:
use: true
host: '0.0.0.0'
port: '8003'
site: '127.0.0.1'
db: '/etc/ssmgr/db/webgui.sqlite'
- 增加别名方便快捷启动和停止 ssmgr、webgui。「vi ~/.bashrc」追加如下内容,然后「source ~/.bashrc」
alias startssmgr='screen -dmS ssmgr ssmgr -c /etc/ssmgr/ss.yml'
alias startssmgrui='screen -dmS webgui ssmgr -c /etc/ssmgr/webgui.yml'
运行启动脚本文件来修改邮箱和域名信息和执行三个启动命令
- 「vi /usr/bin/bga-ss」添加如下内容
#!/bin/bash
sed -i "s|mail-placeholder|$MAIL|" /etc/ssmgr/webgui.yml
sed -i "s|mail-pwd-placeholder|$MAIL_PWD|" /etc/ssmgr/webgui.yml
sed -i "s|mail-host-placeholder|$MAIL_HOST|" /etc/ssmgr/webgui.yml
ssserver -m aes-256-cfb -p 8000 -k 123456 --manager-address 127.0.0.1:8001 -d start
screen -dmS ssmgr ssmgr -c /etc/ssmgr/ss.yml
screen -dmS webgui ssmgr -c /etc/ssmgr/webgui.yml
tail -f /var/log/shadowsocks.log
- 添加执行权限
chmod +x /usr/bin/bga-ss
- 退出容器
exit
- 生成第一版镜像
docker commit -m 'v1' -a 'bingoogolapple' 容器id bingoogolapple/bga-ss:v1
- 推送到 DockerHub
docker login
docker push bingoogolapple/bga-ss:v1
生成默认管理员账号
- 先用下面的命令运行后注册账号进去,通过邮箱注册管理员账号
docker run -it -v ~/Desktop/study/ss/db:/etc/ssmgr/db -p 8003:8003 -p 6000-6999:6000-6999 -e MAIL=邮箱 -e MAIL_PWD=邮箱密码 -e MAIL_HOST=邮箱服务器 --name bga-ss bingoogolapple/bga-ss:v1 bash
- 用 Navicat 修改 webgui 数据库。email 表的 to 改为 [email protected]。user 标的 username 和 email 改为 [email protected],密码改为 6feca536b869b675b9d5e805625ab691(对应的明文为 123456)
- 删除之前的容器
docker rm bga-ss
- 创建新的容器来拷贝数据库
docker run -it --name bga-ss bingoogolapple/bga-ss:v1 bash
- 拷贝数据库文件到容器中
docker cp ~/Desktop/study/ss/db/ss.sqlite bga-ss:/etc/ssmgr/db
docker cp ~/Desktop/study/ss/db/webgui.sqlite bga-ss:/etc/ssmgr/db
- 注释掉 /usr/bin/bga-ss 中的这三行
- 退出容器
exit
- 生成第二版镜像
docker commit -m 'v2' -a 'bingoogolapple' 容器id bingoogolapple/bga-ss:v2
- 推送到 DockerHub
docker push bingoogolapple/bga-ss:v2
用法
提示
- 提示1:「管理员账号为:[email protected],默认密码为:123456,登录后请修改默认密码」
- 提示2:「必须暴露容器的 8003 端口,也就是 web 访问的端口」「6660-6680 可以改成你自己想要的,但不能是 8000、80001、80002,80003」
第一次运行时的执行步骤
拉取镜像
docker pull bingoogolapple/bga-ss:v2
基于 bga-ss bingoogolapple/bga-ss:v2 镜像以交互式创建名叫 bga-ss 的容器
docker run -it -p 8003:8003 -p 6660-6680:6660-6680 --name bga-ss bingoogolapple/bga-ss:v2 bash
运行 bga-ss
bga-ss
通过以下步骤可以使容器在后台运行
先按 ctrl + p
再按 ctrl + q
容器停止了重新运行时的执行步骤
以交互方式重新启动之前创建的容器 bga-ss
docker start -i bga-ss
运行 bga-ss
bga-ss
通过以下步骤可以使容器在后台运行
先按 ctrl + p
再按 ctrl + q
Dockerfile 方式
https://github.com/bingoogolapple/bga-ss-docker