Shell

如何創建 TCP 偵聽器?

  • April 6, 2022

**簡介:**我創建了一個 bash 函式,該函式能夠檢查埠是否可用,如果為 false,則將其遞增 1 直到某個最大埠號。例如,如果埠 500 不可​​用,則將檢查 501 的可用性,直到 550。

**目標:**為了測試這個 bash 功能,我需要創建一系列處於 LISTEN 狀態的埠。

嘗試:在 Windows 上,可以使用以下 PowerShell 命令創建 LISTEN 埠:

PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP    0.0.0.0:1234           0.0.0.0:0              LISTENING       InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>

基於此,我試圖考慮一個可以在 CentOS 上執行相同操作的命令,但我不知道為什麼,我開始使用 Google 卻沒有找到解決此問題的解決方案。

預期答案:我將接受並支持包含能夠創建 LISTEN 埠的命令的答案,一旦命令執行,埠應保持 LISTEN 狀態,即:

[user@host ~]$ ss -nat | grep 500
LISTEN     0      128                       *:500                       *:*

您可以將nc -l其用作一種方法來做您正在尋找的事情。一些實現nc有一個-L允許連接持續存在的選項。

如果您只需要它們一段時間,您可以for循環打開此命令並以這種方式打開一堆埠。

如果您需要這些打開更長時間,您可以使用其中一個超級伺服器來創建守護程序。

您可以使用 Netcat 創建埠偵聽器。

root@ubuntu:~# nc -l 5000

您還可以使用 netstat 命令檢查埠是否打開。

root@vm-ubuntu:~# netstat -tulpen | grep nc
tcp        0      0 0.0.0.0:5000             0.0.0.0:*               LISTEN      0          710327      17533/nc

你也可以用 nc 檢查:

Netcat 伺服器監聽器:

nc -l localhost 5000

網貓客戶端:

root@vm-ubuntu:~# nc -v localhost 5000
Connection to localhost 5000 port [tcp/*] succeeded!

如果埠未打開

root@vm-ubuntu:~# nc -v localhost 5000
nc: connect to localhost port 5000 (tcp) failed: Connection refused

引用自:https://unix.stackexchange.com/questions/214471