netstat
netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。
语法
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval][1]
参数或选项 | 说明 |
---|
-a或–all | 显示所有连线中的Socket; | -n或–numeric | 直接使用ip地址,而不通过域名服务器; | -p或–programs | 显示正在使用Socket的程序识别码和程序名称; | -t或–tcp | 显示TCP传输协议的连线状况; | -e或–extend | 显示网络其他相关信息; | -u或–udp | 显示UDP传输协议的连线状况; | -v或–verbose | 显示指令执行过程; | -V或–version | 显示版本信息; | -A<网络类型>或–<网络类型> | 列出该网络类型连线中的相关地址; | -c或–continuous | 持续列出网络状态; | -C或–cache | 显示路由器配置的快取信息; | -F或–fib | 显示FIB; | -g或–groups | 显示多重广播功能群组组员名单; | -h或–help | 在线帮助; | -i或–interfaces | 显示网络界面信息表单; | -l或–listening | 显示监控中的服务器的Socket; | -M或–masquerade | 显示伪装的网络连线; | -N或–netlink或–symbolic | 显示网络硬件外围设备的符号连接名称; | -o或–timers | 显示计时器; | -r或–route | 显示Routing Table; | -s或–statistice | 显示网络工作信息统计表; | -w或–raw | 显示RAW传输协议的连线状况; | -x或–unix | 此参数的效果和指定”-A unix”参数相同; | –ip或–inet | 此参数的效果和指定”-A inet”参数相同。 |
实例
下面举些实例,跟着操作加深理解
1. 列出所有端口情况
netstat -a
netstat -at
netstat -au
从整体上看,Linux 网络性能调试工具Netstat命令的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况:
- Proto显示连接使用的协议。
- RefCnt表示连接到本套接口上的进程号。
- Types显示套接口的类型。
- State显示套接口当前的状态。
- Path表示连接到套接口的其它进程使用的路径名。
禁用反向域名解析,加快查询速度 默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。
netstat -ant
2. 列出所有处于监听状态的 Sockets
任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字。
netstat -l
netstat -lt
netstat -lu
netstat -lx
注意:不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口。
3. 显示每个协议的统计信息
netstat -s
netstat -st
netstat -su
4. 显示 PID 和进程名称
使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下。
sudo netstat -p
5. 显示核心路由信息
使用 -r 选项打印内核路由信息,打印出来的信息与 route 命令输出的信息一样。我们也可以使用 -n 选项禁止域名解析。
netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.130.1 0.0.0.0 UG 0 0 0 eth0
192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
6. 通过进程关键词过滤查找进程
netstat -anp | grep 进程关键词或端口
netstat -antp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 734/sshd
ps aux|grep tomcat
netstat -antp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 734/sshd
netstat -anp
通常用于查看某个端口号下建立的连接数,如8080端口号下的连接数统计
netstat -anp|grep:8080|wc -l
7. 打印网络接口信息
netstat 也能打印网络接口信息,但单独使用-i 选项输出信息比较原始。将 -e 选项和 -i 选项搭配使用,可以输出用户友好的信息。 同ifconfig 输出的信息一样
netstat -ie
更多用法
打印 active 状态的连接
active 状态的套接字连接用 “ESTABLISHED” 字段表示,所以我们可以使用 grep 命令获得 active 状态的连接:
netstat -atnp | grep ESTA
配合 watch 命令监视 active 状态的连接:
watch -d -n0 "netstat -atnp | grep ESTA"
查看服务是否在运行 如果你想看看 http,smtp 或 ntp 服务是否在运行,使用 grep。使用 grep 命令你可以查看 http 或 smtp 或其它任何你想查看的服务
sudo netstat -aple | grep ntp
其它相关操作命令
由netstat -anp | grep tomcat 查找到某个进程的pid后,如果下一步想结束进程,可以使用kill命令
kill -15 pid 立即释放资源
kill -9 pid 不会立即释放资源
查看网卡信息
cat /sbin/ifconfig
查看cpu配置
cat /proc/cpuinfo
查看mem配置
cat /proc/meminfo
修改hosts配置
vim /etc/hosts
参考netstat 命令详解 netstat 的10个基本用法
|