Linux之nc命令詳解

@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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章