1.命令作用
打印网络连接、路由表、接口统计信息、网络地址转换连接和多播成员资格(Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships)
2.命令语法
usage: netstat [-vWeenNcCF] [<Af>] -r
netstat [-vWnNcaeol] [<Socket> ...]
netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]
<Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
address families: inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)
3.参数详解
OPTION:
- -r, --route,显示路由表信息
- -I, --interfaces=<Iface>,显示<Iface>的接口表
- -i, --interfaces,显示网络接口信息
- -g, --groups,显示组播组成员关系
- -s, --statistics,显示网络统计信息。包括网络接口、SNMP协议等
- -M, --masquerade,显示伪装连接
- -v, --verbose,显示详细信息
- -W, --wide,不要截断IP地址
- -n, --numeric,不解析名称(以数字形式显示地址和端口号)
- --numeric-hosts,不要解析主机名
- --numeric-ports,不要解析端口名称
- --numeric-users,不要解析用户名
- -N, --symbolic,解析硬件名称
- -e, --extend,显示其他/更多信息(网络统计信息,包括网络接口、协议等)
- -p, --programs,显示socket的PID/程序名(显示特定协议tcp、udp或icmp的连接)
- -o, --timers,显示计时器(显示与每个连接相关的进程 ID)
- -c, --continuous,连续显示网络状态信息,按 Ctrl + C 结束
- -l, --listening,显示监听服务器套接字
- -a, --all,显示所有套接字(默认:已连接);包括TCP、UDP及Unix域套接字
- -F, --fib,display转发信息库(缺省值)
- -C, --cache,显示路由缓存而不是FIB
- -Z, --context,显示套接字的SELinux安全上下文
- -t, --tcp,显示TCP协议的连接
- -u, --udp,显示UDP协议的连接
- -U, --udplite,
- -S, --sctp,
- -w, --raw,
- -x, --unix,列出所有unix端口
- --ax25,
- --ipx,
- --netrom,
4.常用用例
4.1.列存所有连接(包括监听和未监听)
netstat -a # 列出所有连接
netstat -at # 列出所有tcp连接
netstat -au # 列出所有udp连接
4.2.列出处于监听状态的连接
netstat -l # 只显示监听的连接
netstat -lt # 只显示所有监听的tcp连接
netstat -lu # 只显示所有监听的tcp连接
netstat -lx # 只显示所有监听的unix连接
4.3.显示每个协议的统计信息
netstat -s # 显示所有连接的统计信息
netstat -st # 显示所有tcp连接的统计信息
netstat -su # 显示所有udp连接的统计信息
4.4.显示PID和进程名称
netstat -atp # 列出所有tcp连接,p参数是增加显示PID和进程名称
4.5. 持续输出netstat信息
netstat -c # 每隔一秒输出网络信息
netstat -c | grep tcp # 每隔一秒输出指定的网络信息
4.6.显示核心路由信息
netstat -r # 显示核心路由信息
4.7.显示网络接口列表
netstat -i # 显示网络接口列表
4.8.显示User和Inode
netstat -ate # 显示所有tcp网络连接,e参数会多显示用户名和Inode
4.9.端口以数字显示
netstat -atn # 端口默认是以名称显示,指定n参数后显示数字形式的端口名称
netstat -atunlp | grep 5432 # 显示tcp/udp相关连接,通过管道grep输出5432端口相关的连接;需要指定n参数,grep才能检索出数字端口相关的信息
4.10.输出解释
4.10.1.输出内容
[root@node2 ~]# netstat -atunep
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 35142 1/systemd
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 0 44699 7258/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 0 44230 7123/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 42604 6767/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 0 42876 6768/cupsd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1002 107823 13265/postmaster
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 43991 7080/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 0 97708 12555/sshd: root@pt
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 0 121445 14498/sshd: root@pt
tcp 0 36 192.168.118.189:22 192.168.118.1:65109 ESTABLISHED 0 97577 12555/sshd: root@pt
tcp 0 0 192.168.118.189:5432 192.168.118.189:34266 TIME_WAIT 0 0 -
tcp 0 0 192.168.118.189:5432 192.168.118.189:34264 ESTABLISHED 1002 122042 14687/postgres: pos
tcp 0 0 192.168.118.189:22 192.168.118.1:57953 ESTABLISHED 0 121355 14498/sshd: root@pt
tcp 0 0 192.168.118.189:34264 192.168.118.189:5432 ESTABLISHED 1002 122041 14685/psql
tcp6 0 0 :::111 :::* LISTEN 0 35144 1/systemd
tcp6 0 0 :::6000 :::* LISTEN 0 44698 7258/X
tcp6 0 0 :::22 :::* LISTEN 0 42613 6767/sshd
tcp6 0 0 ::1:631 :::* LISTEN 0 42875 6768/cupsd
tcp6 0 0 :::5432 :::* LISTEN 1002 107824 13265/postmaster
tcp6 0 0 ::1:25 :::* LISTEN 0 43992 7080/master
tcp6 0 0 ::1:6010 :::* LISTEN 0 97707 12555/sshd: root@pt
tcp6 0 0 ::1:6011 :::* LISTEN 0 121444 14498/sshd: root@pt
udp 0 0 192.168.122.1:53 0.0.0.0:* 0 44229 7123/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 0 44226 7123/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 95396 12432/dhclient
udp 0 0 0.0.0.0:609 0.0.0.0:* 0 35767 6378/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 0 35143 1/systemd
udp 0 0 0.0.0.0:46722 0.0.0.0:* 70 35814 6370/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 70 35813 6370/avahi-daemon:
udp6 0 0 :::609 :::* 0 35768 6378/rpcbind
udp6 0 0 :::111 :::* 0 35145 1/systemd
[root@node2 ~]#
4.10.2.输出抬头解释
Active Internet connections (servers and established)活动的Internet连接 (服务器和已建立的)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
----------------------------------------------------------------------------------------
Proto : 连接使用的协议类型(如 tcp、udp、tcp6、udp6、unix)
Recv-Q : 接收队列中未被应用程序读取的数据量(字节);通常应为0,若持续非零可能表示应用处理阻塞或遭受攻击
Send-Q : 发送队列中未被远端主机确认的数据量(字节);非零值可能表示网络拥塞或对端接收延迟
Local Address : 本地IP地址和端口(格式 IP:Port);0.0.0.0:postgres 表示监听所有网卡(指定-n参数后postgres会显示成对应的数字端口号信息)
Foreign Address : 远端主机的IP地址和端口;未建立连接时显示0.0.0.0:*;建立连接后显示如192.168.118.189:5432
State : 连接状态
User : 占用连接的用户(如:root、nginx等)
Inode : 套接字对应的文件系统inode号
PID/Program name : 占用连接的进程ID和程序名
4.10.3.输出状态解释
网络连接状态解释(State):
CLOSED : 初始(无连接)状态。
CLOSING : 等待远程TCP对连接中断的确认
LISTEN : 侦听状态,等待远程机器的连接请求。
ESTABLISHED : 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
TIME_WAIT : 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
SYN-RECEIVED : 再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
CLOSE-WAIT : 等待从本地用户发来的连接中断请求
FIN-WAIT-1 : 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2 : 从远程TCP等待连接中断请求
1455

被折叠的 条评论
为什么被折叠?



