Linux nc 命令詳解

唐青枫發表於2024-11-24

簡介

nc 全稱 netcat,是一個在 Linux 中多功能的網路工具,通常用於透過 TCPUDP 讀取和寫入網路連線,也能作為客戶端或服務端用來 debug,測試,網路問題分析。

常用示例

檢查埠是否是開啟的

nc -zv <hostname> <port>

nc -zv example.com 80

# -z:掃描但不傳送資料
# -v:詳細輸出模式

啟動一個簡單的 TCP 服務

nc -l <port>

nc -l 1234

# 啟動一個監聽在 1234 埠的服務,任何資料傳送在這個埠上將會顯示在終端

連線指定埠的 TCP 服務

nc <hostname> <port>

nc localhost 1234

# 連線 localhost 的 1234 埠

傳送檔案到指定服務埠

nc <receiver_ip> <port> < file_to_send

nc 192.168.1.10 1234 < file.txt

從指定服務埠接受檔案

nc -l <port> > received_file

nc -l 1234 > file.txt

埠掃描

nc -zv <hostname> <start_port>-<end_port>

nc -zv 192.168.1.1 20-25

# 掃描從20到25的埠

建立簡單的聊天會話

nc -l 1234

nc <server_ip> 1234

傳送 HTTP 請求到目標服務

echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

連線到 UDP 服務

nc -u <hostname> <port>

nc -u localhost 1234

傳送資料到指定的主機埠

echo "Hello, World!" | nc <hostname> <port>

高階用法

建立一個 Web 服務

while true; do echo -e "HTTP/1.1 200 OK\r\n\r\nHello, World!" | nc -l 8080; done

# 建立一個監聽在 8080 埠的服務

監控網路流量

nc -l 1234 | tee output.log

# 記錄傳送到 1234 埠的資料並寫到日誌檔案

相關文章