成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

nc命令,網絡工具中的“瑞士軍刀”了解一下?

系統 Linux
前面介紹過一個不可不知的網絡命令-netstat,今天來介紹這個網絡工具界的“瑞士軍刀”-nc(netcat),它短小精悍,是網絡調試利器,它到底有何能耐呢?

nc命令,網絡工具中的“瑞士軍刀”了解一下?

作者:守望,Linux應用開發者,目前在公眾號【編程珠璣】分享Linux/C/C++/數據結構與算法/工具等原創技術文章和學習資源。

前言

前面介紹過一個不可不知的網絡命令-netstat,今天來介紹這個網絡工具界的“瑞士軍刀”-nc(netcat),它短小精悍,是網絡調試利器,它到底有何能耐呢?

查看端口是否被占用

還記得我們在netstat中介紹的如何查看端口被占用嗎?nc也可以完成這樣的事情。它使用-l(listen)參數,用于綁定指定端口并監聽連接:

  1. $ nc -l 6379
  2. nc: Address already in use 

當看到Address already in use的時候,就知道這個端口被占用了,否則它就會在這個端口監聽。當然這個作用是我瞎說的,但是可以用。

端口掃描

例如需要掃描某個機器上21-30哪些端口是開放的:

  1. $ nc  -n 127.0.0.1 -z 1230-1234 -v 
  2. nc: connect to 127.0.0.1 port 1230 (tcp) failed: Connection refused 
  3. nc: connect to 127.0.0.1 port 1231 (tcp) failed: Connection refused 
  4. nc: connect to 127.0.0.1 port 1232 (tcp) failed: Connection refused 
  5. nc: connect to 127.0.0.1 port 1233 (tcp) failed: Connection refused 
  6. Connection to 127.0.0.1 1234 port [tcp/*] succeeded! 

其中-n說明直接使用ip地址,而不使用域名,-z指定端口范圍,-v輸出詳細信息。從結果就可以看到,1234端口是可連接的。

TCP/UDP連接測試

當你在學習TCP相關的內容時,是否想著如何自己實踐觀察里面的狀態或者數據包?雖然推薦自己去寫一個TCP連接的服務端-客戶端程序,但是也可以利用nc命令來完成,例如,在一個終端中輸入如下內容:

  1. $ nc -l 1234 
  2. hello 編程珠璣 

表明在1234端口監聽,然后可以在另外一個終端進行連接;

  1. $ nc 127.0.0.1 1234 
  2. hello 編程珠璣 

連接本地地址1234端口,這個過程中就可以抓包,分析TCP的三次握手了。

除此之外,你還可以在建立好的連接之間發送消息(簡單的聊天功能),讓你分析更多!

默認情況,它創建的是TCP連接,而使用-u(UDP)參數可以測試UDP連通性。

  1. $ nc -v -u 182.3.226.35 80 
  2. Connection to 182.3.226.35 80 port [udp/http] succeeded! 

除此之外,還有很多參數用于調試,例如:

  • -b 允許廣播消息
  • -D 開啟socket調試模式
  • -d 禁止從標準輸入讀取內容
  • -k 客戶端退出后,保持連接
  • -v 顯示詳細信息

由于在后面的文章中還會借助nc來說明,因此這里不詳解介紹。

HTTP連接測試

例如查看HTTP頭信息:

  1. $ nc  www.baidu.com 80 
  2. HEAD / HTTP/1.1 
  3.  
  4.  
  5. HTTP/1.1 302 Found 
  6. Connection: Keep-Alive 
  7. Content-Length: 17931 
  8. Content-Type: text/html 
  9. Date: Sun, 23 Jun 2019 13:52:12 GMT 
  10. Etag: "54d9748e-460b" 
  11. Server: bfe/1.0.8.18 

連接后,輸入HEAD / HTTP/1.1或HEAD / HTTP/1.0,然后輸入兩個回車,可查看web服務器相關信息。

數據傳輸

還是利用前面的連接,借助重定向符可以進行文件傳輸,例如服務端監聽,并把內容輸出到out.txt:

  1. $ nc -l 1234 > out.txt 

而客戶端連接:

  1. $ nc 127.0.0.1 1234 < in.txt 

這樣客戶端in.txt的內容,就會傳輸到out.txt

關于重定向,可參考《如何linux shell中的2 > &1》

當然了,對于文件傳輸,scp命令能更好地完成這件事。如果你沒有其他辦法了,可以試試nc。

網絡測試

前面說到可以通過nc傳輸數據,同樣如果我們想測試兩個主機間的網絡速度(當然你可以利用iperf工具來完成這個工作),nc也是可以幫忙的:

  1. #服務端監聽: 
  2. $ nc -vl 1234 >/dev/null 

其中重定向到/dev/null,表示將數據丟棄。

然后在另一臺主機上執行:

  1. $ dd if=/dev/zero bs=1M count=10 |nc -vn 127.0.0.1 1234 
  2. Connection to 127.0.0.1 1234 port [tcp/*] succeeded! 
  3. 10+0 records in 
  4. 10+0 records out 
  5. 10485760 bytes (10 MB, 10 MiB) copied, 0.0333675 s, 314 MB/s 

dd拷貝數據,這里從/dev/zero拷貝數據0,且一次1M,拷貝10次,最后通過nc命令發送到服務端。結束后,就可以看到統計信息了。

總結

nc命令短小精悍,但在很多方面能夠幫助我們,例如:

  • 端口掃描
  • 連接測試
  • TCP/UDP服務端客戶端監聽與連接
  • 網絡測試
  • 代理

nc命令的更多妙用等著你去探索! 

責任編輯:龐桂玉 來源: 編程珠璣
相關推薦

2019-06-24 09:57:39

網絡工具調試

2013-04-11 10:51:27

2010-12-01 12:31:23

NetCat掃描端口

2014-09-26 14:30:41

2020-03-13 11:18:17

運維架構技術

2013-06-08 10:36:47

Linux命令行

2022-02-15 10:15:13

Web網絡程序員

2009-07-21 14:16:18

Scalafor表達式

2020-07-02 09:21:40

Java 緩存開發

2017-05-03 14:45:45

MySQL數據恢復

2014-05-29 14:44:06

瑞士軍刀綜合征開發者

2011-10-18 14:11:17

Web開發

2023-12-07 18:16:50

2019-06-28 11:26:31

LinuxWindowsTcping

2023-12-25 12:03:42

2023-11-28 12:09:43

Linux網絡工具

2021-09-05 18:30:59

Alpine容器Busybox

2011-08-01 09:43:08

PhoneGap 1.PhoneGap

2023-04-27 07:06:09

Categraf夜鶯

2009-09-09 12:10:40

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品久久久久久 | 91精品国产乱码久久久久久久久 | 欧美理伦片在线播放 | 中国大陆高清aⅴ毛片 | 国产成人综合亚洲欧美94在线 | 国产精品美女久久久久久免费 | 亚洲一区欧美一区 | 欧美亚洲国产精品 | 久久久久91 | 激情久久久久 | 一区二区精品 | 激情av | 欧美日韩国产一区二区三区 | 天天操操操操操 | 国产精品美女久久久久aⅴ国产馆 | 91久久精品视频 | 欧美久久久久久久 | 国产成人综合亚洲欧美94在线 | 国产农村一级国产农村 | 夜夜艹| 黄色国产 | xx性欧美肥妇精品久久久久久 | 亚洲精品一区二 | 91视频精选 | 91综合网 | 波多野吉衣久久 | 91精品国产综合久久精品 | 国产日韩精品在线 | 爱草在线 | 中文字幕在线视频免费视频 | 国产亚洲精品美女久久久久久久久久 | 精品一区二区在线观看 | 国产激情视频 | 国产综合视频 | 伊人春色在线 | 国产区视频在线观看 | 久久国产精品一区 | 亚洲精品电影网在线观看 | 国产精品久久久久一区二区三区 | 午夜天堂精品久久久久 | 日韩av看片 |