簡體   English   中英

如何找到一個免費的TCP端口

[英]How to find a free TCP port

如何在服務器上找到完全免費的TCP端口? 我已經嘗試過命令行了;

netstat -an

但是我被告知狀態為LISTENING的人已經被使用。

我還嘗試了一個名為TCPView的工具,但它再次僅顯示正在使用的TCP端口。 我知道如何通過telnet到端口來檢查端口是否打開,但是我需要找到一個免費的端口。

netstat -lntu

這將解決您的目的。

在Bash中,您可以編寫簡單的for循環來檢查哪些TCP端口是空閑的,例如

$ for i in {1..1024}; do (exec 2>&-; echo > /dev/tcp/localhost/$i && echo $i is open); done
22 is open
25 is open
111 is open
587 is open
631 is open
841 is open
847 is open
1017 is open
1021 is open

有關更多信息,請參見: 高級Bash腳本指南:第29章。/ /dev/proc

https://gist.github.com/lusentis/8453523啟發

從種子端口開始,然后增加它直到可用

BASE_PORT=16998
INCREMENT=1

port=$BASE_PORT
isfree=$(netstat -taln | grep $port)

while [[ -n "$isfree" ]]; do
    port=$[port+INCREMENT]
    isfree=$(netstat -taln | grep $port)
done

echo "Usable Port: $port"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM