導航:首頁 > 操作系統 > linux網卡收包

linux網卡收包

發布時間:2022-09-18 02:32:49

linux下如何抓指定IP的包

用tcpm命令可以抓指定IP的包,具體命令為:

tcpmp tcp -i eth1 -t -s 0 -c 100 and dst port 22 and src net 192.168.1.1 -w ./target.cap

參數解析:

tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型。

-i eth1 : 只抓經過介面eth1的包

-t : 不顯示時間戳

-s 0 : 抓取數據包時默認抓取長度為68位元組。加上-S 0 後可以抓到完整的數據包

-c 100 : 只抓取100個數據包

dst port 22 : 抓取目標埠是22的數據包

src net 192.168.1.0/24 : 數據包的源網路地址為192.168.1.1

-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

(1)linux網卡收包擴展閱讀

tcpmp語法格式:

tcpmp [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網路界面>][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][-w<數據包文件>][輸出數據欄位]

tcpmp主要參數說明:

1、-a 嘗試將網路和廣播地址轉換成名稱。

2、-c<數據包數目> 收到指定的數據包數目後,就停止進行傾倒操作。

3、-d 把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標准輸出。

4、-dd 把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標准輸出。

5、-ddd 把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標准輸出。

6、-e 在每列傾倒資料上顯示連接層級的文件頭。

7、-f 用數字顯示網際網路地址。

8、-F<表達文件> 指定內含表達方式的文件。

9、-i<網路界面> 使用指定的網路截面送出數據包。

10、-l 使用標准輸出列的緩沖區。

11、-n 不把主機的網路地址轉換成名字。

12、-N 不列出域名。

Ⅱ 我的linux伺服器開啟著http 服務,但是網卡的接收數據包不大,發送的數據包非常的大,怎麼解決呀

你網路是怎麼一個結構。
公網->路由->linux伺服器
公網->linux伺服器

如果中間有個路由,可以設置一下上下行流量
如果直接接到linux伺服器上,不知道你是神馬linux.iptables也可以限制上下行流量
納悶,難道你接公網中間不加台防火牆嗎?
其實最好的方法還是抓包分析一下具體在干嗎。然後過濾掉無用的包。

Ⅲ linux下怎麼指定網卡發包收包

linux下有命令可直接執行抓包的,命令如下:
1、tcpmp -vv -i ethN -s 10240 -w /root/abc.cap host ip
2、上述命令中,ethN,是你要抓的本機網卡,一般是eth0,可使用ifconfig查看使用的哪個網卡
-s 指定的是抓包數量 -w指定的是抓到的包寫到哪個位置 host ip即為抓取哪個ip 的包

Ⅳ linux socket網路編程怎樣收發包

1.send函數
ssize_t send( SOCKET s, const char *buf, size_t len, int flags );
(1)send先比較待發送數據的長度len和套接字s的發送緩沖的長度, 如果len大於s的發送緩沖區的長度,該函數返回SOCKET_ERROR;
(2)如果len小於或者等於s的發送緩沖區的長度,那麼send先檢查協議是否正在發送s的發送緩沖中的數據,如果是就等待協議把數據發送完,如果協議還沒有開始發送s的發送緩沖中的數據或者s的發送緩沖中沒有數據,那麼send就比較s的發送緩沖區的剩餘空間和len;
(3)如果len大於剩餘空間大小,send就一直等待協議把s的發送緩沖中的數據發送完;
(4)如果len小於剩餘空間大小,send就僅僅把buf中的數據到剩餘空間里(注意並不是send把s的發送緩沖中的數據傳到連接的另一端的,而是協議傳送的,send僅僅是把buf中的數據到s的發送緩沖區的剩餘空間里)。
注意:
(1)如果send函數數據成功,就返回實際的位元組數,如果send在數據時出現錯誤,那麼send就返回SOCKET_ERROR;如果send在等待協議傳送數據時網路斷開的話,那麼send函數也返回SOCKET_ERROR。
(2)要注意send函數把buf中的數據成功到s的發送緩沖的剩餘空間里後它就返回了,但是此時這些數據並不一定馬上被傳到連接的另一端。如果協議在後續的傳送過程中出現網路錯誤的話,那麼下一個Socket函數就會返回SOCKET_ERROR。(每一個除send外的Socket函數在執行的最開始總要先等待套接字的發送緩沖中的數據被協議傳送完畢才能繼續,如果在等待時出現網路錯誤,那麼該Socket函數就返回 SOCKET_ERROR)
(3)在Unix系統下,如果send在等待協議傳送數據時網路斷開的話,調用send的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。
2.recv函數
ssize_t recv(int s, char *buf, size_t len, int flags);
(1)recv先等待s的發送緩沖中的數據被協議傳送完畢,如果協議在傳送s的發送緩沖
中的數據時出現網路錯誤,那麼recv函數返回SOCKET_ERROR。
(2)如果s的發送緩沖中沒有數據或者數據被協議成功發送完畢後,recv先檢查套接字s的接收緩沖區,如果s接收緩沖區中沒有數據或者協議正在接收數 據,那麼recv就一直等待,直到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收緩沖中的數據到buf中。(注意:協議接收到的數據可能大於buf的長度,所以 在這種情況下要調用幾次recv函數才能把s的接收緩沖中的數據完。recv函數僅僅是數據,真正的接收數據是協議來完成的)
(3)recv函數返回其實際的位元組數。如果recv在時出錯,那麼它返回SOCKET_ERROR;如果recv函數在等待協議接收數據時網路中斷了,那麼它返回0。
注意:在Unix系統下,如果recv函數在等待協議接收數據時網路斷開了,那麼調用recv的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。
Q&A:
(1)兩次send一次recv會發生什麼?
一次性讀取兩次send的內容。
(2)recv之後,接收緩沖區會被清空嗎?
是的。

