0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Netcat命令建立和測試TCP和UDP連接

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-12 17:39 ? 次閱讀

Netcat或nc是一個命令行程序,它使用TCP或UDP協(xié)議通過網(wǎng)絡(luò)連接讀取和寫入數(shù)據(jù)。

它是網(wǎng)絡(luò)和系統(tǒng)管理員中最強(qiáng)大的工具之一,被視為網(wǎng)絡(luò)工具的瑞士軍刀。

Netcat是跨平臺的,可用于Linux,macOS,Windows和BSD。您可以使用Netcat調(diào)試和監(jiān)視網(wǎng)絡(luò)連接,掃描打開的端口,傳輸數(shù)據(jù),作為代理等等。

Netcat軟件包已預(yù)安裝在macOS和流行的Linux發(fā)行版,如Ubuntu,Debian,CentOS,F(xiàn)edora等。

Netcat命令的最基本語法形式是nc [options] host porthost可以是u遠(yuǎn)程主機(jī)的域名,主機(jī)名或者是IP地址。port是端口。

在Ubuntu,您可以使用netcatnc。它們都是Netcat的openBSD版本的符號鏈接。

默認(rèn)情況下,Netcat將嘗試建立與指定主機(jī)的TCP連接。如果要建立UDP連接,請使用-u選項。

nc host port
nc -u host port

端口掃描

在大多數(shù)情況下,對于復(fù)雜的端口掃描,Nmap是比Netcat更好的工具。

但掃描端口也是Netcat最常見的用途之一。您可以掃描單個端口或端口范圍。例如要掃描范圍為20-80的端口,請運行命令nc -z -v 10.10.8.8 20-80。

nc命令的-z選項將不會不向其發(fā)送任何數(shù)據(jù),而僅掃描開放的端口,如果你需要更多相信的信息請?zhí)砑?code>-v選項。

如果只是想打印開放端口的行,則可以使用grep命令過濾結(jié)果,在每一行輸出的記錄中succeeded表示可以成功連接的端口。

nc命令默認(rèn)僅掃描TCP端口,如果你需要掃描UDP端口,只需將-u選項添加到nc命令。

nc -z -v 10.10.8.8 20-80
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
nc -z -v -u 10.10.8.8 20-80
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

您也可以使用Netcat查找服務(wù)器軟件及其版本。例如,如果您在默認(rèn)的SSH端口22上向服務(wù)器發(fā)送EXIT命令,輸出將包含SSH服務(wù)的版本號。

echo "EXIT" | nc 10.10.8.8 22
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.

Netcat 發(fā)送文件

通過創(chuàng)建基本的客戶端/服務(wù)器模型,可以使用Netcat將數(shù)據(jù)從一臺主機(jī)傳輸?shù)搅硪慌_主機(jī)。

使用-l選項運行nc命令在接收的主機(jī)監(jiān)聽指定端口,然后在另一臺遠(yuǎn)程主機(jī)建立TCP連接并且此主機(jī)發(fā)送文件。

請在接收端的計算機(jī),運行命令nc -l 5555 > file_name,它將打開端口5555并接收來自遠(yuǎn)程計算機(jī)的數(shù)據(jù),然后將接收的數(shù)據(jù)重定向到文件file_name。

要在發(fā)送端的計算機(jī)建立與接收端計算機(jī)的TCP連接,請運行命令nc receiving.host.com 5555 < file_name。

當(dāng)兩個計算機(jī)之間的連接建立時,命令將會開始發(fā)送file_name的文件內(nèi)容到接收端的主機(jī)。

nc -l 5555 > file_name #run on receivce of computer
nc receiving.host.com 5555 < file_name #run on send of computer

Netcat 發(fā)送目錄

如果要遞歸發(fā)送目錄數(shù)據(jù),可以使用tar命令在發(fā)送端的計算機(jī)創(chuàng)建歸檔文件,然后在接收端的計算機(jī)提取存檔文件。

