linux nc命令參數及用法詳解
1、功能說明:強大的網絡工具netcat 2、語 法:nc [options] [options] -d 後臺模式 -e prog 程序重定向,一旦鏈接,就執行 [危險!!] -g <網關> 設置路由器躍程通訊網關,最多可設置8個。 -G <指向器數目> 設置來源路由指向器,其數值爲4的倍數。 -i <延遲秒數> 延時的間隔 -l 監聽模式,用於入站鏈接 -L 鏈接關閉後,仍然繼續監聽 -n 直接使用IP地址,而不經過域名服務器。 -o <輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。 -p <端口> 設置本地主機使用的通訊端口。 -r 隨機本地及遠程端口 -s <源ip地址> 設置本地主機送出數據包的IP地址。 -t 使用TELNET交互方式 -u 使用UDP傳輸協議。 -v 詳細輸出(用兩個-v可獲得更詳細的內容) -w <超時秒數> 設置等待連線的時間,即指定多少秒後,斷開。 -z 使用0輸入/輸出模式,只在掃描通訊端口時使用。 -h 幫助信息 主機名/ip 指定訪問的主機名/ip port 監聽遠程主機的端口,能夠是單個或範圍(M-N)。 nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通訊端口>][-s<來源地址>][-v...][-w<超時秒數>][主機名稱][通訊端口...] 3、應用 ①端口掃描(經常使用於檢測某個ip的某個服務[端口]是否被監聽,即某服務是否啓動) 格式: nc -v -w 2 -z $ip $port -v 顯示指令執行過程。 -w <超時秒數> 設置等待連線的時間。 -z 使用0輸入/輸出模式,只在掃描通訊端口時使用。 ②遠程數據的傳輸(源主機---->目的主機($ip需監聽端口)。傳完後ctrl+c中斷鏈接,缺點:不知道何時傳完) 格式: 遠程(目的)主機:nc -l $port > $file 源主機: nc $ip $port < $file ③簡單的及時聊天(須要在某臺主機上,監聽端口$port,別的主機能夠鏈接,進行聊天,Ctrl+c,Ctrl+d退出) 格式: 遠程(目的)主機:nc -l $port 源主機: nc $ip $port ④硬盤或分區(同②,源主機---->目的主機,克隆硬盤或分區的操做,不該在已經mount的的系統上進行。) 格式: 遠程(目的)主機:nc -l $port |dd of=分區 源主機: dd if=分區 | nc $ip $port 4、例子 ①批量檢測服務器指定端口開放狀況: 一、假如咱們要監控一堆指定的IP和端口,可新建一個文件(第1列服務器IP,第2列要監控的端口)。 # vim /scripts/ip-ports.txt 192.168.0.100 80 192.168.0.100 8081 192.168.0.101 8082 192.168.1.100 21 二、咱們能夠寫這樣一個腳原本批量檢測端口是否開放: # vim /scripts/ncports.sh #!/bin/bash #檢測服務器端口是否開放,成功會返回0值顯示ok,失敗會返回1值顯示fail cat /scripts/ip-ports.txt | while read line do nc -w 10 -z $line > /dev/null 2>&1 if [ $? -eq 0 ] then echo $line:ok else echo $line:fail fi done 三、執行腳本查看運行結果以下: # chmod a+x /scripts/ncports.sh # /scripts/ncports.sh 192.168.0.100 80:ok 192.168.0.100 8081:ok 192.168.0.101 8082:ok 192.168.1.100 21:fail