Ⅳ linux系統,使用無線網卡的時候可以收到包,但是發不出去包。

檢查一下ip地址之類的是否正確

Ⅵ linux多隊列網卡始終只有一個隊列收包是怎麼回事

答:很多無線網卡都很難知道它們的晶元是什麼??我買了好幾個54M的網卡都不行,分別是:BLEKINF5D700BUFFALOWLI2-PCI-G54。

Ⅶ Linux網卡收到了ping包,但是沒有回應是怎麼回事

查看一下配置,看是否屏蔽了ICMP,如果屏蔽了,即使開機也不會被區域網的其他電腦ping到

Ⅷ 如何處理Linux虛擬機網卡只能收包不能發包問題

打開虛擬機,啟動Linux系統,啟動完成後輸入用戶名和密碼,按回車鍵登錄系統。

配置Linux網路,使其能與主機Window 7正常通訊。註:網路配置可在網上搜索相關文章
在Linux下安裝samba伺服器,安裝命令如下:
$sudo apt-get install samba smbfs samba-common smbclient

創建Samba配置文件
4.1打開配置文件
$sudo vim /etc/samba/smb.conf
4.2在smb.conf最後添加
[username]
path = /home/username
available = yes
browseable = yes
public = yes
writable = yes
(注意:上面設置中,username換成你的用戶名,如果在前面有"#",需要把它去掉)
4.3把"#===== Share Definitions====="部分修改成如下圖所示:

創建samba賬戶
$sudo smbpasswd -a USERNAME(USERNAME換成你的用戶名)
會要求輸入samba賬戶的密碼
New SMB password:
Retype new SMB password:
[如果沒有此步驟,當你登錄時會提示session setup failed:NT_STATUS_LOGON_FAILURE]
重啟samba伺服器
$sudo /etc/init.d/samba reload(修改過smb.conf的話要執行一次)
$sudo /etc/init.d/samba restart
測試samba安裝是否成功
可以到window下輸入ip測試
文件夾處輸入"\\" + "Linux機器的IP或主機名",如圖:

在Window下建立「映射網路驅動器」
打開「計算機」,找到如下圖標注所示的「映射網路驅動器」,然後點擊它

網路驅動器的設置
點擊「驅動器」按鈕,選擇系統所剩甫姬顛肯郯廄奠詢訂墨下的盤符,如下圖所示。這里我們選擇「Z」盤

10.1選擇需要映射的共享文件夾。在「文件夾」後面的輸入框中輸入我們Linux中sanba設置的共享文件夾路徑,如下圖:
[下圖中的SHAREDIR輸入你自己的共享文件名]
10.2選上登錄時重新連接
10.3點擊完成【按鈕】,系統會為我們映射網路驅動器

打開「計算機」,會看到如下紅色框標注圖所示。雙擊網路驅動器,就可以直接訪問到我們Linux下設置的共享目錄了。

Ⅸ 抓包一定在linux下,藉助特定外置網卡

一是外置網卡可能比內置卡信號要好些;二是大家都在用虛擬機,虛擬機是不識別內置卡的。沒有特殊需要,用usb啟動或硬碟啟動linux,完全可以使用內置卡,很好用的。

Ⅹ linux查看網卡每秒接收多少個數據包

每個核 5萬的速率可能是極限了,但 Linux的網路棧究竟可能達到多少呢?我們換一種更有趣的方式來問: 在 Linux上,編寫一個每秒接收 100萬 UDP數據包的程序究竟有多

閱讀全文

與linux網卡收包相關的資料

熱點內容
如何在文件夾中顯示頁碼 瀏覽:354
雲伺服器登不上qq 瀏覽:417
程序員四級工程師 瀏覽:715
薄荷app怎麼把體重清零 瀏覽:644
草料二維碼加密怎麼製作 瀏覽:851
04s519隔油池圖集pdf 瀏覽:242
程序員搞測試 瀏覽:552
蘋果app應用隱藏了怎麼辦 瀏覽:660
PDF調取 瀏覽:199
獨立柱加密需要什麼條件 瀏覽:814
php培訓出來找不到工作 瀏覽:106
小程序克隆源碼 瀏覽:448
python整數整除負數 瀏覽:880
遮天用什麼小說app看 瀏覽:645
什麼可以發類似朋友圈的app 瀏覽:495
cmd查找命令行 瀏覽:661
如何申請域名需要虛擬伺服器 瀏覽:497
氣體流量的演算法 瀏覽:634
大族加密狗滑鼠 瀏覽:23
php資料庫登錄界面 瀏覽:657