當前位置:編程學習大全網 - 編程語言 - Nc10.0編程

Nc10.0編程

什麽是nc?

Nc,netcat的簡稱,在網絡領域有瑞士軍刀的美譽。因為它短小精悍實用,所以被設計成壹個簡單可靠的網絡工具。

nc的作用

(1)實現任意TCP/UDP端口的攔截,nc可以作為服務器在TCP或UDP模式下攔截指定端口。

(2)端口掃描,nc可以作為客戶端發起TCP或UDP連接。

(3)在機器之間傳輸文件

(4)機器之間的網絡速度測量

數控系統的控制參數很多,下面列出幾種常用的參數:

1) -l

用於指定nc將處於監聽模式。指定這個參數意味著nc被當作壹個服務器,監聽和接受連接,而不是發起到其他地址的連接。

2)-p & lt;端口& gt

尚未使用(舊版nc可能需要在端口號前加-p參數,以下測試環境為centos6.6,nc版為nc-1.84,不使用-p參數)。

3) -s

指定發送數據的源IP地址,適合多網卡機器?

4) -u

?指定nc使用UDP協議,默認為TCP。

5)-五

輸出交互或錯誤信息,對調試新手特別有用。

6)-w

超時秒數,後面是數字?

7)-z

表示零,這意味著掃描期間不發送任何數據。

預備準備

準備兩臺機器來測試nc命令的使用。

主機A: IP地址10 . 0 . 1.161。

主機B: IP地址10.0.1.162。

nc和nmap的包首先安裝在兩臺機器上。

yum安裝nc -y

yum安裝nmap -y

如果提示如下-bash: nc: command not found,說明沒有安裝nc包。

Nc使用1,網絡連接測試和端口掃描

Nc可以作為服務器來啟動tcp監聽(註意這裏強調的是tcp,下面會討論udp)。

先關閉A的防火墻,或者釋放下面的端口,然後測試B機是否可以訪問A機啟動的端口。

在機器A上啟動壹個端口監視器,比如端口9999(註意:下面的-l是小寫L,不是數字1)。

默認情況下,下面是監聽壹個tcp端口。

nc -l 9999

客戶端測試,測試方法1

Telnet機器B上機器A的這個端口,如下圖所示,表示機器B可以訪問機器A的這個端口。

客戶端測試,測試方法2

機器b也可以使用nmap來掃描機器a的這個端口。

nmap 10 . 0 . 1.161-p 9999

客戶端測試,測試方法3

使用nc命令作為客戶端工具進行端口檢測

NC-vz-w 2 10 . 0 . 1.161 9999

(-v可視化,-z掃描不發送數據,-w超時幾秒,後跟數字)

上述命令也可以寫成

NC-vzw 2 10 . 0 . 1.161 9999

客戶端測試,測試方法4(類似於方法3,但是更有用)

Nc可以掃描串口,這點很重要。它通常用於掃描服務器端口,然後保護服務器。

監聽機器A上的兩個端口,壹個是9999,另壹個是9998,使用& amp;符號被拋到背景中

掃描客戶端B機器上的兩個連續端口,如下所示

作為服務器端,nc啟動udp監控(註意這裏強調的是udp,上面主要討論的是tcp)。

啟動udp端口監視器。

nc?-ul?9998

復制當前窗口輸入?netstat -antup |grep 9998?您可以看到udp監控已經啟動。

客戶端測試,測試方法1

NC-vuz 10 . 0 . 1.161 9998

因為udp端口在客戶端無法通過telnet進行測試,所以我們可以使用nc命令進行掃描(如前所述,nc也可以用於掃描端口)。

(telnet運行在tcp協議上)

(U代表udp端口,V代表視覺輸出,Z代表掃描時不發送數據)

上面B機掃描這個端口的時候,我看到a機下面有壹串XXXXX的字符串。

客戶端測試,測試方法2

nmap-sU 10 . 0 . 1.161-p 9998-Pn

(暫時無法測試nc啟動的udp端口。每次檢測到nc是服務器啟動的udp端口,都會導致對方退出監聽。這個bug是存在的,但是在對某些程序啟動的udp端口使用nc掃描時不會出現。)

接下來,機器A使用端口9998啟動udp端口監視器。

在復制的窗口上,妳可以確認妳在聽。

機器B使用nmap命令掃描這個udp端口,這導致機器A的nc在掃描過程中退出偵聽。所以顯示端口關閉(我猜是掃描時發送數據造成的)

nmap-sU 10 . 0 . 1.161-p 9998-Pn

-sU:表示掃描udp端口。

-Pn:如果服務器被禁止PING或者置於防火墻之下,它會認為被掃描的主機不加-Pn參數就不會掃描。如果沒有添加-Pn,它會嘗試提示您添加-Pn參數。

