linux nc命令參數及用法詳解之畢業紀 一、功能說明:強大的網路工具netcat 二、語 法: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<逾時秒數>][主機名稱][通訊連接埠...] 三、應用 ①連接埠掃描(常用於檢測某個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 四、例子 ①批量檢測伺服器指定連接埠開放情況: 1、假如我們要監控一堆指定的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 2、我們可以寫這樣一個指令碼來批量檢測連接埠是否開放: # 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 3、執行指令碼查看運行結果如下: # 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