@Author : Spinach | GHB
@Link : http://blog.csdn.net/bocai8058
nc/netcat(網路工具,網絡界的瑞士軍刀)
nc是netcat的簡寫,有着網絡界的瑞士軍刀美譽。因爲它短小精悍、功能實用,被設計爲一個簡單、可靠的網絡工具。
nc的作用
- 實現任意TCP/UDP端口的偵聽,nc可以作爲server以TCP或UDP方式偵聽指定端口;
- 端口的掃描,nc可以作爲client發起TCP或UDP連接;
- 機器之間傳輸文件;
- 機器之間網絡測速。
nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>]
[-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信端口...]
參數:
-g<網關> 設置路由器躍程通信網關,最多可設置8個。
-G<指向器數目> 設置來源路由指向器,其數值爲4的倍數。
-h 在線幫助。
-i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通信端口。
-l 監聽模式,用於入站連接 (監聽本地端口)。
-n 直接使用IP地址,而不通過域名服務器。
-o<輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
-p<通信端口> 設置本地主機使用的通信端口。
-r 隨機指定本地與遠端主機的通信端口。
-s<來源位址> 設置本地主機送出數據包的IP地址。
-u 使用UDP傳輸協議。
-v 顯示指令執行過程。
-w<超時秒數> 設置等待連線的時間。
-z 使用0輸入/輸出模式,只在掃描通信端口時使用。
nc實例
網絡連通性測試和端口掃描
// 監聽本地TCP 80端口
$ nc -l 80
// 監聽本地TCP 80端口,後臺運行
$ nc -l 80 &
// 監聽本地udp的端口
$ nc -ul 9998
// 使用nc命令作爲客戶端工具進行端口探測(-v可視化,-z掃描時不發送數據,-w超時幾秒,後面跟數字)
$ nc -vzw 2 10.0.1.161 9999
文件傳輸
// 將9995端口的接受的數據寫到test.txt中
$ nc -l 9995 >test.txt
// 將文件test.txt發送給10.0.1.162的9995端口上
$ nc 10.0.1.162 9995 < test.txt
// 服務器上,我們創建一個tar歸檔包並且通過-在控制檯重定向它,然後使用管道,重定向給netcat,netcat可以通過網絡發送它。
// 在客戶端我們下載該壓縮包通過netcat 管道然後打開文件。
// Server
$ tar -cvf – dir_name | nc -l 20000
// Client
$ nc -n 192.168.1.1 20000 | tar -xvf -
測試網速
// 先啓動發送的數據,誰連接這個端口時就會接收來自zero設備的數據(二進制的無限個0)
nc -l 9990 </dev/zero
// 下面B機器連接A機器的9990端口,把接收的數據輸出到空設備上
nc 10.0.1.161 9990 >/dev/null
// 同樣可以使用dstat觀察數據發送時的網速
引用:https://www.cnblogs.com/jjzd/p/6306273.html | https://www.cnblogs.com/nmap/p/6148306.html | https://blog.csdn.net/freeking101/article/details/53289198