如何在Linux中找到开放端口的数量?


17

如何在Linux中找到开放端口的数量?我想看看端口是否用完了。另外,如何查看操作系统的限制?


2
您正在做什么,担心端口用完?
MDMarra

Answers:


27

在现代linux上,使用ss(套接字统计信息)实用程序。

$ ss -s
Total: 10160 (kernel 10262)
TCP:   10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147

Transport Total     IP        IPv6
*         10262     -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       9941      9941      0        
INET      9946      9946      0        
FRAG      0         0         0        

9
netstat -an | grep ESTABLISHED | wc -l

将为您提供开放端口的数量,在我的情况下为32。

cat /proc/sys/net/ipv4/ip_local_port_range

将返回类似:

32768 61000

这意味着61000-32768-$ OPENPORTS = AvailablePorts

在我的盒子上,多数民众赞成在:

61000-32768-32 = 28200可用端口号。


-a46不起作用。有什么帮助吗?
erotsppa 2010年

您正在运行什么发行版?(适用于ubuntu服务器10.04 LTS)。当然,如果您没有安装ipv6,则只需使用netstat -a。
Grizly 2010年

在我的CentOS机器上进行了测试,如果您不使用“ -n”来停止名称解析,它似乎会挂起。(netstat -an | grep建立| wc -l)
Grizly 2010年

刚在下面看到“ ss”,那真棒,不知道..好多了!使用ip_local_port_range确定您的linux配置为允许的内容,但是它以更易于访问的格式显示您当前正在使用的内容!
2013年

8

正如其他人提到的那样,netstat是用于确定当前正在使用哪些端口的工具。至于限制,可用的端口数是一个16位无符号整数,其范围为0-65535。应用程序可以绑定到的端口是保留的特权/根端口(0-1024)以及临时端口范围未涵盖的任何端口。

您可以通过运行来查看临时端口cat /proc/sys/net/ipv4/ip_local_port_range

要持久地修改它,您必须在/etc/sysctl.conf文件中添加或修改“ net.ipv4.ip_local_port_range”,或者与 sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
尼特采摘,但这并不是一个ipv4限制。这是tcp / udp的限制。而那些独立于ipv4运行。(例如ipv6对传输层没有任何作用)
Joel K 2010年

啊,你是对的。我已在答案中删除了IPV4参考。
亚历克斯(Alex)2010年

1

我个人更喜欢nmap。您可以通过发出nmap -P 1-65535目标来找到所有端口的状态。大多数发行版应通过其软件包管理器提供此软件包。



0

netstat将允许您查看打开了哪些端口,请执行“ netstat-”以查看最适合您的需求。


1
netstat --inet将最有帮助。
Paul Tomblin

我的意思是 -?缺少角色。
jer.salamon 2010年

或阅读手册
MDMarra

还包括--inet6(均为-4 -6的缩写),以获取IPv6套接字和ip不可知的套接字(后者是双堆栈主机上的默认套接字,请参见rfc 3493 3.7节)。
东武


0

netstat -tulnp

下面列出了netstat程序的参数:

*

  t - Show TCP
*

  u - Show UDP
*

  l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*

  n - Do not resolve network IP address names or port numbers
*

  p - Show the process name that is listening on the port

0

在终端上使用以下命令检查所有端口

netstat -lntu

要查看特定的端口状态,请使用以下命令

netstat -an | grep ':6060'

用您的特定端口号替换6060。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.