nc命令詳解

NetCat,在網絡工具中有“瑞士軍刀”美譽,其有Windows和Linux的版本。因爲它短小精悍(1.84版本也不過25k,舊版本或縮減版甚至更小)、功能實用,被設計爲一個簡單、可靠的網絡工具,可通過TCP或UDP協議傳輸讀寫數據。同時,它還是一個網絡應用Debug分析器,因爲它可以根據需要創建各種不同類型的網絡連接。

通常的Linux發行版中都帶有NetCat(簡稱nc),但不同的版本,其參數的使用略有差異。

NetCat 官方地址:http://netcat.sourceforge.net/

安裝

[root@server ~]# yum install -y nc
[root@server ~]# rpm -q nc
nc-1.84-22.el6.x86_64

版本參數簡介
語  法:nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>][-s<來源地址>][-v...][-w<超時秒數>][主機名稱][通信端口...]

補充說明:執行本指令可設置路由器的相關參數。

參  數:

-g<網關> 設置路由器躍程通信網關,最多可設置8個。

-G<指向器數目> 設置來源路由指向器,其數值爲4的倍數。

-h 在線幫助。

-i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通信端口。

-l 使用監聽模式,管控傳入的資料。

-n 直接使用IP地址,而不通過域名服務器。

-o<輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。

-p<通信端口> 設置本地主機使用的通信端口。

-r 亂數指定本地與遠端主機的通信端口。

-s<來源地址> 設置本地主機送出數據包的IP地址。

-u 使用UDP傳輸協議。

-v 顯示指令執行過程。

-w<超時秒數> 設置等待連線的時間。

-z 使用0輸入/輸出模式,只在掃描通信端口時使用。

遠程拷貝文件

從server1拷貝文件到server2上。需要先在server2上,用nc激活監聽。

server2:

[root@server2 ~]# nc -l 1234 > 1234.txt

server1:

[root@server1 ~]# cat abc.txt 
abc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txt
[root@server1 ~]# nc -w 1 192.168.200.27 1234 < abc.txt

已經傳送到server2

[root@server2 ~]# cat 1234.txt 
abc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txtabc.txt

克隆硬盤或分區

操作與上面的拷貝是雷同的,只需要由dd獲得硬盤或分區的數據,然後傳輸即可。

克隆硬盤或分區的操作,不應在已經mount的的系統上進行。

#server2上進行類似的監聽動作:

[root@server2 ~]# nc -l -p 1234 | dd of=/dev/sda

#server1上執行傳輸,即可完成從server1克隆sda硬盤到server2的任務:

[root@server1 ~]# dd if=/dev/sda | nc 192.168.200.27 1234

端口掃描

複製代碼
[root@backup ~]# nc -v -w 1 192.168.200.29 -z 20-30
nc: connect to 192.168.200.29 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 21 (tcp) failed: Connection refused
Connection to 192.168.200.29 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.200.29 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 25 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 26 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 27 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 28 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 29 (tcp) failed: Connection refused
nc: connect to 192.168.200.29 port 30 (tcp) failed: Connection refused
複製代碼

聊天(呵呵,挺方便的。像QQ哦)

server2:

[root@server2 ~]# nc -l 1234 
hello!
hi!

server1:

[root@server1 ~]# nc  192.168.200.27 1234 
hello!
hi!
發佈了97 篇原創文章 · 獲贊 17 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章