天天看點

每天一個liunx 指令 nc

    NetCat,在網絡工具中有“瑞士軍刀”美譽,其有Windows和Linux的版本。因為它短小精悍(1.84版本也不過25k,舊版本或縮減版甚至更小)、功能實用,被設計為一個簡單、可靠的網絡工具,可通過TCP或UDP協定傳輸讀寫資料。

  使用方法:

usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]

  [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]

  [-x proxy_address[:port]] [hostname] [port[s]]

  nc 指令常見選項 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<code>-g&lt;網關&gt;   設定路由器躍程通信網關,最丢哦可設定8個。</code>

<code>-G&lt;指向器數目&gt;   設定來源路由指向器,其數值為4的倍數。</code>

<code>-h   線上幫助。</code>

<code>-i&lt;延遲秒數&gt;   設定時間間隔,以便傳送資訊及掃描通信端口。</code>

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

<code>-n   直接使用IP位址,而不通過域名伺服器。</code>

<code>-o&lt;輸出檔案&gt;   指定檔案名稱,把往來傳輸的資料以16進制字碼傾倒成該檔案儲存。</code>

<code>-p&lt;通信端口&gt;   設定本地主機使用的通信端口。</code>

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

<code>-s&lt;來源位址&gt;   設定本地主機送出資料包的IP位址。</code>

<code>-u   使用UDP傳輸協定。</code>

<code>-</code><code>v</code>   <code>顯示指令執行過程。</code>

<code>-w&lt;逾時秒數&gt;   設定等待連線的時間。</code>

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

  軟體安裝 (以centos 為例)

  yum install nc -y

  舉例說明 

 遠端拷貝檔案 不需要輸入使用者名密碼

 目的主機監聽

nc -l 監聽端口[ 未使用端口] &gt; 要接收的檔案名

 nc -l 23456 &gt; 20170113_all.sql

打開另外一個終端檢視端口是否監聽到 

 netstat -tnlp | grep 23456

tcp        0      0 0.0.0.0:23456               0.0.0.0:*                   LISTEN 

源主機發起請求 

nc 目的主機ip 目的端口 &lt; 要發送的檔案 

 nc -l 23456 &lt; 20170113_all.sql

檢查目的主機檔案是否拷貝

[root@localhost31 ~]# ll 20170113_all.sql 

-rw-r--r-- 1 root root 27903998 Feb 23 10:23 20170113_all.sql

端口掃描功能

[root@localhost31 ~]# nc -v -z -w2 192.168.10.31 1-3 

nc: connect to 192.168.10.31 port 1 (tcp) failed: Connection refused

nc: connect to 192.168.10.31 port 2 (tcp) failed: Connection refused

nc: connect to 192.168.10.31 port 3 (tcp) failed: Connection refused

 簡單聊天功能

[root@localhost31 ~]# nc -l 1234

[root@localhost32 ~]# nc 192.168.10.31 1234

開啟聊天模式,停止聊天一段 ctrl+z 終止

server 2 發送消息

hi

server 1 接收消息

拷貝目錄下檔案的功能 

目的拷貝 32 上的一個目錄到 31 伺服器上

31 伺服器器操作 

[root@localhost31 ~]# nc -l 12345 | tar -C /tmp/ -zxf-

31 伺服器随機 監聽 12345 端口 ,将拷貝過的檔案放到 /tmp/ 目錄下面

32 伺服器操作 

[root@localhost32 ~]# tar -zcvf- keepalived_offline_install | nc 192.168.10.31 12345

檢查 

[root@localhost31 tmp]# ls keepalived_offline_install/

keepalived_offline_install.sh  rpm

本文轉自 水滴石川1 51CTO部落格,原文連結:http://blog.51cto.com/sdsca/1900477,如需轉載請自行聯系原作者