# cat /proc/sys/net/ipv4/ip_local_port_range
10000 64999
开始端口值:
cat /proc/sys/net/ipv4/ip_local_port_range |cut -f 1
结束端口值
cat /proc/sys/net/ipv4/ip_local_port_range |cut -f 2
2数相减得到临时端口总数,若临时端口总数小于28232,说明操作系统随机端口范围太小,需要联系操作系统管理员扩大端口范围。
临时端口使用数:
ss -ant 2>/dev/null | grep -v LISTEN | awk 'NR > 2 {print $4}'| awk -F':' '{print $NF}' | awk '$1 >"开始端口值" {print $1}' | sort -u | wc -l
这个命令是一个用于查看网络连接端口的复杂命令。让我们逐步解读这个命令的每个部分:
-
ss -ant 2>/dev/null
: 这部分命令使用ss
工具来显示TCP连接的相关信息,其中-a
选项表示显示所有连接,-n
选项表示以数字形式显示,-t
选项表示只显示TCP连接。2>/dev/null
是将标准错误输出重定向到/dev/null
,这样可以屏蔽错误信息。 -
grep -v LISTEN
: 这里使用grep
命令来过滤掉包含LISTEN
的行,即只显示非监听状态的连接。 -
awk 'NR > 2 {print $4}'
: 使用awk
命令,NR > 2
表示只处理行号大于2的行,{print $4}
表示打印这些行的第四列内容,这里应该是显示连接的本地地址和端口信息。 -
awk -F':' '{print $NF}'
: 这里使用awk
命令,-F':'
表示以冒号为分隔符,{print $NF}
表示打印每行中最后一个以冒号分隔的部分,这应该是端口号。 -
awk '$1 >"开始端口值" {print $1}'
: 使用awk
命令,$1 >"开始端口值"
表示只打印端口号大于"开始端口值"的行,{print $1}
表示打印符合条件的端口号。 -
sort -u
: 使用sort
命令对端口号进行排序,并且使用-u
选项去除重复的行,即去除重复的端口号。 -
wc -l
: 最后使用wc -l
命令来统计输出的行数,即统计不重复的端口号的数量。
综合起来,这个命令的作用是查看当前系统中除监听状态外的TCP连接的端口号,并统计不重复的端口号数量,其中"开始端口值"是一个占位符,实际使用时应该替换为具体的端口号值。
ss -ant 2>/dev/null | grep -v LISTEN | awk 'NR > 2 {print $4}'| awk -F':' '{print $NF}' | awk '$1 >1024 {print $1}' | sort -u | wc -l
使用公式计算临时端口使用率,临时端口使用率=(临时端口使用数/临时端口总数)*100
系统每30秒周期性检测TCP临时端口使用率,并把实际使用率和阈值(系统默认阈值80%)进行比较,当检测到TCP临时端口使用率连续多次(默认值为5)超过阈值时产生该告警。
平滑次数为1,TCP临时端口使用率小于或等于阈值时,告警恢复;平滑次数大于1,TCP临时端口使用率小于或等于阈值的90%时,告警恢复。
参考
TCP连接中客户端的端口号是如何确定的?
https://cloud.tencent.com/developer/article/1963197
TCP临时端口使用率超过阈值
https://support.huaweicloud.com/usermanual-mrs/ALM-12052.html
临时端口号(EPHEMERAL PORT)的动态分配
https://focusvirtualization.blogspot.com/2017/10/protocol-stack-70-ephemeral-port.html
避免 TCP/IP 端口耗尽
https://www.cnblogs.com/tianzhiliang/archive/2011/06/27/2091214.html
sysctl
https://wiki.archlinuxcn.org/wiki/Sysctl
ALM-12051 磁盘Inode使用率超过阈值
https://support.huaweicloud.com/usermanual-mrs/ALM-12051.html
ALM-12053 主机文件句柄使用率超过阈值
https://support.huaweicloud.com/usermanual-mrs/ALM-12053.html
网友评论