Linux netstat:查看网络状态
netstat 主要用于网络监控,在进程管理方面也很重要。
它的输出分为两大部分,分别是网络和系统自己的进程相关性部分。
语法
netstat [-atunlp]
参数
- -a 列出目前系统上所有的连接、监听、Socket数据;
- -t 列出TCP网络数据包的数据;
- -u 列出UDP网络数据包的数据;
- -n 不列出进程的服务名称,以端口号来代替
- -l 列出目前正在网络监听的服务
- -p 列出该网络服务的进程 PID
范例一
netstat
输出:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 36 iz2zeb0rftmzvuq8o8d:ssh 13.13.206.183.stat:4605 ESTABLISHED
tcp 0 0 iz2zeb0rftmzvuq8o:36836 100.100.30.25:http ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 9799 /run/systemd/shutdownd
unix 2 [ ] DGRAM 6873 /run/systemd/notify
unix 2 [ ] DGRAM 6875 /run/systemd/cgroups-agent
unix 5 [ ] DGRAM 6895 /run/systemd/journal/socket
unix 9 [ ] DGRAM 6897 /dev/log
unix 3 [ ] STREAM CONNECTED 11580 /var/run/dbus/system_bus_socket
上面的结果中,显示了两个部分,分别是网络连接以及系统上的socket程序相关性部分。
先看网络连接部分:
- Proto: 网络的数据包协议,主要分为TCP和UDP
- Recv-Q:非由用户进程连接到此socket的复制的总字节数
- Send-Q:非由远程主机传送过来的 acknowledged 总字节数
- LocalAddress: 本地IP端口情况
- ForeignAddress:远程主机的IP端口情况
- State:连接状态,主要有建立(ESTABLISHED)及监听(LISTEN)
除了网络连接之外,Linux系统上的进程是可以接收不同进程发送过来的信息,那就是scoket file。scoket file可以沟通两个进程之间的信息。上面的socket file的输出字段主要有:
- Proto: 一般就是Unix
- RefCnt:连接到此socket的进程数量
- Flags:连接的标识
- Type:socket访问的类型,主要有确认连接的STREAM和不需确认的DGRAM两种。
- State:若为CONNECTED 表示多个进程之间已经连接建立。
- Path:连接到此socket的相关程序的路径,或者相关数据输出的路径。
范例二
找出目前系统上已在监听的网络连接以及PID
netstat -tlnp
范例三
查看某个端口的占用情况
netstat -tunlp|grep 端口号
作者:皎然CEO
链接:https://www.cnblogs.com/jiaoran/p/14522221.html
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦(っ•̀ω•́)っ✎⁾⁾!