自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網(wǎng)絡(luò)工具中的“瑞士軍刀”了解一下?

開發(fā) 開發(fā)工具
今天來介紹這個(gè)網(wǎng)絡(luò)工具界的“瑞士軍刀”-nc(netcat),它短小精悍,是網(wǎng)絡(luò)調(diào)試?yán)?,它到底有何能耐呢?/div>

[[268774]]

前言

前面介紹過一個(gè)不可不知的網(wǎng)絡(luò)命令-netstat,今天來介紹這個(gè)網(wǎng)絡(luò)工具界的“瑞士軍刀”-nc(netcat),它短小精悍,是網(wǎng)絡(luò)調(diào)試?yán)?,它到底有何能耐?

查看端口是否被占用

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

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

當(dāng)看到Address already in use的時(shí)候,就知道這個(gè)端口被占用了,否則它就會(huì)在這個(gè)端口監(jiān)聽。當(dāng)然這個(gè)作用是我瞎說的,但是可以用。

端口掃描

例如需要掃描某個(gè)機(jī)器上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輸出詳細(xì)信息。從結(jié)果就可以看到,1234端口是可連接的。

TCP/UDP連接測(cè)試

當(dāng)你在學(xué)習(xí)TCP相關(guān)的內(nèi)容時(shí),是否想著如何自己實(shí)踐觀察里面的狀態(tài)或者數(shù)據(jù)包?雖然推薦自己去寫一個(gè)TCP連接的服務(wù)端-客戶端程序,但是也可以利用nc命令來完成,例如,在一個(gè)終端中輸入如下內(nèi)容:

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

表明在1234端口監(jiān)聽,然后可以在另外一個(gè)終端進(jìn)行連接;

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

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

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

默認(rèn)情況,它創(chuàng)建的是TCP連接,而使用-u(UDP)參數(shù)可以測(cè)試UDP連通性。

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

除此之外,還有很多參數(shù)用于調(diào)試,例如:

  • -b 允許廣播消息
  • -D 開啟socket調(diào)試模式
  • -d 禁止從標(biāo)準(zhǔn)輸入讀取內(nèi)容
  • -k 客戶端退出后,保持連接
  • -v 顯示詳細(xì)信息

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

HTTP連接測(cè)試

例如查看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,然后輸入兩個(gè)回車,可查看web服務(wù)器相關(guān)信息。

數(shù)據(jù)傳輸

還是利用前面的連接,借助重定向符可以進(jìn)行文件傳輸,例如服務(wù)端監(jiān)聽,并把內(nèi)容輸出到out.txt:

  1. $ nc -l 1234 > out.txt 

而客戶端連接:

  1. $ nc 127.0.0.1 1234 < in.txt 

這樣客戶端in.txt的內(nèi)容,就會(huì)傳輸?shù)給ut.txt

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

網(wǎng)絡(luò)測(cè)試

前面說到可以通過nc傳輸數(shù)據(jù),同樣如果我們想測(cè)試兩個(gè)主機(jī)間的網(wǎng)絡(luò)速度(當(dāng)然你可以利用iperf工具來完成這個(gè)工作),nc也是可以幫忙的:

  1. #服務(wù)端監(jiān)聽: 
  2. $ nc -vl 1234 >/dev/null 

其中重定向到/dev/null,表示將數(shù)據(jù)丟棄。

然后在另一臺(tái)主機(jī)上執(zhí)行:

  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拷貝數(shù)據(jù),這里從/dev/zero拷貝數(shù)據(jù)0,且一次1M,拷貝10次,最后通過nc命令發(fā)送到服務(wù)端。結(jié)束后,就可以看到統(tǒng)計(jì)信息了。

總結(jié)

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

  • 端口掃描
  • 連接測(cè)試
  • TCP/UDP服務(wù)端客戶端監(jiān)聽與連接
  • 網(wǎng)絡(luò)測(cè)試
  • 代理

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

本文轉(zhuǎn)載自微信公眾號(hào)「編程珠璣」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系編程珠璣公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 編程珠璣
相關(guān)推薦

2019-06-27 17:00:09

nc命令 Linux

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

運(yùn)維架構(gòu)技術(shù)

2022-02-15 10:15:13

Web網(wǎng)絡(luò)程序員

2020-07-02 09:21:40

Java 緩存開發(fā)

2009-07-21 14:16:18

Scalafor表達(dá)式

2019-06-28 11:26:31

LinuxWindowsTcping

2014-05-29 14:44:06

瑞士軍刀綜合征開發(fā)者

2013-06-08 10:36:47

Linux命令行

2017-05-03 14:45:45

MySQL數(shù)據(jù)恢復(fù)

2011-10-18 14:11:17

Web開發(fā)

2023-12-25 12:03:42

2023-12-07 18:16:50

2021-09-05 18:30:59

Alpine容器Busybox

2009-09-09 12:10:40

2011-08-01 09:43:08

PhoneGap 1.PhoneGap

2023-04-27 07:06:09

Categraf夜鶯

2015-09-28 09:46:31

ZooKeeper分布式系統(tǒng)瑞士軍刀
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)