nc
(netcat)是一個強大的網絡工具,用于讀取和寫入數據流
-w
:設置超時時間(以秒為單位)。例如,-w 10
表示等待連接的時間為10秒。這對于防止慢速攻擊非常有用。
-k
:在客戶端斷開連接后,保持服務器端監聽。例如,-k 10
表示在客戶端斷開后,服務器端將繼續監聽10秒。
-l
:以監聽模式運行nc。這意味著nc將在指定的端口上等待連接,而不是主動發起連接。例如,nc -l 12345
將使nc在端口12345上監聽連接。
-p
:指定nc監聽的端口號。例如,nc -l 12345 -p 1234
將使nc在端口1234上監聽連接。
-u
:以UDP模式運行nc,而不是TCP。這對于處理無連接的數據流非常有用。
-s
:指定發送數據時的源端口。例如,nc -s 12345 -u -w 10
將使用源端口12345發送數據,并在10秒后超時。
-d
:在發送數據時啟用調試模式。這將輸出nc發送和接收的數據包信息。
-i
:設置間隔時間(以毫秒為單位),用于在發送數據時顯示時間戳。例如,nc -i 1000 -u -w 10
將每1000毫秒發送一次數據,并在10秒后超時。
-n
:以數字形式解析主機名和端口名,而不是嘗試解析它們為域名或服務名。例如,nc -n 127.0.0.1 12345
將直接連接到IP地址為127.0.0.1的主機上的端口12345。
-v
:增加詳細輸出,顯示nc正在做什么。這對于調試和了解nc的工作原理非常有用。
根據您的需求,可以組合使用這些參數來優化nc命令。例如,要創建一個在端口12345上監聽的UDP服務器,可以使用以下命令:
nc -lu 12345
要創建一個在端口12345上監聽的TCP服務器,并在客戶端斷開后繼續監聽,可以使用以下命令:
nc -l 12345 -w 10