Files
DenyIP/README.md
2024-12-27 14:40:33 +08:00

124 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DenyIP
## 概述
`DenyIP` 是一个用于保护大陆服务器免受非本地业务访问的防火墙工具。通过结合 `libpcap``libipset``ip2region``Go ipquery`该工具能够高效地捕获网络数据包、提取源IP地址、进行地理位置判断并将非大陆IP地址添加到IP黑名单中从而严格限制非大陆来源的访问。
## 特点
- **数据包捕获**:使用 `libpcap` 捕获网络数据包提取源IP地址。
- **IP黑名单管理**:使用 `libipset` 管理IP黑名单高效存储和匹配IP地址。
- **初步IP地域判定**:使用 `ip2region` 库进行初步的IP地理位置判断。
- **精确IP地理位置判断**:使用 `Go ipquery` 进一步精准识别IP地理位置。
- **灵活的命令行选项**:支持守护进程模式、指定网络接口、启用/禁用Iptables规则等。
## 安装
### 依赖项
在 Debian 系统上安装所需的开发工具和库:
```bash
sudo apt update
sudo apt install build-essential golang
sudo apt install libpcap-dev libcap-dev libipset-dev libsystemd-dev
```
在 Centos 7 系统上安装所需的开发工具和库:
```bash
yum groupinstall "Development Tools" -y
yum install ipset-devel libattr-devel libpcap-devel libcap-devel
```
### 下载项目
克隆项目仓库:
```bash
git clone https://git.aixiao.me/DenyIP.git
cd DenyIP
```
## 构建
编译项目:
```bash
cd DenyIP
make clean
make ipquery
make
```
## 使用方法
### 命令行选项
```bash
root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP# ./denyip -h
DenyIP version 0.2
拒绝Linux服务器非大陆IP工具
MAIL: aixiao@aixiao.me
Date: 20241024
Usage: denyip [-d] [-i <interface>] [-s <start|stop>] [-h|-?]
-d --daemon Daemon mode
-i --interface interface (default eth0)
-l print iptables rule
-s --signal regular signal (default start|stop)
start Enable Iptables rule
stop Disable Iptables rule
-h|-? Help Information
root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP#
```
### 示例命令
- **启动守护进程**
```bash
./denyip -d -i eth0
```
- **启用Iptables规则**
```bash
./denyip -s start
```
- **禁用Iptables规则**
```bash
./denyip -s stop
```
- **查看帮助信息**
```bash
./denyip -h
```
- **关闭守护进程**
```bash
killall -15 denyip
```
## 贡献
欢迎贡献代码和提出改进建议!请通过 Pull Request 或 Issue 的方式提交。
## 联系信息
- **邮箱**<aixiao@aixiao.me>
- **日期**20241024
## 许可证
本项目遵循 GNU 许可证,详情参见 [LICENSE](LICENSE) 文件。
---
希望这个 `README.md` 文件能够帮助您更好地介绍和使用 `DenyIP` 项目。如果有任何其他需求或修改,请随时告知。