在日常运维工作中,许多朋友在银河麒麟系统上想要进行网络数据抓包分析时,常常遇到Wireshark打不开、提示“权限拒绝”甚至直接找不到命令的情况。这其实不光是软件安装与否的问题,背后涉及内核模块、用户组授权和dumpcap权限这三重机制,缺一不可。下面我们就将整个流程拆解开来,详细说清楚。

确认系统类型与包管理器
第一步必须搞清楚你的麒麟系统底层是Debian系还是RHEL系——命令用错会导致依赖关系混乱,无法正常安装。
执行 cat /etc/os-release | grep -E "(ID|VERSION_CODENAME)"。如果输出里看到 ID=kylin 且 VERSION_CODENAME=focal 或类似Ubuntu的代号,那就是APT路线;如果出现 ID=centos、ID=rhel 或 VERSION_CODENAME=anapur,那就采用YUM/DNF路线。
特别提醒:如果系统处于断网环境,千万不要尝试在线安装流程,请直接跳到后面的离线安装部分。否则apt update或yum执行后会在“无法连接到源”上卡住很长时间,白白浪费排查时间。
APT系系统(麒麟V10 SP1/SP2 Debian内核)在线安装
方法一:标准流程
① 更新软件源索引:sudo apt-get update
② 安装主程序和图形界面:sudo apt-get install wireshark wireshark-qt -y
③ 安装过程中弹出的蓝色配置窗口,一定要用方向键选中【是】,再按回车确认。这一步直接决定普通用户能否抓包,选“否”的话,后续所有权限配置都无效。
④ 验证dumpcap组件是否存在且可执行:ls -l /usr/bin/dumpcap,权限位应该包含x(比如-rwxr-xr-x)。
方法二:补救未弹窗场景
如果第③步没有出现配置窗口,请立即执行:
sudo dpkg-reconfigure wireshark-common → 方向键选【是】 → Tab键切换到确定 → 回车。
这步本质上是在重写/etc/group里wireshark组的启用状态,如果跳过它,用户永远无法加入wireshark组。
YUM/DNF系系统(麒麟SP2/SP3 CentOS/RHEL内核)在线安装
第一步:安装基础包
sudo yum install wireshark wireshark-qt -y
如果提示GPG密钥错误,请立即执行:
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
第二步:检查主程序路径
which wireshark,如果返回空,说明binfmt_misc注册异常,需要重启二进制格式支持:
sudo systemctl restart systemd-binfmt
第三步:强制启用非root抓包
YUM系默认不会创建wireshark用户组,必须手动添加:
sudo groupadd wireshark && sudo usermod -aG wireshark $USER
然后务必完全退出当前会话(关掉所有终端并注销图形界面),否则组权限不会生效。
断网环境离线安装(Deb包方式)
① 解压安装包:tar zxvf wireshark.tar.gz
② 进入目录:cd wireshark
③ 批量安装所有deb文件:sudo dpkg -i *.deb
④ 修复依赖断裂:sudo apt-get install -f -y
这一步绝对不能省略——离线包常常缺少libpcap0.8、libsmi2ldbl等底层库,dpkg只负责解包而不处理依赖关系,-f参数会把缺失的依赖自动补全。
ARM64平台专用离线安装
ARM架构不能直接使用x86_64的.deb包,否则dpkg会报错“architecture mismatch”。
正确做法是:下载ARM专用包wireshark_ARM.tar.gz → 解压 → cd wireshark_ARM → sudo dpkg --force-architecture -i *.deb
需要警惕的是:--force-architecture是高危参数,只有在确认包确实是ARM64编译且系统确实是ARM64时才可以使用。如果x86_64机器误用这个参数,会导致系统库损坏,得不偿失。
安装后必做的权限配置
无论采用哪种安装方式,只要跳过这一步,普通用户点击网卡一定会弹出“Permission denied”:
① 将当前用户加入wireshark组:sudo usermod -aG wireshark $USER
② 设置dumpcap能力位:sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
③ 检查是否生效:getcap /usr/bin/dumpcap,输出应包含“cap_net_raw+eip cap_net_admin+eip”
④ 注销并重新登录——这是硬性要求,组成员变更不会热加载,不重启会话,之前的配置等于白做。
