Linux (CentOS)Ipset数据集合
- ipset是iptables的扩展,允许你创建匹配整个地址sets(地址集合)的规则。而不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种集合比较大也可以进行高效的查找。在许多的linux发布中ipset是一个简单的安装包,可以通过linux发行版提供的yum进行安装
- 参数
参数 | 说明
list | 查看ipset所有集合 + SETNAME 查看指定ipset集合
create SETNAME [存储类型:数据类型] | 创建ipset集合
add | 追加/添加ipset集合数据
flush | 清空ipset所有集合 + SETNAME 清空指定ipset集合
destroy | 删除ipset所有集合 + SETNAME 删除指定ipset集合
save | 保存ipset所有集合 + SETNAME 保存指定ipset集合
save > [文件名称] | 将ipset所有集合持久化至指定文件,+ SETNAME 将指定
|ipset集合持久化至指定文件
restore < [文件名称] | 读取指定文件到ipset集合
- 创建ipset集合:ipset create SETNAME TYPENAME,SETNAME:集合名称(bitmap, hash, list);TYPENAME:存放方式与数据类型(ip, net, mac, port, iface)
- 例如:ipset create test_ipset hash:ip,创建一个test_ipset集合,哈希存储方式,类型是ip
- 指定多种数据类型:ipset create aa hash:ip,port
- 指定集合中添加数据:ipset add test_ipset 11.0.34.196-11.0.34.220;ipset add test_ipset 11.0.34.222,可以是IP段也可以是指定ip
- 添加多类型需要‘,’分割,例如:ipset add aa 198.0.1.2,80
- 查看ipset集合:ipset list 查看所有 ipset集合;ipset list SETNAME 查看指定ipset集合
- 检测ipset集合中是否存在该数据:ipset test SETNAME ENTYRY
- 删除ipset集合中的单条数据:ipset del SETNAME ENTYRY
- 删除与清空ipset集合
- 清空:ipset flush [SETNAME] (指定清空需要ipset集合的名称/不指定名称清空所有)
- 删除:ipset destroy [SETNAME](指定删除需要ipset集合的名称/不指定名称
- *ipset集合持久化与数据读取
- *ipset集合持久化:ipset save [SETNAME] > test_ipset (提供ipset名称为指定ipset集合持久化,不指定,将所有的ipset集合持久化到一个文件,test_ipset:临时生成文件)
- *ipset集合读取持久化:ipset restore < test_ipset (test_ipset 指定的读取持久化文件)
chenyb 随笔记录,只为方便自己学习
2021-05-11