如何找到一个免费的TCP端口

时间:2015-03-11 14:16:53

标签: linux tcp port netstat

如何在服务器上找到完全免费的TCP端口?我试过了命令行;

netstat -an

但我被告知已经使用了具有LISTENING状态的人。

我还尝试了一个名为TCPView的工具,但它再次只显示了正在使用的TCP端口。我知道如何telnet到一个端口检查它是否打开,但我需要找一个免费的。

3 个答案:

答案 0 :(得分:3)

netstat -lntu

这将解决您的目的。

答案 1 :(得分:2)

在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

有关详情,请查看:Advanced Bash-Scripting Guide: Chapter 29. /dev and /proc

答案 2 :(得分:0)

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"