206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
如何在Linux系统的实例中通过netstat命令查看系统端口信息的使用?-阿里云服务器ECS使用教程

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

概述

本文介绍了在Linux系统的实例中通过netstat命令查看系统端口信息的使用。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文主要介绍在Linux系统中netstat命令的以下几种用法。
  • netstat命令使用介绍
  • netstat命令常用的命令组合
  • netstat命令处理端口占用

 

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:命令用法帮助。

 

netstat命令常用的命令组合

通常结合grepwcsort等命令来分析系统连接情况和连接数状态,可以判断服务器是否被攻击,命令组合使用介绍参考如下。

  • 执行如下命令,显示所有活动的网络连接。
     
    netstat -na
  • 执行如下命令,显示所有指定端口的网络连接并排序。如果该指定端口被Web服务进程监听,就可以通过查看该指定端口监控Web服务。如果看到同一个IP有大量连接,则判定该IP疑似存在单点流量攻击行为。
     
    netstat -an | grep :[$Port] | sort
    注:[$Port]为Linux系统指定的端口号。
  • 执行如下命令,统计当前服务器有多少个活动的指定服务连接数。正常来说这会很小,一般小于5。在遭受DDoS攻击时,会造成该值会很高,但是该值并不能用来判断是否遭受DDoS攻击,因为在高并发服务器上,该值也会很高。

     
    netstat -n -p|grep [$Server] | wc -l
    注:[$Server]指需要查看的服务名或进程名。
  • 执行如下命令,列出所有与指定服务连接点连接过的IP地址。
     
    netstat -n -p | grep [$Server] | sort -u
  • 执行如下命令,列出所有发送指定服务连接点的IP地址。
     
    netstat -n -p | grep [$Server] | awk '{print $5}' | awk -F: '{print $1}'
  • 执行如下命令,统计所有连接到本机的IP地址。
     
    netstat -ntu | awk '{print $5}' | cut -d: -f1 |
    sort | uniq -c |
    sort -n
  • 执行如下命令,统计所有TCP和UDP连接到本机的IP和连接次数。
     
    netstat -anp | egrep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 |
    sort | uniq -c |
    sort -n
  • 执行如下命令,检查ESTABLISHED连接并且统计出每个IP地址的连接次数。
     
    netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 |
    sort | uniq -c |
    sort -nr
  • 执行如下命令,统计出连接到指定端口的IP地址连接次数,并列出排名前10的IP地址信息和该IP地址的连接次数。如果有单个IP地址存在大量连接,则判断为该IP地址是单点流量攻击行为。
     
    netstat -antp |awk '$4 ~ /:80$/ {print $4" "$5}'|awk '{print $2}'|awk -F : {'print $1'}|uniq -c|sort -nr|head -n 10

 

netstat命令处理端口占用

  1. 执行如下命令,根据对应的端口号,查找出对应端口号占用的进程信息。
     
    netstat -antp | grep [$Port]
  2. 执行如下命令,根据以上步骤获取的进程ID号,结束指定进程,解决端口占用问题。
     
    kill -9 [$PID]
    注:[$PID]为上一步获取到的指定端口PID进程号。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!