HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    tcp抓包命令(tcp 抓包)

    發(fā)布時(shí)間:2023-03-19 05:36:49     稿源: 創(chuàng)意嶺    閱讀: 62        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于tcp抓包命令的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    tcp抓包命令(tcp 抓包)

    一、網(wǎng)絡(luò)抓包原理

    本文以App作為例子,實(shí)際應(yīng)用不限于App范圍。

    大部分場(chǎng)合都可以通過程序調(diào)試來定位問題,但有些場(chǎng)景使用抓包來定位接口問題更準(zhǔn)確、更方便,如以下場(chǎng)景:

    要實(shí)現(xiàn)對(duì)App的網(wǎng)絡(luò)數(shù)據(jù)抓包,需要監(jiān)控App與服務(wù)器交互之間的網(wǎng)絡(luò)節(jié)點(diǎn),監(jiān)控其中任意一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(網(wǎng)卡),獲取所有經(jīng)過網(wǎng)卡中的數(shù)據(jù),對(duì)這些數(shù)據(jù)按照網(wǎng)絡(luò)協(xié)議進(jìn)行解析,這就是抓包的基本原理。

    但是中間網(wǎng)絡(luò)節(jié)點(diǎn),不受我們控制,所以基本無法實(shí)現(xiàn)抓包的,只能在客戶端和服務(wù)端進(jìn)行抓包。

    通常我們監(jiān)控本地網(wǎng)卡數(shù)據(jù),如下圖:

    本地網(wǎng)絡(luò) 指的是WIFI的路由,如果直接抓路由器的包還是比較麻煩的,因此我們會(huì)在 手機(jī) 和 本地路由 之間加一層 代理服務(wù) ,這樣只要抓代理服務(wù)的網(wǎng)絡(luò)數(shù)據(jù)即可:

    雖然在 手機(jī) 側(cè)也可實(shí)現(xiàn)抓包,但和 本地路由 一樣,抓包比較麻煩,如果不是沒有辦法,盡量還是不在手機(jī)側(cè)抓包。但是有一種情況必須在手機(jī)端抓包,那就是在4G網(wǎng)絡(luò)情況下:

    4G網(wǎng)絡(luò)狀態(tài)下如何抓包,以及它的劣勢(shì),我們后面章節(jié)再細(xì)講。

    抓包實(shí)際上是分析網(wǎng)絡(luò)協(xié)議的一種過程,盡管繁瑣的細(xì)節(jié)勞動(dòng)都讓抓包工具做了,但我們還是需要了解下基礎(chǔ)的網(wǎng)絡(luò)協(xié)議,好幫助我們更好的分析問題。

    首先需要了解下經(jīng)典的OSI七層網(wǎng)絡(luò)模型,以及每層的作用,其次對(duì)TCP、HTTP協(xié)議簡(jiǎn)單了解。

    HTTPS是基于HTTP協(xié)議的一種改進(jìn),在 TCP之上 的會(huì)話層增加安全處理。對(duì)于應(yīng)用層來說,HTTPS和HTTP沒有什么不同,也就是說,HTTPS是保證網(wǎng)絡(luò)傳輸?shù)陌踩裕瑢?duì)業(yè)務(wù)數(shù)據(jù)無侵入。

    簡(jiǎn)化理解大概是這個(gè)樣子:

    SSL和TLS是保證安全傳輸?shù)膮f(xié)議,包括證書認(rèn)證、加解密和數(shù)字簽名。

    項(xiàng)目中HTTPS的鏈路:

    因此,客戶端與后臺(tái),編寫網(wǎng)絡(luò)接口時(shí),不需要關(guān)心SSL或TLS,按照HTTP協(xié)議處理即可。

    既然HTTPS在網(wǎng)絡(luò)傳輸是經(jīng)過加密的,那么抓包抓到的數(shù)據(jù)就是密文,不經(jīng)過解密是無法看到報(bào)文的。針對(duì)這個(gè)問題,如上圖WIFI環(huán)境下設(shè)置代理的方式可以解決,具體思路是:

    所以整個(gè)網(wǎng)絡(luò)鏈路依然是HTTPS在傳輸,但代理服務(wù)自己可以獲取到明文數(shù)據(jù)。

    比較常用的抓包工具大概有4個(gè),主要用作互補(bǔ),配合使用基本所有平臺(tái)、所有抓包需求都能滿足:

    需要說明的是,tcpdump可將數(shù)據(jù)保存成文件,直接用wireShark打開分析,針對(duì)后臺(tái)或手機(jī)抓包使用起來十分方便。

    幾個(gè)工具間的使用關(guān)系:

    為什么要真機(jī)抓包?必定是沒有辦法設(shè)置代理服務(wù)了,如4G網(wǎng)絡(luò)情況下直接和移動(dòng)基站鏈接,沒法設(shè)置代理服務(wù)。凡是非4G網(wǎng)絡(luò)狀態(tài)下,都不建議真機(jī)抓包。

    iOS 5后,apple引入了RVI remote virtual interface的特性,它只需要將iOS設(shè)備使用USB數(shù)據(jù)線連接到mac上,然后使用rvictl工具以iOS設(shè)備的UDID為參數(shù)在Mac中建立一個(gè)虛擬網(wǎng)絡(luò)接口rvi,就可以在mac設(shè)備上使用tcpdump,wireshark等工具對(duì)創(chuàng)建的接口進(jìn)行抓包分析。

    具體步驟:

    android是linux系統(tǒng),和后臺(tái)一樣可以使用tcpdump命令來抓包,但是需要root權(quán)限,因?yàn)橐话闶謾C(jī)系統(tǒng)不帶有抓包命令 tcpdump ,需要自行安裝。

    安裝tcpdump:

    使用tcpdump:

    這是就已經(jīng)進(jìn)入抓包狀態(tài),手機(jī)所有的網(wǎng)絡(luò)請(qǐng)求都會(huì)被捕獲,并保存到capture文件中。

    導(dǎo)出capture文件:

    原文: 網(wǎng)絡(luò)抓包

    二、應(yīng)用抓包之Fiddler抓包

    tcpdump抓包: 應(yīng)用抓包之tcpdump命令抓包

    1.抓包工具Fiddler(Windows版)

    2.真機(jī)一個(gè)

    3.預(yù)抓包的App一個(gè)(我們以app抓包為例)

    Fiddler是位于客戶端和服務(wù)器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和服務(wù)器之間的所有 HTTP請(qǐng)求,可以針對(duì)特定的HTTP請(qǐng)求,分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)、調(diào)試web應(yīng)用、修改請(qǐng)求的數(shù)據(jù),甚至可以修改服務(wù)器返回的數(shù)據(jù),功能非常強(qiáng)大,是web調(diào)試的利器。

    1.打開Fiddler

    2.設(shè)置端口(Tools->Fiddler Options)使用默認(rèn)就行

    使用1024之后的,0-1023周知端口,一般都是系統(tǒng)和一些與設(shè)置的端口,端口1024到49151為注冊(cè)端口,分配給用戶進(jìn)程或應(yīng)用程序

    既然是代理,客戶端的所有請(qǐng)求都要先經(jīng)過Fiddler

    3.讓手機(jī)和PC處于同一網(wǎng)絡(luò)下(連同一WiFi或同一網(wǎng)段即可)

    查看PC的IP地址

    4.到開手機(jī)WiFi設(shè)置

    進(jìn)入WiFi詳細(xì)信息(不同手機(jī)選項(xiàng)可能不同)

    手動(dòng)設(shè)置代理(用的手機(jī)在高級(jí)設(shè)置里)

    主機(jī)名就是PC的IP

    端口就是在Fiddler設(shè)置的端口

    5.刷新一下app要抓數(shù)據(jù)的頁面

    不小心抓了個(gè)用WebView的app,尷尬兩秒鐘

    發(fā)現(xiàn)這個(gè)app會(huì)獲取手機(jī)歸屬地,位置信息等

    成功抓到數(shù)據(jù)

    瀏覽器請(qǐng)求一下

    6.新建個(gè)文本文件,保存抓到的接口。例如:

    7.一個(gè)個(gè)界面去抓,分析出接口

    抓完記得把手動(dòng)設(shè)置代理關(guān)了,不然有可能上網(wǎng)很慢。

    三、組播v3 怎么tcpdump抓包

    你好,我使用的是ubuntu 14.04(虛擬機(jī)),可以打開終端輸入tcpdump命令抓包。我經(jīng)常使用的命令是tcpdump -i eth0 -w web.pcap。i參數(shù)表示網(wǎng)卡,w參數(shù)表示將抓包結(jié)果保存到pcap文件中,這樣接下來可以使用wireshark查看。如果還想明白別的參數(shù)的意義的話,可以輸入tcpdump -h,就顯示幫助信息了。還有,要使用tcpdump,最好切換到root用戶(sudo命令)。

    再復(fù)制一部分別的的用法,也可以自己再搜索一下:

    -A 以ASCII碼方式顯示每一個(gè)數(shù)據(jù)包(不會(huì)顯示數(shù)據(jù)包中鏈路層頭部信息). 在抓取包含網(wǎng)頁數(shù)據(jù)的數(shù)據(jù)包時(shí), 可方便查看數(shù)據(jù)(nt: 即Handy for capturing web pages).

    -c count

    tcpdump將在接受到count個(gè)數(shù)據(jù)包后退出.

    -C file-size (nt: 此選項(xiàng)用于配合-w file 選項(xiàng)使用)

    該選項(xiàng)使得tcpdump 在把原始數(shù)據(jù)包直接保存到文件中之前, 檢查此文件大小是否超過file-size. 如果超過了, 將關(guān)閉此文件,另創(chuàng)一個(gè)文件繼續(xù)用于原始數(shù)據(jù)包的記錄. 新創(chuàng)建的文件名與-w 選項(xiàng)指定的文件名一致, 但文件名后多了一個(gè)數(shù)字.該數(shù)字會(huì)從1開始隨著新創(chuàng)建文件的增多而增加. file-size的單位是百萬字節(jié)(nt: 這里指1,000,000個(gè)字節(jié),并非1,048,576個(gè)字節(jié), 后者是以1024字節(jié)為1k, 1024k字節(jié)為1M計(jì)算所得, 即1M=1024 * 1024 = 1,048,576)

    -d 以容易閱讀的形式,在標(biāo)準(zhǔn)輸出上打印出編排過的包匹配碼, 隨后tcpdump停止.(nt | rt: human readable, 容易閱讀的,通常是指以ascii碼來打印一些信息. compiled, 編排過的. packet-matching code, 包匹配碼,含義未知, 需補(bǔ)充)

    -dd 以C語言的形式打印出包匹配碼.

    -ddd 以十進(jìn)制數(shù)的形式打印出包匹配碼(會(huì)在包匹配碼之前有一個(gè)附加的'count'前綴).

    -D 打印系統(tǒng)中所有tcpdump可以在其上進(jìn)行抓包的網(wǎng)絡(luò)接口. 每一個(gè)接口會(huì)打印出數(shù)字編號(hào), 相應(yīng)的接口名字, 以及可能的一個(gè)網(wǎng)絡(luò)接口描述. 其中網(wǎng)絡(luò)接口名字和數(shù)字編號(hào)可以用在tcpdump 的-i flag 選項(xiàng)(nt: 把名字或數(shù)字代替flag), 來指定要在其上抓包的網(wǎng)絡(luò)接口.

    此選項(xiàng)在不支持接口列表命令的系統(tǒng)上很有用(nt: 比如, Windows 系統(tǒng), 或缺乏 ifconfig -a 的UNIX系統(tǒng)); 接口的數(shù)字編號(hào)在windows 2000 或其后的系統(tǒng)中很有用, 因?yàn)檫@些系統(tǒng)上的接口名字比較復(fù)雜, 而不易使用.

    如果tcpdump編譯時(shí)所依賴的libpcap庫太老,-D 選項(xiàng)不會(huì)被支持, 因?yàn)槠渲腥狈?pcap_findalldevs()函數(shù).

    -e 每行的打印輸出中將包括數(shù)據(jù)包的數(shù)據(jù)鏈路層頭部信息

    四、tcpdump 抓包命令 參數(shù)求解釋

    方法/步驟

    默認(rèn)系統(tǒng)里邊沒有安裝有tcpdump的,無法直接使用

    這里我們可以使用yum來直接安裝它

    yum install -y tcpdump

    如果忘記了這個(gè)軟件的用法,我們可以使用 tcpdump --help 來查看一下使用方法

    一般我們的服務(wù)器里邊只有一個(gè)網(wǎng)卡,使用tcpdump可以直接抓取數(shù)據(jù)包,但是這樣查看太麻煩了,所以都會(huì)添加參數(shù)來進(jìn)行獲取的。

    例如我截取本機(jī)(192.168.31.147)和主機(jī)114.114.114.114之間的數(shù)據(jù)

    tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114

    還有截取全部進(jìn)入服務(wù)器的數(shù)據(jù)可以使用以下的格式

    tcpdump -n -i eth0 dst 192.168.31.147

    或者服務(wù)器有多個(gè)IP 可以使用參數(shù)

    tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157

    我們抓取全部進(jìn)入服務(wù)器的TCP數(shù)據(jù)包使用以下的格式,大家可以參考下

    tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp

    從本機(jī)出去的數(shù)據(jù)包

    tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157

    tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp

    或者可以條件可以是or 和 and 配合使用即可篩選出更好的結(jié)果。

    以上就是關(guān)于tcp抓包命令相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    ChatGPT國內(nèi)需要梯子嗎(國內(nèi)看twitch用啥梯子)

    gptchat軟件(gp軟件中文版下載)

    itchat無法登錄(無法用itchat登錄網(wǎng)頁微信)

    奮斗的高級(jí)詞匯(形容奮斗的高級(jí)詞匯)

    小紅書營銷推廣策劃(小紅書營銷推廣策劃教案)