# IP盾构机

# 简介

为了方便用户管理大量服务器,本软件提供了WEB面板用于在线管理服务器的转发规则。

目前该软件实现了以下功能:

  • 在线管理iptables规则。
  • 在线管理Brook转发规则。
  • 在线管理Gost隧道转发规则 。
  • 端口流量统计(支持每月流量重置、超量挂起)。
  • 端口流量限速。

# 服务端部署:

# 环境要求:

  1. php7.1+(推荐7.2)
  2. mysql5.6+
  3. nginx

# 1.上传源代码

上传源代码设置public文件夹为运行目录(注意,文件不包含Master文件夹)。

# 2.伪静态

Nginx伪静态配置:

location /{     
    if (!-e $request_filename) {       
        rewrite ^/(.*)$ /index.php/$1 last;       
        break;     
    }    
}
1
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>
1
2
3
4
5
6
7
8
9
10
11

# 3.定时任务

设置定时任务

安装curl

apt-get install curl -y
1

设定定时任务(5分钟执行一次)

crontab -e
1

添加定时任务,请替换网址为你自己的

*/5 * * * * curl https://网址/cron
1

# 数据库

导入数据库(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
1
2
3

选择 执行选项 《1》。

# 2.手动加定时任务(请自行替换网址和key,注意不要丢掉空格):

*/5 * * * * . /etc/profile;ip_table -url http://baidu.com -key XXXXXXX
1

主控端部署完毕,您可以手动执行该命令查看执行是否有问题:

ip_table -url http://baidu.com -key XXXXXXX
1

# Gost隧道转发

一部分是转发机(国内端),另一部分是落地机(国外端)。

# 1.转发机初始化

同iptable、Brook转发。

# 2.落地机初始化(请注意开放防火墙哦)

wget http://cdn-hk.taoluyun.cc/ip_control.sh && chmod +x ip_control.sh

bash ip_control.sh
1
2
3

选择 执行选项 《2》。

# 3.添加定时任务(请自行替换网址和key,注意不要丢掉空格)

*/5 * * * * . /etc/profile;iptables_gost -url http://baidu.com -key XXXXXXX
1

# 更新日志

# 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`;
1
2
3
4
5
6

安装包覆盖:

http://cdn-hk.taoluyun.cc/update/1.1.0-update.zip
1

删除/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`;
1
2
3

安装包覆盖:

http://cdn-hk.taoluyun.cc/update/1.0.1-update.zip
1

删除/app/runtime文件夹(清理模板缓存)

重新下载部署被控。(修复了主控访问出错,被控规则被删除的Bug)

# 常见问题

# 1.用户列表里的身份是什么意思。

答:1.超级管理员可以看到全局的规则,自由添加删除服务器 2.管理员不能添加删除服务器,只能看到和管理自己分配到的服务器 3.用户不能添加删除服务器,不能删除规则,不能修改限速大小,流量大小,流量重置日

# 2.流量是做什么的

答:统计用户流量。如果设定了上限,超额流量的规则将挂起。除非增加上限才能启用 C。落地服务器是干啥的。 GOST时需要有落地服务器,此时落地服务器的KEY,不要填写成转发机的KEY了

Last Updated: 8/7/2020, 9:29:00 PM