netstat 的10个基本用法
文章简洁实用,转载至此学习、复习。
关于netstat
命令的简单介绍
netstat - 为你的 Linux 服务器提供了监测和网络故障排除的重要观察手段。
几个选项的解释
-p
:显示进程名和进程PID(需要root权限)
-e
: 显示进程的用户名,如果配合-n
选项一起,则User列的属性就是用户ID
-s
: 打印出网络统计数据,包括某个协议下的收发包数量,配合-t
、-u
则只打印TCP、UDP协议的统计数据
-c
: 持续输出
其他
(1)打印active状态的连接
active 状态的套接字连接用 "ESTABLISHED" 字段表示,所以我们可以使用 grep 命令获得 active 状态的连接:
配合 watch 命令监视 active 状态的连接:
watch -d -n0 "netstat -atnp | grep ESTA"
重要的新网络监控命令
其实, netstat
命令比较经典,如今又更优秀的工具ss
.
ss工具用于导出套接字统计,它可以显示与netstat类似的信息,且可以显示更多的TCP和状态信息。因为它直接从内核空间获取信息,所以会更快。ss的操作和netstat很像,所以这让它可以很容易就可以取代netstat.
ss命令使用的常见选项
ss和netstat很像,默认它会显示已经建立连接的开放的非监听TCP套接字列表。并且你可以用下面的选项过滤输出:
-n
: 不要尝试解析服务名。
-r
: 尝试解析数字的地址/端口。
-a
: 显示所有套接字。
-l
: 显示监听套接字。
-p
: 显示使用该套接字的进程。
-s
: 打印统计数据
-t
: 只显示TCP套接字。
-u
: 只显示UDP套接字。
-d
: 只显示DCCP套接字
-w
: 只显示RAW套接字。
-x
: 只显示Unix域套接字
-f
: FAMILY, 显示FAMILY套接字的类型。目前支持下面这些族:unix、inet、inet6、link、netlink。
-A
: QUERY, 指定要列出的套接字列表,通过逗号分隔。可以识别下面的标识符:all、inet、tcp、udp、raw、unix、packet、netlink、unixdgram、unixstream、packetraw、packetdgram。
-o
: STATUS, 列出指定状态的套接字