bingoogolapple.github.io icon indicating copy to clipboard operation
bingoogolapple.github.io copied to clipboard

Docker 安装 ShadowSocks

Open bingoogolapple opened this issue 7 years ago • 7 comments

安装 Docker

  • 更新 yum
sudo yum update
  • 通过脚本安装 Docker
curl -fsSL https://get.docker.com/ | sh
  • 启动 Docker 进程
sudo service docker start
  • 停止 Docker 进程
sudo service docker stop

bingoogolapple avatar Aug 12 '17 16:08 bingoogolapple

制作 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

bingoogolapple avatar Jul 10 '18 05:07 bingoogolapple

安装 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'

bingoogolapple avatar Jul 10 '18 05:07 bingoogolapple

多账户管理

准备 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'

bingoogolapple avatar Jul 10 '18 14:07 bingoogolapple

运行启动脚本文件来修改邮箱和域名信息和执行三个启动命令

  • 「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

bingoogolapple avatar Jul 10 '18 14:07 bingoogolapple

生成默认管理员账号

  • 先用下面的命令运行后注册账号进去,通过邮箱注册管理员账号
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 中的这三行 image
  • 退出容器
exit
  • 生成第二版镜像
docker commit -m 'v2' -a 'bingoogolapple' 容器id bingoogolapple/bga-ss:v2
  • 推送到 DockerHub
docker push bingoogolapple/bga-ss:v2

bingoogolapple avatar Jul 10 '18 15:07 bingoogolapple

用法

提示
  • 提示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

bingoogolapple avatar Jul 10 '18 21:07 bingoogolapple

Dockerfile 方式

https://github.com/bingoogolapple/bga-ss-docker

bingoogolapple avatar Jul 11 '18 16:07 bingoogolapple