# IP盾构机
# 简介
为了方便用户管理大量服务器,本软件提供了WEB面板用于在线管理服务器的转发规则。
目前该软件实现了以下功能:
- 在线管理iptables规则。
- 在线管理Brook转发规则。
- 在线管理Gost隧道转发规则 。
- 端口流量统计(支持每月流量重置、超量挂起)。
- 端口流量限速。
# 服务端部署:
# 环境要求:
- php7.1+(推荐7.2)
- mysql5.6+
- nginx
# 1.上传源代码
上传源代码设置public文件夹为运行目录(注意,文件不包含Master文件夹)。
# 2.伪静态
Nginx伪静态配置:
location /{
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
2
3
4
5
6
Apache伪静态(.htaccess在public文件夹下)配置:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
2
3
4
5
6
7
8
9
10
11
# 3.定时任务
设置定时任务
安装curl
apt-get install curl -y
设定定时任务(5分钟执行一次)
crontab -e
添加定时任务,请替换网址为你自己的
*/5 * * * * curl https://网址/cron
# 数据库
导入数据库(test.sql)数据库配置文件app/config.php 默认用户名密码为:admin 123456
# 被控端部署
# 环境要求
仅推荐使用debian9!
如果是centos7,请自行升级iptables版本,参考:https://www.bnxb.com/linuxserver/27546.html
# iptable、Brook转发
# 1.转发机初始化:
执行Shell:
wget http://cdn-hk.taoluyun.cc/ip_control.sh && chmod +x ip_control.sh
bash ip_control.sh
2
3
选择 执行选项 《1》。
# 2.手动加定时任务(请自行替换网址和key,注意不要丢掉空格):
*/5 * * * * . /etc/profile;ip_table -url http://baidu.com -key XXXXXXX
主控端部署完毕,您可以手动执行该命令查看执行是否有问题:
ip_table -url http://baidu.com -key XXXXXXX
# Gost隧道转发
一部分是转发机(国内端),另一部分是落地机(国外端)。
# 1.转发机初始化
同iptable、Brook转发。
# 2.落地机初始化(请注意开放防火墙哦)
wget http://cdn-hk.taoluyun.cc/ip_control.sh && chmod +x ip_control.sh
bash ip_control.sh
2
3
选择 执行选项 《2》。
# 3.添加定时任务(请自行替换网址和key,注意不要丢掉空格)
*/5 * * * * . /etc/profile;iptables_gost -url http://baidu.com -key XXXXXXX
# 更新日志
# 1.1.0 -> 1.1.3
更新内容:
- 授权域名更新。
- 修复流量重置问题。
- 更新宽松模式。
- 普通用户不能新增规则,可以修改规则。
- 修复限速与重置日不填写,导致规则添加失败的bug。
更新方式:在线更新。
# 1.0.1 -> 1.1.0
更新内容:
更新在线升级。
添加规则,添加默认值。
可选:关闭严格模式。
现在默认的就是严格模式,同IP转发到同目的地同端口,提示:同服务器禁止转发到同IP的同端口,或者关闭严格模式。 关闭严格模式:允许以上行为,但实际流量统计和限速不生效。
节点可以对应多台服务器,多的机器需要额外加网卡名和内网ip参数
(例如:ip_tables -key xxxxx -eth eth0 -ip 1.1.1.1)。
增加了纯relay转发,修复了若干bug。
修复了流量重置Bug。
数据库SQL执行:
ALTER TABLE `config`
CHANGE `key` `ip_key` varchar(255) COLLATE 'utf8_general_ci' NULL AFTER `id`,
CHANGE `value` `ip_value` text COLLATE 'utf8_general_ci' NULL AFTER `ip_key`;
ALTER TABLE `server_list`
ADD `check_mode` tinyint(255) NOT NULL DEFAULT '0' COMMENT '0:严格,1:宽松' AFTER `dynamic_enable`;
2
3
4
5
6
安装包覆盖:
http://cdn-hk.taoluyun.cc/update/1.1.0-update.zip
删除/app/runtime
文件夹(清理模板缓存)
# 1.0.0 -> 1.0.1
更新内容:
- 修复取消用户服务器权限,所有人改服务器权限都取消的bug。
- 现在超级管理员无需添加服务器权限即可管理查看所有服务器。
- 描述文字更改。
- 流量重置无需另外添加定时任务。
- 修复了主控访问出错,被控规则被删除的Bug。
- 被控文件添加了全局数组越界处理。
数据库SQL执行:
ALTER TABLE `server_rules`
CHANGE `reset_day` `reset_day` tinyint NOT NULL DEFAULT '0' AFTER `traffic_used`,
ADD `last_reset_day` tinyint NOT NULL DEFAULT '0' AFTER `reset_day`;
2
3
安装包覆盖:
http://cdn-hk.taoluyun.cc/update/1.0.1-update.zip
删除/app/runtime
文件夹(清理模板缓存)
重新下载部署被控。(修复了主控访问出错,被控规则被删除的Bug)
# 常见问题
# 1.用户列表里的身份是什么意思。
答:1.超级管理员可以看到全局的规则,自由添加删除服务器 2.管理员不能添加删除服务器,只能看到和管理自己分配到的服务器 3.用户不能添加删除服务器,不能删除规则,不能修改限速大小,流量大小,流量重置日
# 2.流量是做什么的
答:统计用户流量。如果设定了上限,超额流量的规则将挂起。除非增加上限才能启用 C。落地服务器是干啥的。 GOST时需要有落地服务器,此时落地服务器的KEY,不要填写成转发机的KEY了
← IP桌子基础版