註意:如果在計算機A中打開了防火墻,掃描結果可能處於以下狀態。(不確定對方是否有9998的監聽端口)

由於上述測試無法使用nmap掃描nc作為服務器啟動的端口,我們可以使用nmap掃描其余端口。

(嗯,有點跑題了。nmap怎麽用不重要,主要是說明nmap也可以用來掃描udp端口,但是掃描nc啟動的端口會導致對方退出端口監控。)

接下來,機器A上的rpcbind服務監聽udp端口111。

使用nmap掃描機器B上的這個端口,檢測到它處於開放狀態是正常的。

客戶端測試,測試方法3

Nc掃描大量的udp端口。

掃描過程很慢,可能是1秒掃描壹個端口。下面是掃描A機的端口1到1000(沒有辦法在壹行命令中掃描幾個分散的端口)。

NC-vuz 10 . 0 . 1.161 1-1000

Nc用法2、使用nc傳輸文件和目錄

方法1,傳輸文件演示(首先開始接收命令)

用nc傳輸文件很方便,因為不需要像scp,rsync那樣輸入密碼。

從機器A向機器b發送壹個rpm文件。

註意操作順序。接收方先監聽端口,發送方將數據發送到接收方所在機器的端口。?

步驟1:首先在B機啟動壹個文件監控,格式如下。

這意味著將端口9995上接收的所有數據寫入壹個文件(文件名在這裏是可選的)

nc -l端口& gt文件

NC-l 9995 & gt;zabbix.rpm

步驟2,將機器A上的數據發送到機器B的端口9995,並發送以下rpm數據包。

NC 10 . 0 . 1.162 9995 & lt;zabbix-release-2.4-1.el6 . no arch . rpm

當B機收到時,會自動退出監聽。文件大小與機器A相同,md5值也相同。

方法2,傳輸文件演示(首先開始發送命令)

步驟1:在b機上啟動文件發送命令。

以下命令指示通過本地9992端口發送test.mv文件。

nc -l 9992 <test.mv

步驟2,機器A連接到機器B,檢索接收到的文件。

下面的命令表示文件是通過連接到B機的9992端口接收的,文件保存在這個目錄下,文件名為test2.mv

NC 10 . 0 . 1.162 9992 & gt;test2.mv

方法三,轉移目錄演示(發送文件的方法類似)

步驟1,機器B首先開始監控,如下所示

機器A向機器b發送多個文件。

傳輸目錄需要結合其他命令,比如tar。

在我的測試管道之後,它必須在末尾,而不是用戶定義的文件名的其余部分。

nc -l 9995 | tar xfvz -

第二步,A機打包文件,連接b機端口。

管道前面表示當前目錄下的所有文件都打包成-,然後使用nc發送到機器B。

tar cfz-* | NC 10 . 0 . 1.162 9995

B機在這裏已經自動接收解壓了。

Nc用法3、測試網速

測試網速其實是利用了傳輸文件的原理,就是把壹臺機器的/dev/zero發送到另壹臺機器的/dev/null。

就是把壹臺機器的無限個零傳輸到另壹臺機器的空設備上,然後用dstat命令打開壹個新窗口監控網速。

在此之前,有必要確保首先在機器上安裝dstat工具。

yum安裝-y dstat

方法1,測試網速演示(先啟動命令接收模式)

在步驟1,機器A首先啟動接收數據的命令,監聽它自己的9991端口,並從這個端口輸出所有數據到空設備(這樣,在不寫入磁盤的情況下測試網速更準確)。

NC-l 9991 & gt;/dev/null

第二步,B機發送數據,向a機的端口9991發送無限個零。

NC 10 . 0 . 1.161 9991 & lt;/dev/zero

使用dstat命令在復制的窗口上檢查當前的網絡速度。dstat命令更直觀,可以檢查當前cpu、磁盤、網絡、內存頁面、系統的壹些當前狀態指標。

我們只需要看看我在下面選擇的兩列。recv是receive的縮寫,意思是接收,send是發送數據。另外,註意數字後面的單位B,KB,MB。

可以看到機器A接收數據,平均每秒400MB左右。

機器B在新打開的窗口上執行dstat,看到每秒發送大約400MB的數據。

方法2,測試網速演示(先啟動命令發送模式)

步驟1,先開始發送數據,誰連接這個端口,誰就從零設備(二進制無限個零)接收數據。

nc -l 9990 </dev/zero

步驟2,下位機B連接A機的9990端口,將接收到的數據輸出到空設備。

NC 10 . 0 . 1.161 9990 & gt;/dev/null

還可以使用dstat觀察發送數據時的網速。

副本:blogs.com/nmap/p/6148306.html

  • 上一篇:三菱數控宏編程
  • 下一篇:萬般皆下品,唯有讀書高是什麽意思
  • copyright 2024編程學習大全網