netstat是一个监控TCP/IP网络的很是有用的工具,它能够显示路由表,实际的网络链接以及每个网络接口设备的状态信息,netstat用于显示与IP,TCP,UDP和ICMP协议相关的统计数据,通常用于查询本机各端口的网络链接状况。网络
通常用netstat -an显示全部链接的IP、端口并用数字表示。dom
netstat命令的功能是显示网络链接、路由表和网络接口信息,能够让用户得知有哪些网络链接正在运做。socket
使用时,若是不带参数,netstat显示活动的TCP链接tcp
经常使用的几个参数有:-a -n -p -l工具
-a 显示全部socket,包括正在监听的spa
-l 显示有在 Listen (监听) 的服务状态unix
-n 以网络IP地址代替名称,显示网络链接情形code
-p 显示创建相关链接的程序名和PIDserver
-t 显示TCP协议的链接状况blog
-u 显示UDP协议的链接状况
-s 显示每一个协议的统计
-b 显示在建立每一个链接或监听端口时涉及的可执行程序
-c 每一个1秒就从新显示一遍,直到用户中断
[root@77-9-162-bx-core ~]# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:privatewire 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:4194 0.0.0.0:* LISTEN tcp 5 0 0.0.0.0:30211 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:10010 0.0.0.0:*
udp 0 0 0.0.0.0:11916 0.0.0.0:*
udp 0 0 0.0.0.0:30000 0.0.0.0:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 3925009694 /tmp/tmux-0/default
unix 2 [ ACC ] STREAM LISTENING 4021720277 /tmp/tmux-1091/default
unix 2 [ ACC ] STREAM LISTENING 3910671241 /tmp/tmux-1081/default
2. netstat -at 列出全部tcp链接
root@77-9-162-bx-core ~]# netstat -at|head Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:privatewire 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:4194 0.0.0.0:* LISTEN tcp 5 0 0.0.0.0:30211 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:zabbix-agent 0.0.0.0:* LISTEN tcp 0 0 localhost:cslistener 0.0.0.0:* LISTEN tcp 0 0 localhost:10248 0.0.0.0:* LISTEN tcp 1 0 0.0.0.0:31080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30089 0.0.0.0:* LISTEN
3. netstat -au 列出全部udp链接
[root@77-9-162-bx-core ~]# netstat -au|head Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:krb524 0.0.0.0:* udp 0 0 0.0.0.0:upnotifyp 0.0.0.0:* udp 0 0 0.0.0.0:n1-fwp 0.0.0.0:* udp 0 0 0.0.0.0:n1-rmgmt 0.0.0.0:* udp 0 0 0.0.0.0:asc-slmd 0.0.0.0:* udp 0 0 0.0.0.0:privatewire 0.0.0.0:* udp 0 0 0.0.0.0:55511 0.0.0.0:* udp 0 0 0.0.0.0:55512 0.0.0.0:*
4. netstat -nl|grep port 查询端口号是否占用
[root@77-9-162-bx-core ~]# netstat -ln|grep 8090 tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN
5. netstat -nlp|grep port 查询占用端口号的程序名或pid
[root@77-9-162-bx-core ~]# netstat -lnp|grep 8090 tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 8904/vintage
6. netstat -apn|grep server 查询程序占用端口
# netstat -apn|grep server Active Internet connections (servers and established) tcp 0 0 0.0.0.0:8100 0.0.0.0:* LISTEN 17557/server
LISTEN 监听来自远方的TCP端口的链接请求
SYN-SENT 在发送链接请求后等待匹配的链接请求
SYN-RECEIVED 在收到和发送一个链接请求后等待对方对链接请求的确认
ESTABLISHED 表明一个打开的链接
TIME-WAIT 等待足够的时间以确保远程TCP接收到链接中断请求的确认
CLOSED 没有任何链接状态
CLOSED-WAIT 等待从本地用户发来的链接中断请求