docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包
起因
最近部門搭建的harbor鏡像倉庫因?yàn)楦膇p地址,導(dǎo)致使用 docker pull 命令時(shí),發(fā)生錯(cuò)誤,如下:
# docker pull 10.1.27.89:9000/vappserver/test-image:1.0 Error response from daemon: Head "http://10.1.27.89:9000/v2/vappserver/test-image/manifests/1.0": Get "http://10.1.27.240:9000/service/token?account=admin&scope=repository%3Avappserver%2Ftest-image%3Apull&service=harbor-registry": dial tcp 10.1.27.240:9000: connect: no route to host
仔細(xì)看錯(cuò)誤提示,我們?cè)L問的是“10.1.27.89:9000”,緣何卻訪問了“http://10.1.27.240:9000/service/token”?而這里的 “10.1.27.240”剛好就是harbor的舊ip地址。
由于不了解docker pull命令背后的執(zhí)行過程、以及和harbor倉庫之間的通訊協(xié)議究竟是什么(http協(xié)議嗎?)所以想要嘗試通過抓包方式查看下docker pull命令的執(zhí)行過程、以及為什么訪問了舊的ip?
網(wǎng)上檢索一番,發(fā)現(xiàn)有開源的rpcapd程序,可以結(jié)合wireshark的“遠(yuǎn)程接口”功能,在windows環(huán)境的wireshark中監(jiān)聽linux主機(jī)的網(wǎng)絡(luò)通訊。
網(wǎng)上內(nèi)容基本都需要源碼下載、本地編譯。按照慣例,先查docker鏡像,果然有現(xiàn)成可用的。
以下做一下記錄備忘。
docker-compose配置
version: '3.3'
services:
wireshark-rpcapd:
# 參考:https://github.com/rpcapd-linux/rpcapd-linux
image: soveren/rpcapd:v0.1.3
# 直接使用主機(jī)的網(wǎng)絡(luò),所以不再需要端口映射
network_mode: host
command:
- /bin/rpcapd
# 僅僅使用ipv4
- "-4"
# 不限制客戶端連接 (否則可以限定wireshark所在的ip才能連接)
- -n
# 監(jiān)聽的端口,在wireshark中,使用ip+此處的端口連接rpcapd
- "-p 2002"wireshark的配置
在wireshark中,選擇捕獲-選項(xiàng),繼續(xù)選擇“管理接口”,我們添加上遠(yuǎn)程接口,其中ip為linux主機(jī)ip,端口即docker-compose文件中command部分配置的端口,例如“2002”
由于在linux主機(jī)中啟動(dòng)了多個(gè)docker容器,創(chuàng)建了多個(gè)虛擬網(wǎng)絡(luò)接口,所以接下來對(duì)網(wǎng)絡(luò)接口的掃描稍慢。稍等片刻,我們?cè)谧詣?dòng)列出的網(wǎng)絡(luò)接口中,選擇有用的接口,如主機(jī)的網(wǎng)絡(luò)接口(例如名字ens33)、主機(jī)的環(huán)回地址接口(即127.0.0.1,名字是lo或者loopback),把剩余網(wǎng)絡(luò)接口前面的勾選項(xiàng)去掉即可。
最終如下:

然后就可以繼續(xù)愉快的玩耍了!
以上就是docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包的詳細(xì)內(nèi)容,更多關(guān)于wireshark抓包linux主機(jī)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用rpm安裝指定版本docker(1.12.6)的詳細(xì)步驟
為了防止安裝高版本的docker引發(fā)的錯(cuò)誤,需要安裝1.12.6版本的docker,下面小編給大家?guī)砹耸褂胷pm安裝指定版本的docker(1.12.6)的步驟,感興趣的朋友一起看看吧2021-08-08
在CentOS 7上安裝Docker環(huán)境的方法與注意事項(xiàng)
這篇文章主要介紹了在CentOS 7上安裝Docker環(huán)境的方法與注意事項(xiàng),需要的朋友可以參考下2016-10-10
Linux Docker運(yùn)行springboot項(xiàng)目的步驟詳解
這篇文章主要介紹了Linux Docker運(yùn)行springboot項(xiàng)目的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Docker根目錄遷移與滾動(dòng)日志設(shè)置方法
在使用docker的過程中,需要注意docker的根目錄磁盤位置,默認(rèn)情況下docker的日志是沒有限制的,所有,除了要修改根目錄位置到比較大的地方,還需要設(shè)置docker滾動(dòng)日志方式,這篇文章主要介紹了Docker根目錄遷移與滾動(dòng)日志設(shè)置方法,需要的朋友可以參考下2025-03-03
Docker安裝MySQL鏡像實(shí)戰(zhàn)分享
這篇文章主要給大家分享了Docker安裝MySQL鏡像實(shí)戰(zhàn),讓大家更深入的了解容器的使用場景,文章通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
如何解決報(bào)錯(cuò)unable to remove volume問題
這篇文章主要介紹了如何解決報(bào)錯(cuò)unable to remove volume問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
docke-cli的調(diào)試環(huán)境搭建過程
在搭建docker-cli的調(diào)試環(huán)境時(shí),遇到很多坑,通過本文講解下搭建docke-cli的調(diào)試環(huán)境的詳細(xì)方法,需要的朋友可以參考下2022-11-11

