2025-07-25 14:14:11 +08:00
2025-04-24 10:01:18 +08:00
2025-01-16 16:32:39 +08:00
2025-07-23 14:27:02 +08:00
2025-04-24 10:01:18 +08:00
2024-11-04 17:06:05 +08:00
2025-07-25 14:14:11 +08:00
2025-07-23 15:50:53 +08:00
2025-04-23 11:41:06 +08:00
2025-04-23 11:41:06 +08:00
2025-07-23 14:27:02 +08:00
2025-04-23 11:41:06 +08:00
2025-07-25 14:14:11 +08:00
2024-10-29 14:34:39 +08:00
2025-07-25 14:14:11 +08:00
2024-12-27 14:40:33 +08:00

DenyIP

概述

DenyIP 是一个用于保护大陆服务器免受非本地业务访问的防火墙工具。通过结合 libpcaplibipsetip2regionGo ipquery该工具能够高效地捕获网络数据包、提取源IP地址、进行地理位置判断并将非大陆IP地址添加到IP黑名单中从而严格限制非大陆来源的访问。

特点

  • 数据包捕获:使用 libpcap 捕获网络数据包提取源IP地址。
  • IP黑名单管理:使用 libipset 管理IP黑名单高效存储和匹配IP地址。
  • 初步IP地域判定:使用 ip2region 库进行初步的IP地理位置判断。
  • 精确IP地理位置判断:使用 Go ipquery 进一步精准识别IP地理位置。
  • 灵活的命令行选项:支持守护进程模式、指定网络接口、启用/禁用Iptables规则等。

安装

依赖项

在 Debian 系统上安装所需的开发工具和库:

sudo apt update
sudo apt install build-essential golang
sudo apt install libpcap-dev libcap-dev libipset-dev libsystemd-dev

在 Centos 7 系统上安装所需的开发工具和库:

yum groupinstall "Development Tools" -y
yum install ipset-devel libattr-devel libpcap-devel libcap-devel

下载项目

克隆项目仓库:

git clone https://git.aixiao.me/DenyIP.git
cd DenyIP

构建

编译项目:

cd DenyIP
make clean
make ipquery
make

使用方法

命令行选项

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#

示例命令

  • 启动守护进程

    ./denyip -d -i eth0
    
  • 启用Iptables规则

    ./denyip -s start
    
  • 禁用Iptables规则

    ./denyip -s stop
    
  • 查看帮助信息

    ./denyip -h
    
  • 关闭守护进程

    killall -15 denyip
    

贡献

欢迎贡献代码和提出改进建议!请通过 Pull Request 或 Issue 的方式提交。

联系信息

许可证

本项目遵循 GNU 许可证,详情参见 LICENSE 文件。


希望这个 README.md 文件能够帮助您更好地介绍和使用 DenyIP 项目。如果有任何其他需求或修改,请随时告知。

Description
No description provided
Readme GPL-2.0 67 MiB
2024-11-04 17:17:55 +08:00
Languages
C 90.2%
CMake 3.4%
M4 3%
Shell 1.5%
Go 1.2%
Other 0.7%