咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
IP集合-ipset
概述
ipset 是一个 Linux 内核功能,它允许你创建、管理和操作 IP 集合(IP sets)。IP 集合是一种高效的数据结构,可以存储多个 IP 地址、网络地址或者端口号,以便于快速匹配和处理网络数据包。
ipset 工具提供了一组命令行工具,让用户可以创建不同类型的集合(比如哈希集合、有序集合等),将 IP 地址添加到这些集合中,从集合中删除地址,或者检查一个地址是否存在于集合中。它还允许用户将这些 IP 集合结合起来,方便地应用于防火墙规则或者路由策略。
这个功能强大的工具在网络安全和管理中被广泛使用,特别是在需要高效处理大量 IP 地址的情况下,如防火墙规则、流量控制和网络地址转换(NAT)等,主要还是与iptables结合使用。
ipset的安装和卸载
安装
直接使用yum安装,
yum -y install ipset
源代码编译安装
# 安装依赖
yum -y install libmnl-devel libmnl
# 官网下载源码包
wget https://www.landui.com/ipset-7.19.tar.bz2
# 解压
tar -xf ipset-7.19.tar.bz2
cd ipset-7.19/
# 编译安装
./configure --prefix=/usr/local/ipset && make && make install
卸载
使用yum方式安装的可直接yum remove ipset卸载
编译安装方式卸载:
# 先删除用到ipset的防火墙规则,再删除集合,再删除相关文件
rpm -ql ipset
/usr/sbin/ipset
/usr/share/doc/ipset-7.1
/usr/share/doc/ipset-7.1/COPYING
/usr/share/doc/ipset-7.1/ChangeLog
/usr/share/man/man8/ipset.8.gz
# 删除上述相关文件以及安装目录/usr/local/ipset的所有内容
ipset命令格式
ipset 命令的基本语法格式如下:
ipset [选项] 命令 [参数]
选项 是可选的,用于修改命令的行为或提供额外的信息。
命令 是 ipset 提供的操作,比如 create、add、del、list、save、restore、destroy 等等。
参数 是针对命令的具体设置、IP 地址或集合的名称等内容。
使用实例:
# 创建一个 IP 集合:
ipset create myset hash:ip
# 这会创建一个名为 `myset` 的 IP 集合,类型为 `hash:ip`,用于存储 IP 地址。
# 添加一个 IP 地址到集合中:
ipset add myset 192.168.1.100
# 这将 `192.168.1.100` 添加到名为 `myset` 的集合中。
# 删除一个 IP 地址从集合中:
ipset del myset 192.168.1.100
# 这将从名为 `myset` 的集合中删除 `192.168.1.100`。
# 列出集合中的所有 IP 地址:
ipset list myset
# 这会列出名为 `myset` 的集合中的所有 IP 地址。
# 将一个集合中的 IP 地址备份到文件中:
ipset save myset > myset.txt
# 这会将名为 `myset` 的集合中的内容保存到 `myset.txt` 文件中。
# 从文件中恢复 IP 集合:
ipset restore < myset.txt
# 这会从 `myset.txt` 文件中恢复 IP 集合的内容到 `myset`。
# 删除一个 IP 集合:
ipset destroy myset
# 这会删除名为 `myset` 的 IP 集合。
ipset test myset 192.168.1.100
# 这将检查名为 myset 的 ipset 集合中是否包含 192.168.1.100 这个 IP 地址。如果这个 IP 存在于集合中,命令会返回 192.168.1.100 is in set myset.;否则会返回 192.168.1.100 is NOT in set myset。
测试 主机监听8080而不监听80 47.94.58.144 telnet 80通