在對接開發海康攝像頭的使用過程中,難免會遇到從外部跟攝像頭進行網絡交互的情況,比如登錄海康攝像頭的web后臺、海康設備網絡sdk、GB/T28181信令/視頻/語音對講/報警等,一般情況下,如果我們遇到傳輸問題可以通過在跟攝像頭交互的一端進行抓包看數據是否正常,但是如果在對端往攝像頭發送udp網絡數據,不確定攝像頭是否收到的情況呢,我們怎么確定功能正常或數據正常呢?下面就講一下怎么在海康攝像頭端抓包。
海康攝像頭抓包步驟:
1、啟用ssh連接并進入調試模式
首先確保海康攝像頭的ssh功能是啟用的,怎么確定呢?兩種方式:
(1)海康設備網絡sdk配置
首先從海康的官網下載設備網絡sdk,這里以海康windows64 sdk為例,編譯成可執行文件后打開,如下圖:
(2)攝像頭web后臺配置
進入設備配置-系統-安全管理-安全服務里開啟,如果ssh相關項則可以配置,否則用(1)方法。
然后打開xshell或secureCRT等終端連接工具進入攝像頭設備內核,如下:
Enter Debug Mode.
注:攝像頭的debug模式的密碼是海康那邊生成的需要跟海康那邊要,說是一個小時一變。
cat /proc/cpuinfo 后,看arm版本,放入對應版本的tcpdump(r3/r7等),這個也可以從網上下載或者跟海康要。
怎么將pc上的tcpdump放入攝像頭中呢?下面主要講兩種方式:
2、掛載本地磁盤共享
(1) 通過freenfs.exe
如果windows的磁盤不是nfs,而是ntfs的,可以選擇將ntfs改成nfs的,否則此方式不行。
即將tcpdump放入pc中的掛載點d:\FreeNFS中。
如果是掛載在mnt下的mmc01下,命令如下
mount -t nfs -o nolock 192.168.1.3:/ /mnt/mmc01
掛載成功。
(2) 通過virtualbox的linux虛擬機
sudo apt-get update
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
mkdir /home/user/nfs
我們現在有一個明確指定用于與遠程主機共享的新目錄。但是,此目錄的所有權還不理想。我們必須將用戶所有權分配給名為nobody的系統上的用戶。我們還必須將組所有權分配給名為nogroup的系統上的組。這可以通過鍵入以下命令來完成:
sudo chown nobody:nogroup /home/user/nfs
這里需要注意的是,我們必須謹慎地改變那些特別用于共享的目錄的所有權。例如,不得更改主目錄(/ home目錄)的所有權,因為它會給主機服務器上的用戶帶來許多問題。
通過創建和分配目錄,我們現在可以深入了解NFS配置文件,以便建立這些資源的共享。為此,您必須使用以下命令以root權限在文本編輯器中打開/ etc / exports文件:
sudo vim /etc/exports
加入:
/home/user/nfs 192.168.1.6(rw,sync,no_subtree_check)
其中192.168.1.6是攝像頭ip,即掛載共享給此攝像頭訪問。
sudo exportfs -a
sudo service nfs-kernel-server start
然后在攝像頭的內核ssh中輸入:
mount -t nfs -o nolock 192.168.1.3:/home/user/nfs /mnt/mmc01
查看目錄
查看權限 ls -l
r是讀權限,w是寫權限,x是執行權限,這種方式掛載沒有x的執行權限。
則進行 chmod 777 R3tcpdump
在本路徑下無法修改權限,則
移動到home路徑下再chmod 777 R3tcpdump
確認成功后即可以抓包:
R3tcpdump -i eth0 -s0 -w test.cap
然后再將test.cap mv到 掛載點/mnt/mmc01中,在pc上即可以用類似wireshark查看test.cap。