免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
本文介绍了在Linux系统的实例中通过netstat
命令查看系统端口信息的使用。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
netstat
命令的以下几种用法。
netstat
命令通常是用来监控TCP/IP网络的工具,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。如果需要了解当前系统开放了哪些端口,及这些端口的关联进程和用户,可以通过netstat
命令进行查询。此处介绍了netstat
命令的语法和参数,步骤如下。
netstat [$Parameter]
注:[$Parameter]为netstat命令参数。
参数说明如下。
-a
或--all
:显示所有连接中的Socket。-A
:列出该网络类型连接中的相关地址。 -c
或--continuous
:持续列出网络状态。-C
或--cache
:显示路由器配置的缓存信息。-e
或--extend
:显示额外的网络相关信息。-t
:仅显示TCP端口。-u
:仅显示UDP端口。-l
:仅显示监听套接字。-p
:显示进程标识符和程序名称,每一个套接字或端口都属于一个程序。-n
:不进行DNS轮显示IP,可以加速操作。--help
:命令用法帮助。
通常结合grep
、wc
或sort
等命令来分析系统连接情况和连接数状态,可以判断服务器是否被攻击,命令组合使用介绍参考如下。
netstat -na
netstat -an | grep :[$Port] | sort
注:[$Port]为Linux系统指定的端口号。
执行如下命令,统计当前服务器有多少个活动的指定服务连接数。正常来说这会很小,一般小于5。在遭受DDoS攻击时,会造成该值会很高,但是该值并不能用来判断是否遭受DDoS攻击,因为在高并发服务器上,该值也会很高。
netstat -n -p|grep [$Server] | wc -l
注:[$Server]指需要查看的服务名或进程名。
netstat -n -p | grep [$Server] | sort -u
netstat -n -p | grep [$Server] | awk '{print $5}' | awk -F: '{print $1}'
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -anp | egrep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
netstat -antp |awk '$4 ~ /:80$/ {print $4" "$5}'|awk '{print $2}'|awk -F : {'print $1'}|uniq -c|sort -nr|head -n 10
netstat -antp | grep [$Port]
kill -9 [$PID]
注:[$PID]为上一步获取到的指定端口PID进程号。