netstat之命令使用

本文最后更新于:2021年9月29日 下午

netstat介绍

netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等,常用方式如下:

参数说明

netstat -atunlp,各参数含义如下:

-t : 指明显示TCP端口

-u : 指明显示UDP端口

-l : 仅显示监听套接字(LISTEN状态的套接字)

-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序

-n : 不进行DNS解析

-a 显示所有连接的端口

执行后效果如下

image-20210618105029396

名称 说明
Proto 协议 udp/tcp
Recv-Q 网络接收队列
Send-Q 网络发送队列
Local Address 本地地址:端口
Foreign Address 外部地址:端口
State 内部地址与外部地址的连接状态
PID/Program name 进程pid/进程名称

理解Local Address 和 Foreign Address 中的地址表示

彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0

通用命令

显示核心路由信息

1
netstat -r

显示网络接口列表

1
netstat -i

常用命令

列出所有监听 tcp 端口

1
netstat -ltp

列出所有监听 Udp 端口

1
netstat -lunp

找出运行在指定端口的进程

1
netstat -an | grep ':80'

IP和TCP分析

查看连接某服务端口最多的的IP地址

1
netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20

lsof命令

lsoflist open files 的简称。正如名字所示,它的作用主要是列出系统中打开的文件。乍看起来,这是个功能非常简单,使用场景不多的命令,不过是 ls 的另一个版本。但是因为 unix 系统的 everything is a file 的哲学,基本上 *nix 系统所有的对象都可以看做对象,再加上这个命令提供的各种参数,使得它其实非常强大,能够轻松地获得很多非常有用的信息,有些用其他工具会非常麻烦。

常用命令

列出谁在使用某个特定的端口

1
lsof -i:55

列出谁在使用某个特定的udp/tcp端口

1
lsof -i udp/tcp:55

列出所有被使用的udp/tcp端口

1
lsof -i udp/tcp

参考

lsof使用方法汇总


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!