1.netstat的安装
yum install net-tools
2.列出所有连接
netstat -a
3.只列出tcp和udp协议的连接( IPv4 和 IPv6 的连接)
-t 列出tcp协议连接
-u 列出udp协议连接
-x 只列出所有监听unix端口netstat -lx
4.禁用反向域名解析,加快查询速度
默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能
5.使用-l只列出监听中的连接
任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字(-t列出tcp协议的连接,可以换成-u)
注意:不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口
6.使用 -p 获取进程名、进程号以及用户ID
使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下
7.使用 -ep 选项可以同时查看进程名和用户名
额外的信息包括用户名和进程的索引节点号
8.打印统计数据
以打印出网络统计数据,包括某个协议下的收发包数量
只打印出 TCP 或 UDP 协议的统计数据,只要加上对应的选项(-t 和 -u)
9.显示内核路由信息
10.使用-i打印网络接口
-e 选项和 -i 选项搭配使用,可以输出用户友好的信息(与ip address一样)
11.使用netstat -c持续输出
12.使用-g显示多播组信息(IPv4和IPv6的多播组信息)
13.打印active状态的连接
active 状态的套接字连接用 "ESTABLISHED" 字段表示,所以我们可以使用 grep 命令获得 active 状态的连接
配合 watch 命令监视 active 状态的连接
watch -d -n0 "netstat -atnp | grep ESTA"
备注:
watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行
直接在 watch 后面接你想运行的命令,watch 就会帮你重复运行,并把每次的结果都更新在屏幕上)
-d, --differences[=cumulative] 高亮显示变动
-n, --interval=
-t 或-no-title 会关闭watch命令在顶部的时间间隔(如下加上-t后)
14.查看服务是否在运行
如查看http,smtp,sshd 或 ntp 服务是否在运行,使用 grep
netstat -aple|grep sshd
15.找出程序运行的端口
netstat -an|grep ':22'
16.查看TCP各种状态列表
[root@centos1 home]# netstat -nat |awk '{print $6}'
established)
Foreign
LISTEN
ESTABLISHED
TIME_WAIT
SYN_SENT
把状态全都取出来,然后使用uniq -c统计,之后再进行排序
[root@centos1 home]# netstat -nat |awk '{print $6}'|sort|uniq -c
1 established)
1 ESTABLISHED
1 Foreign
5 LISTEN
总结:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
参考博客:https://blog.csdn.net/u010739551/article/details/80736032