這篇文章主要介紹了Linux系統中nc命令的基本用法,nc命令非常之強大,這裡先簡單介紹它用來作端口掃描以及文件傳輸等的基礎使用。
功能說明:強大的網路工具0a0ab0495c3035f36a29016608ecf616,在網路工具中有「瑞士軍刀」美譽,其有Windows和Linux的版本。因為它短小精悍,功能實用,被設計為一個簡單、可靠的網路工具,可透過TCP或UDP協定傳輸讀寫資料。同時,它也是一個網頁應用程式Debug分析器,因為它可以根據需要建立各種不同類型的網路連線。
nc可以提供如下的網路功能:
1) 監聽特定連接埠,這時候nc就可以作為一個伺服器,但是我發現這樣使用nc產生的伺服器僅僅是一個echo伺服器而已,沒有其他更加強大的功能.
2) 連接特定連接埠,這時候nc就成為了一個客戶端,同樣的,也是一個簡單的客戶端,只能起echo的作用.
3) 掃描埠,這可以作為查詢某個機器上是否開啟了某個連接埠.
幾個特定的使用範例
範例1:
使用nc開啟linux下的特定連接埠
nc -lp 23 &(即telnet)
netstat -an|grep 23(查看連接埠是否正常開啟)
範例2:
使用nc進行檔案傳輸,指令
ssh root@www.freetstar. com “( nc -l 10003 > destination 2>/dev/null & )” && cat source | nc www.freetstar.com 10003
&& 前邊ssh登入遠端主機www.freetstar.com上,用nc指令打開本地的10003端口,成為後台進程
&&後邊,在本地機器上打開source文件,並將其重定向到www.freetstar.com的10003號端口,也就是讓遠程www.freetstar.com主機10003號碼埠接收source檔案
範例3:
使用nc掃描linux下的特定連接埠
nc -v -z host.example.com 70-80
掃描連接埠(70到80 ),可指定範圍。 -v輸出詳細資料。
範例4:
複製硬碟或分割區
類似範例2,只需要由dd取得硬碟或分割區的數據,然後傳輸即可。
複製硬碟或分割區的操作,不應在已經mount的的系統上進行。所以,需要使用安裝光碟開機後,進入拯救模式(或使用Knoppix工具光碟)啟動系統後
server1上執行:# nc -l -p 1234 | dd of=/dev/sda
server1上執行1234號埠監聽,將得到的檔案儲存到/dev/sda上
server2上執行:# dd if=/dev/sda | nc server1 1234
#範例5:
儲存Web頁面
while true; do nc -l -p 80 -q 1 7f0a708b61c2407ea31e8bb8ee715453 ][-G325ae4f442a029c43d50f9022eba97c2][-id9b328b326fdd70af8758b879f7d0cde][-o7601825bfa2303122913fa72e0b58fb5][-p21771ba6d0bb45cb989110e48f7123b7][-sc8763bc1ea1d27a257720f3a140ce391][ -v...][-w65873ff6a019864ffb1df3d8b0a42d6e][主機名稱][通訊連接埠...]
參 數:
-g78338799067be3f12954c7467ea25124 設定路由器躍程通訊網關,最多可設定8個。
-G325ae4f442a029c43d50f9022eba97c2 設定來源路由指向器,其數值為4的倍數。
-h 線上幫助。
-id9b328b326fdd70af8758b879f7d0cde 設定時間間隔,以便傳送訊息及掃描通訊埠。
-l 使用監聽模式,管控傳入的資料。
-n 直接使用IP位址,而不透過網域名稱伺服器。
-o66c68fb0691a3cc22651eac2a86d1731 指定檔案名稱,將往來傳送的資料以16進位字碼傾倒成該檔案儲存。
-p21771ba6d0bb45cb989110e48f7123b7 設定本地主機所使用的通訊埠。
-r 亂數指定本地與遠端主機的通訊連接埠。
-sc8763bc1ea1d27a257720f3a140ce391 設定本地主機送出封包的IP位址。
-u 使用UDP傳輸協定。
-v 顯示指令執行程序。
-w17476357ae9fa829db8d31d841deb655 設定等待連線的時間。
-z 使用0輸入/輸出模式,只在掃描通訊埠時使用。
來看它的基本用法:
1.監聽本地埠
root@10.1.1.43:~# nc -l -p 1234 root@10.1.1.43:~# netstat -tunlp | grep 1234
tcp 0 0 0.0.0.0:1234 LISTEN 15543 /nc
2.連接埠掃描
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
(UNKNOWN) [10.1.1.180] 80 (www) open
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
(UNKNOWN) [10.1 .1.180] 22000 (?) open
(UNKNOWN) [10.1.1.180] 80 (www) open
3.檔案傳出
來源10.1.1.43 text.txt
目的10.1.1.180
root@10:~# nc -l -p 1234 > test.txt #开10.1.1.180:1234端口监听,并将socket传输过来的数据重定向到test.txt文件 test 43 nc root@10.1.1.43:~#cat test.txt root@10.1.1.43:~# nc 10.1.1.180 1234 < test.txt #连接远程的10.1.1.180,从test.txt的路径从定向到socket,从而将文件传输到远方。 root@10:~# cat test.txt test 43 nc
4.目錄傳輸
來源10.1.1.43 python_program
目的10.1.1.180
root@10:~# nc -l -p 1234 | tar xzvf - root@10.1.1.43:~# tar czvf - python_program | nc 10.1.1.180 1234
python_program/
python_program/1.py
python_program/4.py
python_program/3.py
#5.測試UDP埠
root@172.16.211.34:web# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address 0 0 0.0.0.0:22 1111/sshd
udp 0 0 0.0.0.0:68 887/dhclient
root@172.16.211.35:~# nc -vuz 172.16.211.34 68Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!
#
以上是什麼是Linux系統中nc指令? nc指令的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!