天天看點

nc指令用法舉例

什麼是nc

nc是netcat的簡寫,有着網絡界的瑞士×××美譽。因為它短小精悍、功能實用,被設計為一個簡單、可靠的網絡工具

nc的作用

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

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

(3)機器之間傳輸檔案

(4)機器之間網絡測速

nc的控制參數不少,常用的幾個參數如下所列:

1) -l

用于指定nc将處于偵聽模式。指定該參數,則意味着nc被當作server,偵聽并接受連接配接,而非向其它位址發起連接配接。

2) -p <port>

暫未用到(老版本的nc可能需要在端口号前加-p參數,下面測試環境是centos6.6,nc版本是nc-1.84,未用到-p參數)

3) -s

指定發送資料的源IP位址,适用于多網卡機

4) -u

指定nc使用UDP協定,預設為TCP

5) -v

輸出互動或出錯資訊,新手調試時尤為有用

6)-w

逾時秒數,後面跟數字

7)-z

表示zero,表示掃描時不發送任何資料

前期準備

準備兩台機器,用于測試nc指令的用法

主機A:ip位址 10.0.1.161

主機B:ip位址 10.0.1.162

兩台機器先安裝nc和nmap的包

yum install nc -y

yum install nmap -y

如果提示如下-bash: nc: command not found 表示沒安裝nc的包

nc指令用法舉例

nc用法1,網絡連通性測試和端口掃描

nc可以作為server端啟動一個tcp的監聽(注意,此處重點是起tcp,下面還會講udp)

先關閉A的防火牆,或者放行下面端口,然後測試B機器是否可以通路A機器啟動的端口

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

預設情況下下面監聽的是一個tcp的端口

nc -l 9999

nc指令用法舉例

用戶端測試,測試方法1

在B機器上telnet A機器此端口,如下顯示表示B機器可以通路A機器此端口

nc指令用法舉例

用戶端測試,測試方法2

nc可以可以掃描連續端口,這個作用非常重要。常常可以用來掃描伺服器端口,然後給伺服器安全加強

在A機器上監聽2個端口,一個9999,一個9998,使用&符号丢入背景

nc指令用法舉例

在用戶端B機器上掃描連續的兩個端口,如下

nc指令用法舉例

nc用法2,使用nc傳輸檔案和目錄

方法1,傳輸檔案示範(先啟動接收指令)

使用nc傳輸檔案還是比較友善的,因為不用scp和rsync那種輸入密碼的操作了

把A機器上的一個rpm檔案發送到B機器上

需注意操作次序,receiver先偵聽端口,sender向receiver所在機器的該端口發送資料。

步驟1,先在B機器上啟動一個接收檔案的監聽,格式如下

意思是把賴在9995端口接收到的資料都寫到file檔案裡(這裡檔案名随意取)

nc -l port >file

nc -l 9995 >zabbix.rpm

nc指令用法舉例

步驟2,在A機器上往B機器的9995端口發送資料,把下面rpm包發送過去

nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm

nc指令用法舉例

B機器接收完畢,它會自動退出監聽,檔案大小和A機器一樣,md5值也一樣

nc指令用法舉例

方法2,傳輸檔案示範(先啟動發送指令)

步驟1,先在B機器上,啟動發送檔案指令

下面指令表示通過本地的×××端口發送test.mv檔案

nc -l ××× <test.mv

繼續閱讀