2013-01-08 07:34:55 +0000 2013-01-08 07:34:55 +0000
202
202
Advertisement

获取 Linux 中的开放端口列表

Advertisement

我需要一个 Linux 命令来列出所有可在应用程序中使用的免费开放的端口

lsof -i TCP| fgrep LISTEN

看上去没有帮助,因为它列出的端口不一定是免费的。如何列出未使用的免费开放端口?

Advertisement
Advertisement

答案 (7)

268
268
268
2013-01-08 11:51:03 +0000

由 @askmish 回答的 netstat -lntu

会给你一个在你的系统上运行的服务列表,其中

  • -l = 只有在某些端口上监听的服务
  • -n = 显示端口号。不要试图解析服务名称
  • -t = tcp 端口
  • -u = udp 端口
  • -p = 程式名称

你不需要'p'参数, 因为你只想知道哪些端口是空闲的, 而不是哪个程序在上面运行。

这只显示系统上的哪些端口被用完了。这并不能告诉您网络的状态,例如,如果您的网络是在NAT的后面,而您希望某些服务可以从外部访问。或者是防火墙阻挡了外部访问者的端口。在这种情况下,nmap就能救你于水火。警告:只在你控制的网络上使用nmap。另外,有一些防火墙规则可以阻止nmap的ping,你必须要在选项中修改一下才能得到正确的结果。

93
93
93
2016-06-08 20:19:05 +0000

由于net-tools已被废弃,如果你的机器上没有ss,你可以使用netstat命令来代替netstat

ss -lntu

的工作原理与 netstat -lntu

的工作原理类似,根据内置的帮助:

-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
21
Advertisement
21
21
2013-01-08 07:45:50 +0000
Advertisement

这个命令将列出开放的网络端口和拥有这些端口的进程:

netstat -lnptu

nmap 您可以根据您的具体规格过滤结果。

5
5
5
2014-11-03 04:33:36 +0000

所有打开的端口,包括响应流量:

netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
1
Advertisement
1
1
2019-01-16 23:21:34 +0000
Advertisement

我对最初的问题的理解是,他问的是未使用的端口,而不是当前连接到服务的端口。如果是这样的话,除了列出已使用的端口并假定其他的端口是未使用的外,没有具体的方法来列出它们。

0
0
0
2019-01-16 19:51:05 +0000

试试

sudo netstat -plnt | grep -E '(0.0.0.0:|:::|127.0.0.1:|::1:)' | awk 'NR>2{print $7}' | sort -n | uniq

,看看这个。

0
Advertisement
0
0
2016-04-04 06:29:27 +0000
Advertisement

下面的命令可以在任何一个与Ubuntu/Debian相同的Unix上工作,输出的格式与Ubuntu/Debian相同–本地地址在第4列,输出的内容包括顶部的两行标题。

如果你只想要IPv4:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq

如果你只想要IPv6:

netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq

如果你想要两者兼而有之:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq

该命令输出的是所有接口上正在监听的端口号列表。如果你想列出所有在localhost接口上监听的端口,那么可以用这样的命令:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
Advertisement

相关问题

6
10
5
37
4
Advertisement