首頁  >  文章  >  運維  >  什麼是Linux系統中nc指令? nc指令的用法詳解

什麼是Linux系統中nc指令? nc指令的用法詳解

伊谢尔伦
伊谢尔伦原創
2017-05-30 15:01:2010184瀏覽

這篇文章主要介紹了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 68

Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!

#

以上是什麼是Linux系統中nc指令? nc指令的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn