溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中如何使用netccat

發(fā)布時間:2022-02-19 11:03:33 來源:億速云 閱讀:137 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)Linux中如何使用netccat,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

netccat是一個通過TCP/UDP在網(wǎng)絡中進行讀寫數(shù)據(jù)工具(命令),被稱為“瑞士軍刀”,主要用于調(diào)試領(lǐng)域、傳輸領(lǐng)域甚至黑客攻擊領(lǐng)域。利用該工具,可以將網(wǎng)絡中一端的數(shù)據(jù)完整的發(fā)送至另一臺主機終端顯示或存儲,常見的應用為文件傳輸、與好友即時通信、傳輸流媒體或者作為用來驗證服務器的獨立的客戶端。

Linux中如何使用netccat

一、Netcat語法

首先使用nc -h 命令查看功能說明:

nc [-46DdhklnrStUuvzC] [-i 間隔] [-p 源端口]
[-s 源IP地址] [-T 服務類型] [-w 超時時間] [-X 代理協(xié)議]
[-x 代理地址[:端口]] [主機名] [端口[s]]
123
關(guān)鍵參數(shù)介紹:
  • -4 強制nc只能使用IPv4地址。
  • -6 強制nc只能使用IPv6地址。
  • -h 打印nc幫助信息。
  • -i 間隔 在發(fā)送和接收之間指定一個間隔時間。同時會引起連接多個接口時的延遲。
  • -z Zero-I/O mode [used for scanning] netcat使用0-IO,連接成功后立即關(guān)閉連接,不進行數(shù)據(jù)交換
  • -v 指詳細輸出
  • -n 告訴netcat 不要使用DNS反向查詢IP地址的域名

二、Netcat功能舉例

nc(netcat)可以打開TCP連接,發(fā)送UDP包,監(jiān)聽任意的TCP和UDP端口,掃描端口,處理IPv4和IPv6。nc腳本跟telnet(1)不一樣,它把錯誤信息輸出到標準錯誤輸出上而不是輸出到標準輸出上。

1. 簡單聊天

在Server端:

nc -lp 8888
1

此時默認是TCP連接,在本機Localhost監(jiān)聽8888端口。 在Client端:

nc -nv 127.0.0.1 8888
1

測試效果如下: 

Linux中如何使用netccat

Linux中如何使用netccat

客戶端通過TCP連接到服務器8888端口,發(fā)送hello,服務器對其回復ok,之后即可互相通信。

//陳碩簡單用法:
//本地服務器監(jiān)聽
nc -l 1234
//客戶端
nc localhost 1234
12345

使用ctrl+C(或D)退出

當然也可以通過telnet命令進行測試: telnet localhost 8888

2)如果是測試局域網(wǎng)兩臺主機的通信時,客戶端連接遠程Remote主機的IP地址即可。 命令則為:

nc -nv 113.54.154.215 8888
1

Linux中如何使用netccat

3) 為了觀察一個TCP的標準連接,也就是三次握手四次揮手的內(nèi)部實現(xiàn),我們通過tcpdump進行監(jiān)測一個完整的連接。 當連接本地服務器回環(huán)地址時,使用的是lo網(wǎng)卡。

sudo tcpdump -i lo -n tcp port 8888
1

當連接為遠程服務器時,使用的是此時Ubuntu 16.04環(huán)境下的ens33網(wǎng)卡。

sudo tcpdump -i ens33 -n tcp port 8888
1

Linux中如何使用netccat 可以清晰的看到三次握手。

2. 端口掃描

端口掃描經(jīng)常被系統(tǒng)管理員和黑客用來發(fā)現(xiàn)在一些機器上開放的端口,幫助他們識別系統(tǒng)中的漏洞。 nc可以運行在TCP或者UDP模式,默認是TCP,-u參數(shù)調(diào)整為udp. 假定服務器此時開啟了端口8888。 

Linux中如何使用netccat

客戶端對IP地址為113.54.154.215的8880附近相鄰10個端口進行TCP掃描。 客戶端命令為:

nc -nvz 113.54.154.215 8880-8890
1

測試如下: 

Linux中如何使用netccat

2)若采用UDP掃描,則服務器和客戶端的命令修改如下: 添加-u選項

服務器:
nc -ulp 8888
客戶端:
nc -unvz 113.54.154.215 8880-8890
1234
Linux中如何使用netccat
3. 文件傳輸

大部分時間中,我們都在試圖通過網(wǎng)絡或者其他工具傳輸文件。有很多種方法,比如FTP,SCP,TFTP,NFS等等,但是當你只是需要臨時或者一次傳輸文件,真的值得浪費時間來安裝配置一個軟件到你的機器上嘛。假設你想要傳一個文件test.cpp 從A 到B。A或者B都可以作為服務器或者客戶端,

讓A作為服務器,B為客戶端。將服務器A上的文件下載到客戶端B上。 Server:

nc -lp 8888

Client:

nc -n 113.54.154.215 8888  > test.cc
1

這里我們創(chuàng)建了一個服務器在A上并且重定向netcat的輸入為文件test.cpp,那么當任何成功連接到該端口,netcat會發(fā)送file的文件內(nèi)容。 在客戶端我們重定向輸出到test.cc,故意是兩個文件的后綴不同,此時查看文件的大小屬性。 Linux中如何使用netccat

Linux中如何使用netccat

此時客戶端將網(wǎng)絡接收到的數(shù)據(jù)重定向為test.cc,如果數(shù)據(jù)不需要則將其重定向到/dev/null即可。 2)當然我們可以將客戶端的文件發(fā)送給服務器,此時將test.cc上傳給服務器。 Server

nc -lp 8888 > test.cc
1

Client

nc -n 113.54.154.215 8888

此時服務器收到的文件重定向到test.cc,我們可以查看此時服務器的文件: Linux中如何使用netccat 

總之,結(jié)合管道的用法,使得nc的功能更加強大,比如可以將一個目錄壓縮為

一個文件,之后通過管道與nc結(jié)合,傳輸該目錄。

關(guān)于“Linux中如何使用netccat”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI