一、netstat解释
netstat命令(net statistics缩写的拼接)直译过来即是“网络统计”之意。为查看网络端口统计情况,查找应用程序所占端口情况而使用最常见的命令。监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
二、使用场景
1.netstat -tunlp 查看所有在监听的tcp udp端口和程序名
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1164/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1037/zabbix_agentd
tcp 0 0 0.0.0.0:6373 0.0.0.0:* LISTEN 1044/redis-server 0
tcp 0 0 127.0.0.1:8200 0.0.0.0:* LISTEN 10070/apm-server
tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 4608/kube-proxy
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 698/rsync
tcp 0 0 127.0.0.1:1514 0.0.0.0:* LISTEN 2169/docker-proxy
tcp 0 0 0.0.0.0:18517 0.0.0.0:* LISTEN 1026/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1164/master
tcp6 0 0 :::443 :::* LISTEN 2219/docker-proxy
tcp6 0 0 :::4443 :::* LISTEN 2195/docker-proxy
tcp6 0 0 :::44508 :::* LISTEN 16656/java
tcp6 0 0 127.0.0.1:9600 :::* LISTEN 32470/java
tcp6 0 0 :::8000 :::* LISTEN 2107/docker-proxy
tcp6 0 0 :::4194 :::* LISTEN 4949/kubelet
tcp6 0 0 :::10050 :::* LISTEN 1037/zabbix_agentd
tcp6 0 0 172.16.16.17:9092 :::* LISTEN 16656/java
tcp6 0 0 :::10248 :::* LISTEN 4949/kubelet
tcp6 0 0 :::873 :::* LISTEN 698/rsync
tcp6 0 0 :::30538 :::* LISTEN 4608/kube-proxy
tcp6 0 0 :::10250 :::* LISTEN 4949/kubelet
tcp6 0 0 :::3306 :::* LISTEN 1174/mysqld
tcp6 0 0 :::10255 :::* LISTEN 4949/kubelet
tcp6 0 0 :::9200 :::* LISTEN 5381/java
tcp6 0 0 :::31760 :::* LISTEN 4608/kube-proxy
tcp6 0 0 :::10256 :::* LISTEN 4608/kube-proxy
tcp6 0 0 :::80 :::* LISTEN 2248/docker-proxy
tcp6 0 0 :::9300 :::* LISTEN 5381/java
2.netstat -anp | grep 端口号 查看哪儿个程序占用了某端口号
tcp 0 0 172.16.16.17:36456 172.16.16.16:3306 ESTABLISHED 1174/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1174/mysqld
三、netstat参数介绍
-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示FIB。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。(此参数必须有root权限)
-r或--route 显示Routing Table。
-s或--statistice 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。