Administrator
发布于 2026-07-29 / 0 阅读
0
0

摄像头外联 IP 抓取方法记录(以海康为例)

一、背景与目标

公司部署了海康威视摄像头(型号DS-2CD2225XM-LGLSET),通过 4G 路由器(NAT4网络)以ISUP协议(原EHOME)接入自建平台。由于网络安全需要,防火墙需配置白名单策略,仅允许摄像头访问必要的目标IP和端口。

核心目标:精确抓取摄像头主动发起连接的所有目标IP和域名,为防火墙白名单配置提供依据。

二、环境信息

项目

说明

设备型号

HIKVISION DS-2CD2225XM-LGLSET

接入协议

ISUP(原EHOME)

网络环境

4G路由器,NAT4

摄像头IP

192.168.0.100(示例)

抓包工具

tcpdump

操作系统

Linux(CentOS/Ubuntu)

三、ISUP 协议端口说明

ISUP协议涉及以下端口,便于理解抓包结果:

端口

协议(不用关注)

用途

7660

UDP 或 TCP

ISUP 信令(设备注册、心跳)

7031

TCP

EHOME 旧版信令

8000-8002

UDP

UDP 视频流、报警数据

53

UDP

DNS 域名解析

123

UDP

NTP 时间同步

  • 该款摄像头是复用 7660 端口:信令+视频流都走 7660(ISUP 原生方案),没有上述的 8000-8002。

四、抓包操作

4.1 安装 tcpdump(如未安装)

# CentOS
yum install -y tcpdump

# Ubuntu
apt install -y tcpdump

4.2 启动抓包

# 一、进入工作目录
mkdir /root/capture/
cd /root/capture/

# 二、后台抓包,持续运行
# 方式一:抓取为一个单文件
sudo nohup tcpdump -i any -nn -s 0 -w camera_$(date +%Y%m%d).pcap \
'host 192.168.0.100' > /dev/null 2>&1 &

# 方式二:按时间切分,多个文件(推荐)
sudo nohup tcpdump -i any -nn -w camera_%Y%m%d_%H%M.pcap -G 1800 -W 6 \
'src host 192.168.0.100' > /dev/null 2>&1 &

# 在 OpenWrt 上 nohup 有问题
# 建议前台跑
# 或者: 前台跑 → Ctrl+Z → bg → disown → exit

# 三、确认抓包进程运行中
ps aux | grep tcpdump
  • host 192.168.0.100 等价于 src host 192.168.0.100 or dst host 192.168.0.100

  • -G 参数按时间切分,配合 -W 限制总文件数

  • -s 0:抓取完整数据包,但不打印;不加 -s:默认只抓取每个数据包的前 96 字节(够提取 IP/端口/协议头)。

  • -s 0 + -w file.pcap:抓完整包,存文件,屏幕不打印内容(只显示抓包统计)

  • -s 0 + -A:抓完整包,并以 ASCII 格式打印到屏幕

  • -s 0 + -X:抓完整包,并以十六进制+ASCII 格式打印到屏幕

  • 如果想看中文内容,推荐用 Wireshark 打开 .pcap 文件。Wireshark 还会自动把所有相关包按顺序拼成完整的请求/响应内容

4.3 停止抓包

tcpdump 不会自动退出。可通过 kill 手动终止或者 tcpdump 前加 timeout 600

kill -9 [PID]

五、提取目标IP与域名

5.1 打印前 20 条数据

tcpdump -r camera_20260729.pcap -nn | head -20

5.2 提取所有目标IP:端口(去重)

tcpdump -r camera_20260729.pcap -nn 2>/dev/null | \
grep -E "IP.*>.*:" | awk '{print $5}' | sort -u

5.3 提取所有DNS查询域名

没有 DNS 查询输出 = 摄像头没用域名,直接用 IP 连平台。

tcpdump -r camera_20260729.pcap -nn 2>/dev/null | \
grep "A?" | grep -oP "A\? \K[^ ]+" | sort -u


# OpenWrt 22.03(不支持 grep -P)
tcpdump -r camera_20260729.pcap -nn 2>/dev/null | \
grep " A?" | grep -o "A? [^ ]*" | awk '{print $2}' | sort -u

5.4 提取NTP时间同步服务器

很可能抓不到数据,NTP 校时请求一般发生在:

  • NTP 配置调整

  • 开机

  • 校时间隔(10分钟~几天)

tcpdump -r camera_20260729.pcap -nn 2>/dev/null | \
grep "\.123 >" | awk '{print $3}' | cut -d: -f1 | sort -u

5.5 一键生成白名单清单

echo "=== 目标IP:端口 ===" > whitelist.txt
tcpdump -r camera_20260729.pcap -nn 2>/dev/null | grep -E "IP.*>.*:" | awk '{print $5}' | sort -u >> whitelist.txt

echo "" >> whitelist.txt
echo "=== DNS查询域名 ===" >> whitelist.txt
tcpdump -r camera_20260729.pcap -nn 2>/dev/null | grep " A?" | grep -o "A? [^ ]*" | awk '{print $2}' | sort -u >> whitelist.txt

cat whitelist.txt

六、输出示例

=== 目标IP:端口 ===
192.168.1.100.7660
192.168.1.1.53
114.114.114.114.53
223.5.5.5.53
ntp.aliyun.com.123
10.0.0.50.8000

=== DNS查询域名 ===
isup.example.com
ntp.aliyun.com

七、防火墙白名单配置

将提取的IP和域名整理为以下格式提交防火墙团队:

目标地址

端口

协议(不用关注)

用途

192.168.1.100

7660

UDP 或 TCP

ISUP平台信令

192.168.1.100

8000-8002

UDP

视频流

192.168.1.1

53

UDP

DNS解析

ntp.aliyun.com

123

UDP

NTP校时

isup.example.com

7660

UDP 或 TCP

ISUP平台(域名方式)

八、注意事项

1、常规场景抓取 20~30 分钟即可(覆盖设备重启注册、心跳保活及手动触发预览产生的视频流)。如果怀疑有定时外联任务,可针对性抓取 1~2 小时核查。

2、如摄像头使用域名配置平台地址,需同时放行DNS(UDP 53)和域名对应的解析IP。

3、同一域名可能对应多个IP,需全部纳入白名单。

4、建议在不同时段多次抓包(早/中/晚),汇总去重。

5、NTP端口(UDP 123)建议放行,避免设备时间错误导致认证失败。


评论