首页主机资讯如何配置Ubuntu Sniffer以监控特定端口

如何配置Ubuntu Sniffer以监控特定端口

时间2025-11-18 09:05:04发布访客分类主机资讯浏览964
导读:在 Ubuntu 上监控特定端口的抓包配置指南 一 工具选择与准备 在 Linux 环境中,常用的“Sniffer”是 tcpdump(命令行)与 Wireshark(图形化)。两者均支持按端口、协议、主机等条件过滤。抓包通常需要 roo...

在 Ubuntu 上监控特定端口的抓包配置指南

一 工具选择与准备

  • 在 Linux 环境中,常用的“Sniffer”是 tcpdump(命令行)与 Wireshark(图形化)。两者均支持按端口、协议、主机等条件过滤。抓包通常需要 root 权限 或具备 CAP_NET_RAW 能力。为后续分析,建议准备一个测试端口(如 8080)或使用本机的 SSH 22 流量进行验证。

二 使用 tcpdump 监控特定端口

  • 安装与基础检查
    • 安装:sudo apt-get update & & sudo apt-get install tcpdump
    • 查看网卡:sudo tcpdump -D(列出可用接口,如 eth0、wlan0
  • 常用命令模板
    • 监控某接口的单一端口(示例:端口 80
      • sudo tcpdump -i eth0 port 80
    • 同时监控多个端口(示例:80443
      • sudo tcpdump -i eth0port 80 or port 443
    • 仅监控某协议的端口(示例:UDP 53 DNS)
      • sudo tcpdump -i eth0 udp and port 53
    • 指定源或目的端口
      • 源端口 8080:sudo tcpdump -i eth0src port 8080
      • 目的端口 22:sudo tcpdump -i eth0dst port 22
    • 显示更详细信息并禁用解析(便于排障)
      • sudo tcpdump -i eth0 -n -vtcp port 22
    • 将结果写入文件以便后续分析
      • 捕获:sudo tcpdump -i eth0 -w capture.pcap ‘port 80
      • 读取:tcpdump -r capture.pcap
    • 只抓取前 N 个包
      • sudo tcpdump -i eth0 -c 100port 443
    • 在所有接口上抓包
      • sudo tcpdump -i anyport 3306
  • 实用过滤表达式
    • 指定主机 + 端口:sudo tcpdump -i eth0host 192.168.1.10 and port 22
    • 排除某端口:sudo tcpdump -i eth0not port 22
    • 组合条件:sudo tcpdump -i eth0(tcp port 80 or tcp port 443) and host 10.0.0.5
  • 提示
    • 使用单引号包裹含关键字的过滤表达式,避免 shell 解释。
    • 需要查看包内容时,可加 -A(ASCII)或 -X(十六进制+ASCII)。

三 进阶分析与自动化

  • 与 Wireshark 联合分析
    • 在 Ubuntu 上抓包并保存:sudo tcpdump -i eth0 -s 0 -w traffic.pcap ‘tcp port 80
    • traffic.pcap 复制到本地,用 Wireshark 打开进行深度协议解析与图形化分析。
  • 自动化抓包与轮转
    • 示例 Bash 脚本(按时间轮转,每 60 秒一个文件,最多保留 10 个):
      • #!/usr/bin/env bash INTERFACE=“eth0” DIR=“/var/log/sniff” mkdir -p “$DIR” while true; do ts=$(date +%Y%m%d-%H%M%S) sudo tcpdump -i “$INTERFACE” -s 0 -G 60 -W 10 -w “$DIR/cap_${ ts} _%03d.pcap” ‘port 8080’ done
    • 说明:-G 60 表示每 60 秒切换文件,-W 10 表示最多保留 10 个文件,旧文件自动覆盖。
  • 简单告警示例(检测短时 SYN 洪泛)
    • sudo tcpdump -i eth0 -n ‘tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) == 0’ |
      awk ‘{ count[src]++; if (count[src] > 100) print "Possible SYN flood from " src; } ’
    • 将阈值(如 100)按实际环境调整。

四 常见问题与排障

  • 权限不足或找不到设备
    • 使用 sudo 运行;若提示 “no suitable device found”,确认接口名是否正确(用 -D 查看),并确保以 root 权限执行。
  • 抓不到包
    • 确认目标流量确实经过所选接口;必要时使用 -i any 抓取所有接口;检查是否启用了 混杂模式(多数情况下默认即可);过滤表达式是否正确(如协议与端口拼写)。
  • 输出太多刷屏
    • -n 禁用解析,使用 -c 限制包数,或将结果写入文件 -w 后用 -r 分析。
  • 需要查看包载荷
    • 使用 -A(ASCII)或 -X(十六进制+ASCII)查看内容;若仍不完整,确保使用 -s 0(抓取完整包)。

五 合规与安全提示

  • 抓包会接触到网络中的明文数据(如 HTTP、FTP、SMTP 等),请仅在拥有明确授权的网络与主机上执行,避免侵犯隐私或违反合规要求。对生产环境建议先在测试环境验证过滤表达式与存储路径,并设置合适的文件大小或轮转策略,防止磁盘被占满。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何配置Ubuntu Sniffer以监控特定端口
本文地址: https://pptw.com/jishu/749802.html
如何使用Ubuntu Sniffer进行网络安全分析 Ubuntu Sniffer在无线网络监控中的应用

游客 回复需填写必要信息