在接收端的計算機(jī)運行命令nc -l 5555 | tar xzvf -設(shè)置Netcat監(jiān)聽端口5555并接收數(shù)據(jù)。

然后將接收到的數(shù)據(jù)通過管道傳遞到tar命令,tar命令的xzvf選項表示提取存檔.tar.gz文件。

在發(fā)送端的計算機(jī)運行命令tar czvf - /path/to/dir | nc receiving.host.com 5555,建立與接收端計算機(jī)的連接,然后發(fā)送由tar命令創(chuàng)建存檔文件數(shù)據(jù)。

您可以在兩端觀察傳輸進(jìn)度。完成后,鍵入CTRL+C關(guān)閉連接。

nc -l 5555 | tar xzvf - #run on receivce of computer
tar czvf - /path/to/dir | nc receiving.host.com 5555 #run on send of computer

創(chuàng)建聊天服務(wù)器

在兩個或多個主機(jī)之間創(chuàng)建在線聊天的過程與傳輸文件時相同。

首先在第一臺主機(jī)運行命令nc -l 5555設(shè)置Netcat監(jiān)聽5555端口,在第二臺主機(jī)上,運行命令nc first.host.com 5555連接到第一臺主機(jī)的5555端口。

現(xiàn)在,如果您鍵入一條消息并按ENTER,它將同時顯示在兩臺主機(jī)上。要關(guān)閉連接,請鍵入CTRL+C。

nc -l 5555 #run on receivce of computer
nc first.host.com 5555 #run on send of computer

Netcat HTTP請求

盡管有許多更好的HTTP請求工具,例如curl,您也可以使用Netcat將各種請求發(fā)送到遠(yuǎn)程計算機(jī)。

例如,要從OpenBSD網(wǎng)站檢索Netcat手冊頁,請運行以下命令。

命令在終端將會打印HTTP header和HTML代碼的完整響應(yīng)。

printf "GET /nc.1 HTTP/1.1\\r\\nHost: man.openbsd.org\\r\\n\\r\\n" | nc man.openbsd.org 80

結(jié)論

