『运维备忘录』之 Netstat 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 Netstat


一、简介

『运维备忘录』之 Netstat 命令详解_第1张图片

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。

netstat基本语法:

netstat [-a] [-b] [-e] [-n] [-o] [-p ] [-r] [-s] []

二、基本用法

2.1. 查看监听

参数 说明
netstat -ltunp 所有监听端口
netstat -ltn 监听 TCP 端口
netstat -lun 监听 UDP 端口
netstat -lx 监听 Unix 端口
netstat -lt 仅列出侦听 TCP 端口
netstat -lu 仅列出侦听 UDP 端口
netstat -l 列出所有监听条件

2.2. 查看网络

参数 说明
netstat -i 显示网络接口
netstat -ie 显示网络接口扩展信息
netstat -n 仅显示 IP 地址
netstat -F 尽可能显示 IP 地址的域名

2.3. 查看统计数据

参数 说明
netstat -s 显示统计信息
netstat -st 显示 TCP 统计信息
netstat -su 显示 UDP 统计信息
netstat -ltpe 使用进程信息和扩展信息显示 TCP 的侦听连接
netstat -tp 显示带有 PID 编号的服务名称
sudo netstat -nlpt 列出进程名称/PID 和用户 ID
netstat -nlptue 所有带有 PID 和扩展信息的侦听端口
netstat -M 显示伪装的连接

2.4. 查看路由

参数 说明
netstat -r 显示路由表
netstat -rn 显示路由表,不解析主机

2.5. 查看连接

参数 说明
netstat -a 所有连接
netstat -at 所有 TCP 连接
netstat -au 所有 UDP 连接
netstat -ant 显示没有反向 DNS 查找的 IP 地址
netstat 活动连接
netstat -a 所有连接
netstat -at 所有 TCP 连接
netstat -au 所有 UDP 连接
netstat -ant 显示没有反向 DNS 查找的 IP 地址
netstat -tnl 监听 TCP 端口
netstat -unl 监听 UDP 端口
netstat -atnp | grep ESTA 显示活动/已建立的连接
netstat -anp | grep":8080" 显示到特定端口的所有打开连接
netstat --tcp --numeric 显示没有域名的 TCP 连接
watch -d -n0 "netstat -atnp | grep ESTA" 获取活动连接的连续列表
netstat -aple | grep http 检查服务是否正在运行

三、进阶命令

3.1. 显示具有大量连接的 IP

$ netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

3.2. 显示连接到端口 80 的 IP 地址

$ netstat -tn 2>/dev/null | grep ':80 ' | awk '{print $5}' |sed -e 's/::ffff://' | cut -f1 -d: | sort | uniq -c | sort -rn | head

3.3. 显示端口 80 上的活动连接数

$ netstat -an |grep :80 |wc -l

3.4. 查看每个远程 IP 的连接数

$ netstat -antu | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -n

$ netstat -antu | awk '$5 ~ /[0-9]:/{split($5, a, ":"); ips[a[1]]++} END {for (ip in ips) print ips[ip], ip | "sort -k1 -nr"}'

3.5. 显示活动 SYNC_REC

以下命令将输出服务器上正在发生和正在发生的活动 SYNC_REC 数量。数量应该很低(小于 5)。如果该数字为两位数,则您可能正在遭受 DoS 攻击或被邮件轰炸。

$ netstat -n -p|grep SYN_REC | wc -l

列出发送 SYN_REC 连接的唯一 IP 地址,该命令也列出了发送 SYN_REC 连接状态的节点的所有唯一 IP 地址:

$ netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

总结:netstat命令是我们定位网络相关问题的利器,大家可以在自己的环境里面多多尝试看看效果,实践出真知。

你可能感兴趣的:(运维备忘录,运维,网络)