CentOS 7怎么修改具体的系统网络接口在混杂模式下的状态

阿涛小哥_7034

阿涛小哥_7034

2026-09-05

902人浏览

原创

用ip link开关混杂模式:sudo ip link set dev eth0 promisc on启用,sudo ip link set dev eth0 promisc off关闭,ip link show eth0 | grep -o promisc验证,但重启失效。

centos 7怎么修改具体的系统网络接口在混杂模式下的状态

怎么用 ip link 开关混杂模式

CentOS 7 默认禁用 ifconfig,推荐用 ip link 控制混杂模式——它更可靠、语义清晰,且与 systemd 网络管理兼容。

确认网卡名后(比如 eth0 或 enp0s3),直接执行:

  • sudo ip link set dev eth0 promisc on —— 启用混杂模式
  • sudo ip link set dev eth0 promisc off —— 关闭混杂模式
  • 验证是否生效:ip link show eth0 | grep -o PROMISC,有输出即表示已启用

注意:ip link 修改是即时生效的,但重启后会丢失。别在生产环境只跑这一条命令就去抓包,后面没关掉会留下安全隐患。

为什么 ifconfig eth0 promisc 在 CentOS 7 上不推荐

ifconfig 是 net-tools 工具集的遗留命令,在 CentOS 7 中已被标记为废弃,部分最小化安装甚至不自带。即便能运行,它存在两个硬伤:

CentOS Linux 7.9.2009
CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离

下载
  • 无法识别现代命名规则的网卡(如 ens33、enp0s8),容易因接口名不匹配静默失败
  • 执行后不会更新 /sys/class/net/eth0/flags 的底层状态,某些内核模块(如 af_packet)可能无法感知混杂状态,导致 Suricata 或 tcpdump 抓不到广播外流量
  • ifconfig eth0 -promisc 有时根本不起作用,必须用 ip link set ... promisc off 才能真正退出

如何让混杂模式开机自动启用

临时设置对运维不可靠。若用于 Suricata 或 IDS 场景,需持久化配置。NetworkManager 是 CentOS 7 默认网络管理器,优先用它:

  • 运行:nmcli connection modify "System eth0" 802-3-ethernet.accept-all-mac-addresses yes
  • 再执行:nmcli connection modify "System eth0" ethernet.cloned-mac-address permanent
  • 最后重载:nmcli connection down "System eth0" && nmcli connection up "System eth0"

注意:连接名要和 nmcli connection show 输出一致,不是接口名;如果用的是传统 network 服务(非 NetworkManager),则需改写 /etc/sysconfig/network-scripts/ifcfg-eth0,加一行 ETHTOOL_OPTS="promisc on",但该方式兼容性差,部分驱动不认。

混杂模式开启后仍抓不到包?检查这几个点

常见现象是执行了 ip link set eth0 promisc on,tcpdump -i eth0 却只看到本机通信。原因往往不在命令本身:

  • 网卡物理链路未 UP:ip link set eth0 up 必须先执行,否则混杂无效
  • 交换机端口启用了端口安全(Port Security)或 DHCP Snooping,会丢弃非本机 MAC 的帧
  • 虚拟机场景下,VMware/VirtualBox 默认禁用混杂模式支持,需在虚拟机设置里勾选“混杂模式:全部允许”
  • 内核参数 net.bridge.bridge-nf-call-iptables 为 1 时,桥接流量可能被 iptables 丢弃,可临时设为 0 测试

真正麻烦的不是开不开,而是开了之后流量路径绕过了你监听的接口——比如用了 bond 或 VLAN 子接口,得在对应逻辑接口上单独开混杂,而不是物理口。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3148

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4929

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3789

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

446

15

centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

2023.06.16

3389

10

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.10.27

6581

23

CentOS安装部署教程精选
CentOS安装部署教程精选

CentOS安装部署专题提供 CentOS Stream 9/10 服务器安装与初始化配置教程,涵盖 ISO 镜像下载、系统分区、最小化安装、网络配置、SSH远程连接、防火墙、软件源、时区同步、用户权限和常见安装故障排查,适合新手搭建 Linux 服务器环境及运维人员快速部署 CentOS 系统。

2026.05.29

194

10

CentOS运维命令大全
CentOS运维命令大全

CentOS运维命令专题整理 CentOS 服务器日常管理常用命令,覆盖系统信息查看、用户与权限管理、服务启动停止、进程监控、端口查看、日志分析、磁盘空间清理、软件包安装、定时任务配置和故障排查方法,帮助运维人员高效完成 CentOS 系统维护工作。

2026.05.29

188

10

CentOS建站环境搭建实战教程
CentOS建站环境搭建实战教程

CentOS建站环境专题围绕服务器网站部署场景,系统讲解在 CentOS 上安装和配置 Nginx、Apache、PHP、MySQL、MariaDB、PHP-FPM、SSL证书、网站目录权限、虚拟主机、反向代理和 WordPress 等常见建站环境,适合个人站长和运维人员搭建稳定 Web 服务。

2026.05.29

223

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习

尚观Linux入门视频教程
尚观Linux入门视频教程

共22课时 | 5.4万人学习