使用 Wireshark 在 Ubuntu 22.04 上抓包分析网络流量

Ubuntu 22.04 上安装和使用 Wireshark,按照以下步骤操作:


1. 安装 Wireshark

方式 1:使用 APT 安装(推荐)

Wireshark 在 Ubuntu 的官方仓库中,你可以直接使用 apt 安装:

sudo apt update
sudo apt install wireshark -y

安装完成后,检查 Wireshark 版本:

wireshark --version

2. 运行 Wireshark

方式 1:GUI(图形界面)运行

如果你想在桌面环境下运行 Wireshark,可以在终端输入:

wireshark

或者,在应用菜单中搜索 Wireshark 并点击运行。

方式 2:CLI(命令行模式)运行

如果你想在命令行模式下运行 Wireshark(类似 tcpdump),可以使用:

tshark

例如,监听 eth0 接口的流量:

sudo tshark -i eth0

3. 让非 root 用户使用 Wireshark

默认情况下,Wireshark 需要 root 权限才能抓包。如果你想让当前用户无 root 权限也能使用 Wireshark:

sudo dpkg-reconfigure wireshark-common

选择 “Yes”,然后将当前用户加入 wireshark 组:

sudo usermod -aG wireshark $(whoami)

注销并重新登录(或者执行 newgrp wireshark 使更改生效)。


4. 启动抓包

方式 1:使用 GUI 抓包

  1. 打开 Wireshark
  2. 选择一个网络接口(如 eth0wlan0
  3. 点击 Start 开始抓包

方式 2:使用 tshark 命令行抓包

列出可用网络接口
tshark -D

示例输出:

1. eth0
2. wlan0
3. lo
抓取特定接口的流量

抓取 eth0 接口的数据:

sudo tshark -i eth0

抓取并保存到文件:

sudo tshark -i eth0 -w capture.pcap
使用过滤器

抓取 特定端口 的流量(如 443 HTTPS 流量):

sudo tshark -i eth0 port 443

抓取 特定 IP 地址 的流量:

sudo tshark -i eth0 host 192.168.1.1

5. 使用 Wireshark 过滤数据

Wireshark 支持多种过滤规则,常见的过滤器如下:

过滤器说明
ip.addr == 192.168.1.1过滤指定 IP 地址的数据包
tcp.port == 443仅查看 HTTPS(端口 443)流量
http仅显示 HTTP 流量
tls仅显示 TLS(HTTPS)流量
udp.port == 53仅显示 DNS 查询(UDP 53 端口)

6. 卸载 Wireshark

如果你不再需要 Wireshark,可以卸载:

sudo apt remove --purge wireshark -y
sudo apt autoremove -y

总结

  • 安装 Wiresharksudo apt install wireshark
  • 非 root 用户使用sudo usermod -aG wireshark $(whoami)
  • GUI 运行wireshark
  • CLI 运行tshark -i eth0
  • 常用过滤器ip.addr == x.x.x.xtcp.port == 443http
### 如何在桌面端使用 Wireshark 进行抓包 Wireshark 是一个功能强大的网络协议分析工具,能够在桌面端对网络流量进行抓包分析。以下是关于如何在桌面端使用 Wireshark 进行抓包的详细说明: #### 1. 安装与权限配置 在 Ubuntu 22.04 系统中安装 Wireshark 后,默认情况下需要 root 权限才能抓包。如果希望当前用户无 root 权限也能使用 Wireshark 抓包,可以通过以下命令重新配置权限: ```bash sudo dpkg-reconfigure wireshark-common ``` 这一步会将当前用户添加到 `wireshark` 组,从而赋予其抓包权限[^1]。 #### 2. 启动 Wireshark 并选择网卡 启动 Wireshark 图形界面后,进入“捕获”菜单,选择要抓包的网卡。如果没有看到目标网卡,可以尝试点击“Manage Interfaces”查看并勾选所需的网卡。选定网卡后,点击“Start”按钮开始抓包[^4]。 #### 3. 设置捕捉过滤器 为了减少无关数据的干扰,可以在开始抓包前设置捕捉过滤器。例如,如果只关心 TCP 流量且目标端口为 9090,则可以设置如下捕捉过滤器: ```plaintext tcp port 9090 ``` 捕捉过滤器直接作用于抓包过程,仅捕获符合条件的数据包[^3]。 #### 4. 使用显示过滤器 抓包过程中或抓包完成后,可以通过显示过滤器进一步筛选感兴趣的数据包。例如,输入以下过滤条件可查看 HTTP 流量: ```plaintext http ``` 或者,输入以下条件查看特定 IP 地址的流量: ```plaintext ip.addr == 192.168.1.100 ``` 显示过滤器的作用范围是已捕获的数据包,因此不会影响抓包效率[^3]。 #### 5. 保存抓包文件 抓包完成后,可以选择“File > Save As”将捕获的数据保存为 `.pcap` 文件,以便后续分析或分享[^4]。 #### 6. 自动化抓包(可选) 如果希望通过脚本自动化启动 Wireshark 并设置过滤规则,可以参考以下 Python 示例代码: ```python import subprocess # 定义 Wireshark 可执行文件路径和过滤规则 wireshark_path = "C:\\Program Files\\Wireshark\\wireshark.exe" # 根据实际情况修改路径 filter_rule = "tcp port 9090" # 捕捉过滤规则 # 启动 Wireshark 并设置过滤规则 try: subprocess.Popen([wireshark_path, "-f", filter_rule]) print("Wireshark 已启动并设置过滤规则。") except FileNotFoundError: print("未找到 Wireshark 可执行文件,请检查路径。") except Exception as e: print(f"启动 Wireshark 时出现错误: {e}") ``` 此代码适用于 Windows 系统,需根据实际环境调整路径和过滤规则[^2]。 --- ### 常见问题及解决方法 1. **无法找到目标网卡** 如果在 Wireshark 中没有看到目标网卡,可以尝试点击“Manage Interfaces”查看是否有隐藏的网卡,并将其勾选出来[^4]。 2. **权限不足导致无法抓包** 在 Linux 系统中,默认需要 root 权限才能抓包。通过运行 `sudo dpkg-reconfigure wireshark-common` 可以解决此问题[^1]。 3. **抓包效率低下** 如果捕获的数据量过大,建议在抓包前设置合适的捕捉过滤器,以减少无关数据的干扰[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值