一个端口转发面板Docker:极光面板

手上的中转机多了,就需要一款群控的面板了。其实需求也很简单,能集中统一管理各中转机的iptables设置就好。目前,活跃的端口转发群控面板有极光面板闲蛋面板。对比之后,因为我实在无法接受ACG风格的UI,故选择了简洁的极光。

极光面板由在Google工作的Lei Shi开发,目前已更新到Ver.0.12.1,已支持iptables、socat、gost、ehco、v2ray、brook、wstunnel、shadowsocks、tinyPortMapper、Prometheus Node Exporter等端口功能,使用了近一个月,发现功能上和体验上足矣。

极光面板的原理就是使用被控机的账号SSH登录被控机,然后远程进行相关配置。被控机需使用 systemd,且 iptables 功能只支持安装了 iptables 的服务器,gost 只支持 linux x86 系统。 暂时只在 CentOS 7+,Debian 9+,Ubuntu 18+上测试通过。

 

一、安装Docker和Docker Compose

1、安装Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
systemctl enable --now docker # 启动并设置开机自启docker

 

2、安装Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 如果/usr/local/bin不在PATH里
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

 

二、生成SSH密钥

如果你是直接用账号密码SSH登录被控,此项可以不用配置

ssh-keygen -t rsa -b 4096 -C "[email protected]"
# 跳过设置passphase即可

 

然后还需要将~/.ssh/id_rsa.pub里面的内容复制到被控机的~/.ssh/authorized_keys。
默认挂载~/.ssh/id_rsa作为连接服务器的密钥,如使用其他密钥或者不使用密钥可以删除

- $HOME/.ssh/id_rsa:/app/ansible/env/ssh_key

 

三、安装面板

1、拉取安装文件

mkdir -p aurora
cd aurora
wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml -O docker-compose.yml

 

2、配置安装文件

按照官方文档,处于安全性考虑,建议修改

#POSTGRES的用户名和密码:POSTGRES_USER、POSTGRES_PASSWORD
#POSTGRES相应的链接:DATABASE_URL
#移除:ENABLE_SENTRY: 'yes'
#另外,我建议修改端口号为一个很不常见的随机端口号。

 

3、安装面板

docker-compose up -d

如果面板机是国内机,这个过程可能会很长,毕竟有个1.4GB的backend Docker镜像。

 

4、初始化

如果是第一次安装,则需要创建管理员用户

docker-compose exec backend python app/initial_data.py

 

四、备份和还原

1、备份

如果面板机需要迁移,则需要备份数据库

cd aurora
docker-compose exec postgres pg_dump -d aurora -U [配置安装文件时修改的POSTGRES用户名] -c > data.sql

 

2、还原

cd aurora
# 首先先把所有服务停下
docker-compose down
# 只启动数据库服务
docker-compose up postgres
# 在另外一个窗口,执行数据恢复
docker-compose exec -T postgres psql -d aurora -U [配置安装文件时修改的POSTGRES用户名] < data.sql
# 然后正常启动所有服务
docker-compose up -d

 

五、升级

cd aurora
wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml -O docker-compose.yml
docker-compose pull && docker-compose down --remove-orphans && docker-compose up -d

 

六、排错

我在使用过程中,碰到了如下两个问题,遂记录:

1、中转机重启后iptables记录丢失

这个问题,貌似在Ver0.12.1已经不存在了,但官方群有给出解决方案,需要登录中转机运行如下代码:

wget https://raw.githubusercontent.com/Aurora-Admin-Panel/backend/main/ansible/project/files/iptables-restore-centos.service -O /etc/systemd/system/iptables-restore.service
systemctl enable iptables-restore

 

如果国内中转机无法顺畅访问Github,我建议手动下载iptables-restore-centos.service,并上传到/etc/systemd/system/文件夹。

2、源于堆栈卷的问题

由于Ver.0.12版本引入了卷机制,为:deploy_app-data和deploy_db-data,在重装时,我出现了无法顺利导入恢复数据的问题,重装前,删除堆栈对应的卷即可。

 

七、界面

借用几张官方截图,以便大家有直观认知。

服务器管理页面 

修改/添加服务器 

服务器端口管理页面 

添加/编辑端口 

端口分配页面 

端口设置 iptables 

端口设置 gost 

 

八、定时备份@2021.04.30

由于最近入手了不少新机器,折腾频率有点高,遂琢磨着弄个定时备份,方便后续使用,记录如下:

1、创建定时脚本

#如:
nano portgo_databackup.sh

 

2、填写脚本内容

#!/bin/bash
cd 【安装极光面板的目录】
rm -rf data.sql #删除原有备份
docker-compose exec postgres pg_dump -d aurora -U aurora -c > data.sql #运行备份命令
cp -rf 【安装极光面板的目录】/data.sql 【备份目录】/data_`date '+%Y.%m.%d_%H.%M.%S'`.sql #将备份文件重命名为带时间戳的文件,并拷贝到已挂载的GD盘

 

请修改【】里的内容

 

3、赋予权限

chmod +x ./portgo_databackup.sh

 

4、测试一下

./portgo_databackup.sh

 

理论上不会报错。

 

5、设置定时任务

nano /etc/crontab

 

在最后一行填写

30 6 * * * root bash /root/portgo_databackup.sh

 

意思就是每天6:30执行一次备份,关于crontab的时间表达式,也可以用这个工具来快速生成。

 

打完收工!

 

阅读剩余
THE END