我需要一个 Linux 命令来列出在应用程序中使用的所有可用的开放端口
lsof -i TCP| fgrep LISTEN
Run Code Online (Sandbox Code Playgroud)
不认为有帮助,因为它列出的端口不一定免费使用。如何列出未使用的免费开放端口?
小智 307
netstat -lntu
Run Code Online (Sandbox Code Playgroud)
正如@askmish 所回复的,会给你在你的系统上运行的 tcp 和 udp 端口的服务列表,其中
-l
= 仅在某个端口上侦听的服务-n
= 显示端口号,不要尝试解析服务名称-t
= tcp 端口-u
= UDP 端口-p
= 程序名称您不需要 'p' 参数,因为您只对获取哪些端口空闲而不是在其上运行的程序感兴趣。
但是,这仅显示系统上的哪些端口已用完。这不会告诉您网络的状态,例如,如果您在 NAT 之后并且您希望某些服务可以从外部访问。或者,如果防火墙阻止了外部访问者的端口。在这种情况下,nmap 就派上用场了。警告:仅在您控制的网络上使用 nmap。此外,还有防火墙规则可以阻止 nmap ping,您必须摆弄选项才能获得正确的结果。
小智 113
由于net-tools
已弃用,您可以使用该ss
命令代替netstat
if netstat
is not present 在您的机器上:
ss -lntu
Run Code Online (Sandbox Code Playgroud)
应该类似于
netstat -lntu
Run Code Online (Sandbox Code Playgroud)
根据内置帮助:
-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
-p, --processes show process using socket
Run Code Online (Sandbox Code Playgroud)
小智 25
此命令将列出打开的网络端口和拥有它们的进程:
netstat -lnptu
此后,您可以将结果过滤到您的确切规格。
您还可以使用nmap
有关端口的更细粒度的结果。
所有打开的端口,包括响应流量:
netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
591844 次 |
最近记录: |