Linux之15——nc命令詳解
阿新 • • 發佈:2021-07-18
Linux nc命令用於設定路由器。
執行本指令可設定路由器的相關引數。
nc命令的作用
- 實現任意TCP/UDP埠的偵聽,nc可以作為server以TCP或UDP方式偵聽指定埠
- 埠的掃描,nc可以作為client發起TCP或UDP連線
- 機器之間傳輸檔案
- 機器之間網路測速
nc命令的安裝
[root@chenshifengdeLinuxServer ~] yum -y install nmap-ncat
語法
nc [-hlnruz][-g<閘道器...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出檔案>][-p<通訊埠>][-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通訊埠...]
引數說明:
- -g<閘道器> 設定路由器躍程通訊閘道器,最多可設定8個。
- -G<指向器數目> 設定來源路由指向器,其數值為4的倍數。
- -h 線上幫助。
- -i<延遲秒數> 設定時間間隔,以便傳送資訊及掃描通訊埠。
- -l 使用監聽模式,管控傳入的資料。通常 這樣代表著為一個 服務等待客戶端來連結指定的埠。
- -n 直接使用IP地址,而不通過域名伺服器。
- -o<輸出檔案> 指定檔名稱,把往來傳輸的資料以16進位制字碼傾倒成該檔案儲存。
- -p<通訊埠> 設定本地主機使用的通訊埠。有可能會關閉
- -k<通訊埠>強制 nc 待命連結.當客戶端從服務端斷開連線後,過一段時間服務端也會停止監聽。 但通過選項 -k 我們可以強制伺服器保持連線並繼續監聽埠。
- -r 亂數指定本地與遠端主機的通訊埠。
- -s<來源位址> 設定本地主機送出資料包的IP地址。
- -u 使用UDP傳輸協議。
- -v 顯示指令執行過程。
- -w<超時秒數> 設定等待連線的時間。
- -z 使用0輸入/輸出模式,只在掃描通訊埠時使用。
例項
TCP埠掃描
# nc -v -z -w2 192.168.0.3 1-100 192.168.0.3: inverse host lookup failed: Unknown host (UNKNOWN) [192.168.0.3] 80 (http) open (UNKNOWN) [192.168.0.3] 23 (telnet) open (UNKNOWN) [192.168.0.3] 22 (ssh) open
掃描192.168.0.3 的埠 範圍是 1-100
掃描UDP埠
# nc -u -z -w2 192.168.0.1 1-1000 //掃描192.168.0.3 的埠 範圍是 1-1000
掃描指定埠
# nc -nvv 192.168.0.1 80 //掃描 80埠 (UNKNOWN) [192.168.0.1] 80 (?) open y //使用者輸入
常用示例
[root@chenshifengdeLinuxServer ~] nc -l 9999 # 開啟一個本地9999的TCP協議埠,由客戶端主動發起連線,一旦連線必須由服務端發起關閉 [root@chenshifengdeLinuxServer ~] nc -vw 2 192.168.21.248 11111 # 通過nc去訪問192.168.21.248主機的11111埠,確認是否存活;可不加引數 [root@chenshifengdeLinuxServer ~] nc -ul 9999 # 開啟一個本地9999的UDP協議埠,客戶端不需要由服務端主動發起關閉 [root@chenshifengdeLinuxServer ~] nc 192.168.21.248 9999 < test # 通過192.168.21.248的9999TCP埠傳送資料檔案 [root@chenshifengdeLinuxServer ~] nc -l 9999 > zabbix.file # 開啟一個本地9999的TCP埠,用來接收檔案內容測試網速
A機器操作如下:
[root@chenshifengdeLinuxServer ~] yum install -y dstat # A機器安裝dstat命令
[root@chenshifengdeLinuxServer ~] nc -l 9999 > /dev/nullB機器開啟資料傳輸
nc 10.0.1.161 9999 </dev/zero
A機器進行網路監控
[root@chenshifengdeLinuxServer ~] dstat
例1:代理(瀏覽器輸入120.0.0.1,返回百度首頁)
mkfifo /tmp/fifonc -lk 8080 < /tmp/fifo | sed -l -e 's/^Host.*/Host:www.baidu.com/' | tee -a /tmp/req.log | nc www.baidu.com 80 | tee -a /tmp/res > /tmp/fifo