如何查找 Linux 中开放端口的数量?我想查看端口是否用完。另外,如何查看操作系统的限制?
答案1
在现代 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
答案2
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 个可用端口号。
答案3
正如其他人提到的,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>"
答案4
尝试
# lsof -n -i -P
为了完整起见:)