Linux--nc(netcat)

參考:html

http://www.javashuo.com/article/p-cleqzevl-kx.htmllinux

https://www.oschina.net/translate/linux-netcat-commandnginx

https://blog.csdn.net/qq_29499107/article/details/82384393 bash

 

nc提供的功能:能夠經過Tcp和Udp在網絡中讀寫數據。它所做的工做就是在兩臺電腦之間創建鏈接並返回兩個數據流,基於這樣的功能能夠有不少的使用場景。服務器

nc使用場景1--端口掃描

用於發現機器上開放的端口網絡

$ nc -v -z -w2 127.0.0.1 1-100
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
Connection to 127.0.0.1 53 port [tcp/domain] succeeded!
Connection to 127.0.0.1 80 port [tcp/http] succeeded!
...
nc: connect to 127.0.0.1 port 100 (tcp) failed: Connection refused

這個命令打印1-100的開發端口。dom

z 參數告訴netcat使用0 IO,鏈接成功後當即關閉鏈接, 不進行數據交換(謝謝@jxing 指點)ssh

v 參數顯示執行過程tcp

n 參數告訴netcat 不要使用DNS反向查詢IP地址的域名spa

一旦發現開放端口,就可使用nc鏈接服務抓取banner。Banner是一個你鏈接的服務發送給你的文本信息。當你試圖鑑別漏洞或者服務的類型和版本的時候,Banner信息是很是有用的。可是,並非全部的服務都會發送banner。

nc -v 172.31.100.7 21

netcat 命令會鏈接開放端口21而且打印運行在這個端口上服務的banner信息。

nc應用場景2--文件傳輸

若是隻是臨時一次文件傳輸,使用nc就不用麻煩的配置ftp等。

首先在接收端192.168.1.3上: nc -l 1234 > file.txt

而後在發送端192.168.1.2上: nc 192.168.1.3 < file.txt

server    $nc -l 1567 < file.txt 

client     $nc -n 172.31.100.7 1567 > file.txt 

這裏在A上建立了一個服務器,而且重定向netcat的輸入爲文件file.txt,若有有鏈接鏈接到1234端口,nc會發送file的文件內容。

在客戶端咱們重定向輸出到file.txt,當B鏈接到A,A發送文件內容,B保存文件內容到file.txt.

沒有必要建立文件源做爲Server,咱們也能夠相反的方法使用。像下面的咱們發送文件從B到A,可是服務器建立在A上,此次咱們僅須要重定向netcat的輸出而且重定向B的輸入文件。

B做爲Server

Server        $nc -l 1567 > file.txt 

Client          nc 172.31.100.23 1567 < file.txt 

注意:先運行接收端,指定一個端口爲1234,文件爲test.txt,再執行發送端,而且發送端必須存在同名的文件test.txt

 

-l 開啓 監聽模式,用於指定nc將處於監聽模式。一般 這樣表明着爲一個 服務等待客戶端來連接指定的端口。

-p<通訊端口> 設置本地主機使用的通訊端口。有可能會關閉

-k<通訊端口>強制 nc 待命連接.當客戶端從服務端斷開鏈接後,過一段時間服務端也會中止監聽。 但經過選項 -k 咱們能夠強制服務器保持鏈接並繼續監聽端口。

nc應用場景3--目錄傳輸

從server1(192.168.16.233)拷貝nginx目錄內容到server2(192.168.48.47)上。須要先在server2上,用nc激活監聽,

server2上運行:# nc -l 1234 | tar xzv-

server1上運行:# tar czv- nginx | nc 192.168.48.47 1234 

nc應用場景4--會話

在Server(192.168.1.2)上:

$nc -l 1567

在Client(192.168.1.3)上:

$nc 192.168.1.2 1567
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息