衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一個非常實用且強大的Linux nc命令

jf_TEuU2tls ? 來源:浩道Linux ? 2023-08-16 09:15 ? 次閱讀

一、nc命令介紹

nc是netcat的簡寫,是一個功能強大的網絡工具,其功能是用于掃描與連接指定端口,有著網絡界的瑞士軍刀美稱。它能夠基于命令行在網絡上讀取和寫入數據,連接與掃描指定端口號,支持TCP和UDP協議,為廣大工程師提供無限潛在功能。不管是運維工程師還是網絡工程師,熟悉使用這個命令都可以讓很多工作事半功倍,尤其是在排查各類網絡故障方面。

netcat即是網絡貓的意思,在linux系統中nc命令實際執行命令是ncat。nc命令的主要作用如下:

1、實現任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口;

2、端口的掃描,nc可以作為client發起TCP或UDP連接;

3、服務器之間進行文件傳輸;

4、服務器之間進行網絡測速;

二、nc命令用法

1、nc命令安裝

centos7系統下安裝命令如下:

yum install -y nc

安裝成功后,查看nc版本號如下:

[root@master ~]# nc --version
Ncat: Version 7.50 ( https://nmap.org/ncat )
2、nc命令常見語法格式
nc [參數] 域名/IP地址 [端口]
3、nc命令常見參數
-h:在線幫助;
-v:顯示命令執行過程;
-u:指定使用的傳輸協議為UDP,默認為TCP;
-z:使用zero輸入/輸出模式,只在掃描通信端口時使用;
-l:使用監聽模式,處于監聽模式時,表示nc作為服務端,監聽并接受連接,管控傳入的資料;
-w:用來設置超時秒數,后面直接跟數字;

4、環境準備

以下案例通過兩臺服務器進行實驗測試: 服務器1的IP:192.168.20.231 服務器2的IP:192.168.20.232

以上兩臺服務器防火墻皆為關閉狀態下進行測試;

三、nc命令經典實用案例

1、測試服務器主機的TCP或UDP端口是否正常

這種測試場景在運維工作中很常見,當各個服務部署完后,發現無法正常訪問服務,此時就要先確保網絡是否正常了,除了鏈路需要測試,服務端口也要測試,因為有時候防火墻策略沒有做好,導致服務端口不通。TCP端口測試方法比較多,UDP測試方法就比較少了,以下針對TCP端口和UDP端口測試都是基于nc命令測試的。

(1)測試服務器1和服務器2之間的某個TCP端口是否正常,通過nc啟動TCP監聽端口方式;

1)利用nc作為server端啟動一個TCP監聽端口,如在服務器2上啟動監聽端口為8888。命令如下:

nc -l 8888

此時服務器2處于TCP監聽模式下,如下圖所示:

242808a4-3bc7-11ee-9e74-dac502259ad0.png


2)此時在服務器1上通過nc作為客戶端進行測試,看看其端口是否正常,命令如下:

nc-vz192.168.20.2328888

出現如下圖結果,若出現類似1 bytes sent, 0 bytes received in xxx seconds等消息,則是TCP端口通的;若端口為通的,則命令返回碼為0。

243acc46-3bc7-11ee-9e74-dac502259ad0.png

其它如下圖結果,若出現Connection refused.則說明TCP端口不通,如果端口不通,此時命令返回碼為1。

245597c4-3bc7-11ee-9e74-dac502259ad0.png

(2)測試服務器1和服務器2之間的某個UDP端口是否正常,通過nc啟動UDP監聽端口方式;

1)利用nc作為server端啟動一個UDP監聽端口,如在服務器2上啟動監聽端口為9999(注意此端口為服務器2非占用的端口)。命令如下:

nc-lu9999

此時服務器2處于UDP監聽模式下,如下圖所示:

247870d2-3bc7-11ee-9e74-dac502259ad0.png

2)此時在服務器1上通過nc作為客戶端進行測試,看看其網絡連通性,命令如下:

nc -vuz 192.168.20.232 9999

出現如下圖結果,若出現類似1 bytes sent, 0 bytes received in xxx seconds等消息,則是UDP端口通的;若端口為通的,則命令返回碼為0。

24937c9c-3bc7-11ee-9e74-dac502259ad0.png

其它如下圖結果,若出現Connection refused.則說明UDP端口不通,如果端口不通,此時命令返回碼為1。

24b04962-3bc7-11ee-9e74-dac502259ad0.png

2、通過nc命令在兩臺服務器之間進行文件或目錄傳輸

(1)將服務器1上的haodao_send.txt文件傳輸到服務器2上,并且命名為haodao_rece.txt;

1)服務器1上的haodao_send.txt文件內容如下圖:

24d0eac8-3bc7-11ee-9e74-dac502259ad0.png

2)服務器2上啟動接收監聽端口服務;

nc -l 9898 > haodao_rece.txt

意思是把9898端口上接收到的數據都寫在haodao_rece.txt文件中。(這里的文件名可以自己定義)

3)服務器1上往服務器2的9898端口發送數據,把haodao_send.txt文件發送過去;

nc 192.168.20.232 9898 < haodao_send.txt

4)待服務器2接收完畢后,會自動斷開監聽連接,此時可以查看接收到的文件與發送端一樣,如下圖所示:

24f7def8-3bc7-11ee-9e74-dac502259ad0.png

(2)將服務器1上的haodao_test目錄(目錄中包含多個文件)傳輸到服務器2上,完成拷貝;

1)服務器1上/root/haodao_test目錄結構如下圖所示:

2517da46-3bc7-11ee-9e74-dac502259ad0.png

2)服務器2上啟動接收監聽端口服務;

nc -l 9898 | tar -xzvf -

3)服務器1上往服務器2的9898端口打包發送數據,把haodao_test目錄及目錄下文件打包發送過去;

tar czvf - haodao_test |nc 192.168.20.232 9898

4)待服務器2接收完畢后,會自動斷開監聽連接,此時可以查看接收到的文件與發送端一樣,如下圖所示:

2537ddbe-3bc7-11ee-9e74-dac502259ad0.png

3、通過nc命令測試兩臺服務器之間的網速 這個測速原理就是利用文件傳輸原理來進行,即把服務器1的/dev/zero發送給服務器2的/dev/null,這就相當于把服務器1的無限個0,傳輸給到服務器2上的空設備。然后通過dstat命令來監測網速。

1)兩臺服務器上安裝dstat命令,用于監測網速;

yum install -y dstat

2)服務器2上啟動接收監聽端口服務,監聽9696端口,把來自這個端口的數據都輸出到/dev/null;

 nc -l 9696 > /dev/null 

3)服務器1上往服務器2的9696端口發送數據,把無限個0發送給服務器2的9696端口;

nc 192.168.20.232 9696 < /dev/zero

4)服務器1上重開一個ssh窗口,執行dstat命令查看網速,看到結果如下圖所示:

254bdd50-3bc7-11ee-9e74-dac502259ad0.png

可以看到,服務器1上接收數據為140K左右,發送110M左右;

5)服務器2上重開一個ssh窗口,執行dstat命令查看網速,看到結果如下圖所示:

256a853e-3bc7-11ee-9e74-dac502259ad0.png

可以看到,服務器2上接收數據為105M左右,發送140K左右;

四、總結

nc命令功能比較多,大家感興趣也可以去挖掘它那些功能看看,本文羅列一些大家平時在運維或者測試工作中常用的功能。簡單實用型有助于我們愛上一款測試工具。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    596

    瀏覽量

    27510
  • UDP協議
    +關注

    關注

    0

    文章

    70

    瀏覽量

    12775
  • SSH
    SSH
    +關注

    關注

    0

    文章

    189

    瀏覽量

    16406
  • LINUX內核
    +關注

    關注

    1

    文章

    316

    瀏覽量

    21744
  • TCP通信
    +關注

    關注

    0

    文章

    146

    瀏覽量

    4292

