Shell netcat / nc 命令

Shell 中的netcat / nc 命令

Note: 本篇中服務器地址使用的是服務器節點的主機名: yantanode

1、概述

netcat 所做的就是在兩臺電腦之間建立鏈接並返回兩個數據流,可以使用這個命令來傳輸數據文件等。不過今天主要說明這個命令在shell腳本中的使用,可以測試集羣中節點之間的網絡及端口連通狀況。

2、語法

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輸入/輸出模式,只在掃描通信端口時使用

3、用法示例

  • 掃描端口,測試網絡
    主要用來測試集羣中節點之間的網絡鏈接狀況。
# 測試tcp端口
[ root@yanta ~] # nc -vz node 22
Connection to node 22 port [ tcp/ssh ] succeeded!

# 測試UDP端口
[ root@yanta ~] # nc -uvz node 123
Connection to node 123 port [ udp/ntp ] succeeded!
  • 節點間拷貝文件

例如 從 yanta 拷貝文件到 node:

# 首先在接收端 node上: 
[ root@node ~] # nc -l 1234 > test.txt

# 然後在發送端 yanta 上: 
[ root@yanta ~] # nc node < test.txt

# 注意:先運行接收端,指定一個端口爲1234,文件爲test.txt,再執行發送端,並且發送端必須存在同名的文件test.txt
  • 簡單聊天
# 在 node 上: 
[ root@node ~] # nc -l 1234

# 在 yanta 上: 
[ root@yanta ~] # nc 192.168.1.2 1234

# 這樣,雙方就可以相互交流了。 使用ctrl+C(或D)退出
發佈了55 篇原創文章 · 獲贊 20 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章