在本教程中,您學(xué)習(xí)如何使用Netcat命令建立和測試TCP和UDP連接。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207895
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78754
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    317

    瀏覽量

    33801
  • 命令行
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    10368
收藏 人收藏

    評論

    相關(guān)推薦

    TCPUDP建立連接的差異和可靠性的差異

    TCP 建立連接需要經(jīng)過三次握手,同時 TCP 斷開連接需要經(jīng)過四次揮手,這也表示 TCP 是一
    發(fā)表于 09-02 16:10 ?693次閱讀

    通信必備知識!TCPUDP協(xié)議介紹及使用

    TCPUDP是兩個最常用的通訊協(xié)議。TCP是面向連接的協(xié)議,需要在收發(fā)數(shù)據(jù)前與對方建立可靠的連接
    的頭像 發(fā)表于 03-15 08:19 ?1543次閱讀
    通信必備知識!<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議介紹及使用

    求助關(guān)于TCP/UDP傳輸?shù)膯栴}

    本帖最后由 思想的小魚 于 2016-5-20 10:47 編輯 樓主完成了UDPTCP傳輸?shù)哪K,但目的是實現(xiàn)UDP傳輸和接收命令后,遠(yuǎn)程
    發(fā)表于 05-20 10:43

    如何在Pegasus Wi-Fi IoT智能家居套件上完成UDP服務(wù)端實驗

    兩者之間就會建立連接一條TCP連接,此時你在其中一個終端上輸入字符,敲回車就會發(fā)送到另一個終端中;UDP服務(wù)端模式:
    發(fā)表于 08-03 10:30

    如何在Pegasus Wi-Fi IoT智能家居套件上完成UDP客戶端實驗

    兩條命令,它們兩者之間就會建立連接一條TCP連接,此時你在其中一個終端上輸入字符,敲回車就會發(fā)送到另一個終端中;
    發(fā)表于 08-03 10:33

    TCP&UDP測試軟件

    TCP&UDP測試軟件,用于物聯(lián)網(wǎng)模塊 如WIFI模塊的數(shù)據(jù)測試
    發(fā)表于 12-14 15:18 ?6次下載

    TCPUDP的區(qū)別分析

      傳輸層協(xié)議主要有TCPUDP。UDP提供無連接的通信,不能保證數(shù)據(jù)包被發(fā)送到目標(biāo)地址,典型的即時傳輸少量數(shù)據(jù)的應(yīng)用程序通常使用UDP
    發(fā)表于 09-18 10:29 ?2次下載

    TCP如何與UDP命令連接詳細(xì)指南說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是TCP如何與UDP命令連接詳細(xì)指南說明。
    發(fā)表于 02-28 08:00 ?6次下載
    <b class='flag-5'>TCP</b>如何與<b class='flag-5'>UDP</b><b class='flag-5'>命令</b><b class='flag-5'>連接</b>詳細(xì)指南說明

    TCP, ISO- on- TCP, UDP連接

    TSEND“ & ?TRCV “ 發(fā)送和接收數(shù)據(jù)(TCP 和ISO - on- TCP)?TUSEND“ & ?TURCV“ 發(fā)送和接收數(shù)據(jù)(UDP) 自動連接管理的通訊塊
    的頭像 發(fā)表于 06-12 15:11 ?4933次閱讀
    <b class='flag-5'>TCP</b>, ISO- on- <b class='flag-5'>TCP</b>, <b class='flag-5'>UDP</b><b class='flag-5'>連接</b>

    tcpudp協(xié)議的異同

    UDP 校驗和則是包含 UDP 首部和數(shù)據(jù)在內(nèi)的校驗結(jié)果。 TCP協(xié)議 TCP協(xié)議基于網(wǎng)絡(luò)層的 IP 協(xié)議提供的是有連接、可靠服務(wù),是基于
    的頭像 發(fā)表于 11-12 14:45 ?3841次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>協(xié)議的異同

    UDPTCP的區(qū)別

    在上一則文章中,對 TCP 的**三次握手建立連接**和**四次揮手釋放連接**進(jìn)行了詳細(xì)地闡述,本節(jié)教程針對于 TCP 的其他內(nèi)容進(jìn)行講解
    的頭像 發(fā)表于 01-20 17:05 ?1563次閱讀
    <b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>的區(qū)別

    TCPUDP的區(qū)別

    是可靠傳輸,使用流量控制和擁塞控制;UDP是不可靠傳輸 TCP首部最小20字節(jié),最大60字節(jié);UDP首部僅8字節(jié)。 2.ISO七層模型及相關(guān)協(xié)議 物理層:建立、維護(hù)、斷開物理
    的頭像 發(fā)表于 11-09 09:35 ?3304次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的區(qū)別

    TCPUDP的基本區(qū)別

    TCPUDP基本區(qū)別 基于連接與無連接 TCP要求系統(tǒng)資源較多,UDP較少;
    的頭像 發(fā)表于 11-13 15:27 ?4397次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本區(qū)別

    UDPTCP的主要區(qū)別 UDP能否像TCP一樣實現(xiàn)可靠傳輸?

    據(jù)包的傳輸不進(jìn)行確認(rèn)和重傳,而TCP是一種面向連接的協(xié)議,通過確認(rèn)和重傳來實現(xiàn)可靠的數(shù)據(jù)傳輸。 首先,UDP連接的特點使得它在傳輸時的開銷較小。U
    的頭像 發(fā)表于 01-22 16:10 ?605次閱讀

    udp是什么意思 簡述TCPUDP的區(qū)別和聯(lián)系

    中的兩個基本協(xié)議。然而,TCPUDP之間存在一些重要的區(qū)別和聯(lián)系。 首先,TCP是一種面向連接的協(xié)議,而UDP是無
    的頭像 發(fā)表于 02-02 16:33 ?1003次閱讀