原文標題:Linux下的nc命令太強大了!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    非常高效三linux shell命令分享

    了開發效率。本文淺析三非常高效的linux shell命令(awk,grep,sed),在開發工程中的實際應用。1,從系統命令的打印中獲取
    發表于 12-23 06:38

    你不可不知的11Linux命令

    Linux命令行吸引了大多數Linux愛好者。正常的Linux用戶
    發表于 11-09 12:14 ?1376次閱讀
    你不可不知的11<b class='flag-5'>個</b><b class='flag-5'>Linux</b><b class='flag-5'>命令</b>

    9超有趣的Linux命令使用動畫演示詳細介紹

    Linux強大特征就是它有大量的各種小命令工具,這也可以稱做是它最有趣的
    的頭像 發表于 06-10 09:19 ?5241次閱讀

    linux的ip命令旨在取代ifconfig

    linux的ip命令和ifconfig類似,但前者功能更強大,并旨在取代后者。使用ip命令,只需
    的頭像 發表于 02-02 16:07 ?3155次閱讀
    <b class='flag-5'>linux</b>的ip<b class='flag-5'>命令</b>旨在取代ifconfig

    linux有哪些常用的命令

     Linux命令非常之多,分為內部命令和外部命令。
    發表于 02-27 08:00 ?4次下載
    <b class='flag-5'>linux</b>有哪些常用的<b class='flag-5'>命令</b>

    Linux在在文件中查找文本的Grep命令

    grep命令是(global regular expression print,全局正則表達式輸出)的縮寫,它是Linux中功能最強大最常用的命令
    的頭像 發表于 06-21 12:06 ?3412次閱讀

    Linux的常用命令大全詳細說明

    Linux常用命令大全(非常全?。。。?最近都在和Linux打交道,感覺還不錯。我覺得Linux相比windows比較麻煩的就是很多東西都要
    發表于 09-24 08:00 ?5次下載
    <b class='flag-5'>Linux</b>的常用<b class='flag-5'>命令</b>大全詳細說明

    6有趣的Linux命令案例講解

    6有趣的Linux命令案例講解
    發表于 08-11 17:49 ?14次下載

    如何使用grep命令

    grep命令的全稱是全局正則表達式打印,它是Linux中功能最強大最常用的命令。
    的頭像 發表于 12-06 16:43 ?2177次閱讀

    Linux history命令的使用技巧

    使用 Linux 命令行工作,需要了解使用 history 的些常用的特性,不管是 Linux 初學者,還是系統專家。
    的頭像 發表于 02-03 16:30 ?2857次閱讀
    <b class='flag-5'>Linux</b> history<b class='flag-5'>命令</b>的使用技巧

    Linux次運行多個命令的方法介紹

    Linux 終端是功能強大的工具,允許您使用命令執行各種系統操作。文件操作、程序管理和服務自動化是您可以使用 shell
    發表于 03-20 09:39 ?7997次閱讀

    如何在Linux中使用progress命令

    progress 命令簡單但功能強大Linux/Unix 命令行工具,可讓用戶查看文件
    的頭像 發表于 04-08 15:51 ?2533次閱讀

    如何在Linux中高效運行終端命令

    Linux 終端是功能強大的工具,允許您使用命令執行各種系統操作。文件操作、程序管理和服務自動化是您可以使用 shell
    的頭像 發表于 04-13 10:34 ?719次閱讀

    初學者必學的20Linux基礎命令

    在處理 Linux 時,您需要使用 shell——可以讓您訪問操作系統的接口。命令需要作
    的頭像 發表于 04-20 10:21 ?1493次閱讀

    shell命令linux命令樣嗎

    結合在起,形成相當于面向過程的程序,即shell script,從而實現些復雜的功能。 而Linux
    的頭像 發表于 11-08 10:51 ?2981次閱讀
    鼎龙百家乐官网的玩法技巧和规则 | 大发888娱乐新澳博| 百家乐官网开户送彩金28| 三公百家乐玩法| 珠江太阳城广场| 历史百家乐官网路单图| 百家乐娱乐礼金| 哪个百家乐官网平台信誉好| 百家乐娱乐网真钱游戏| 游戏厅百家乐官网技巧| 百家乐破解方法技巧| 百家乐官网要怎么玩啊| 真人百家乐游戏网| 哪个百家乐官网平台信誉好| 乐享百家乐的玩法技巧和规则| 河北区| 百家乐玩揽法的论坛| bet365打不开| 大玩家百家乐现金网| 太阳城娱乐城88| 百家乐开户优惠多的平台是哪家| 百家乐官网投注方式| 开心8百家乐游戏| 登封市| 百家乐真人游戏赌场娱乐网规则| 百家乐官网21点德州扑克| 澳门百家乐必赢看| 百家乐官网十赌九诈| 六合彩网站| 哪个百家乐技巧平台信誉好| TT百家乐官网现金网| 百家乐透明发牌机| 找真人百家乐官网的玩法技巧和规则| 博发| 百家乐游戏介绍与分析| 金花百家乐官网娱乐城| 威尼斯人娱乐网送38元彩金| 圆梦城百家乐官网娱乐城| 娱乐城送现金| 百家乐连跳趋势| 聚众玩百家乐官网的玩法技巧和规则 |