Linux (CentOS)Ipset

本文介绍Linux下Ipset工具的基本使用方法,包括如何创建、管理地址集合,以及如何实现高效的数据匹配。涵盖Ipset的安装、参数配置、数据操作及持久化等关键步骤。

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.220ipset 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

CentOS 7 系统中,如果无法获取 IP 地址,通常会表现为网卡接口状态为 `DOWN`,并且没有分配 IP 地址。这种情况可能会影响网络连接,导致系统无法访问外部网络或远程连接失败。以下是解决此类问题的详细方法: 1. **检查网卡状态** 使用命令 `ip a` 查看网卡接口状态。如果发现网卡(如 `ens33`)处于 `DOWN` 状态,说明网卡未启动。可以通过以下命令手动启动网卡: ```bash ip link set ens33 up ``` 如果网卡启动后仍然无法获取 IP 地址,可以尝试重启 `NetworkManager` 服务: ```bash systemctl restart NetworkManager ``` 2. **检查 NetworkManager 状态** 如果 `NetworkManager` 服务未能正常启动,可以使用 `nmcli n` 命令查看其状态。如果显示为 `disabled`,需要启用它: ```bash nmcli n on ``` 然后尝试重新启动网卡: ```bash nmcli c up ens33 ``` 3. **设置 NetworkManager 开机自启** 如果每次重启系统后 `NetworkManager` 都处于关闭状态,可以设置其开机自启: ```bash systemctl enable NetworkManager.service ``` 4. **检查网络配置文件** 如果网卡配置为动态获取 IP 地址(DHCP),但仍然无法获取 IP,可以检查网卡配置文件 `/etc/sysconfig/network-scripts/ifcfg-<网卡名称>`。确保配置文件中包含以下内容: ``` BOOTPROTO=dhcp ONBOOT=yes ``` 如果配置文件中设置为静态 IP 地址(`BOOTPROTO=static`),则需要手动配置正确的 IP 地址、子网掩码、网关和 DNS 信息。可以使用 `vi` 命令编辑配置文件: ```bash vi /etc/sysconfig/network-scripts/ifcfg-ens33 ``` 5. **重启网络服务** 修改配置文件后,重启网络服务以应用更改: ```bash systemctl restart network ``` 6. **检查虚拟机网络设置** 如果是在虚拟机环境中运行 CentOS 7,需要确保虚拟机的网络设置正确。例如,在 VMware 中,确认虚拟机的网络适配器设置为 `NAT` 或 `桥接模式`,以确保虚拟机可以访问外部网络。 通过以上步骤,通常可以解决 CentOS 7 中无法获取 IP 地址的问题。如果问题仍然存在,建议进一步检查网络环境或系统日志以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值