netstat命令,监视网络状态,可让你得知整个Linux系统的网络情况。
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的程序识别码和程序名称; -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"参数相同。
实例:
1)列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口 netstat -at #列出所有tcp端口 netstat -au #列出所有udp端口
2)列出所有处于监听状态的 Sockets
netstat -l #只显示监听端口 netstat -lt #只列出所有监听 tcp 端口 netstat -lu #只列出所有监听 udp 端口 netstat -lx #只列出所有监听 UNIX 端口
3)显示每个协议的统计信息
netstat -s 显示所有端口的统计信息 netstat -st 显示TCP端口的统计信息 netstat -su 显示UDP端口的统计信息
4)在netstat输出中显示 PID 和进程名称
netstat -pt
netstat -p可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。
5)比较实用的查询参数
netstat -ant
很多软件的网络连接走的都是tcp/ip协议,包括http访问。所以,我们当统计Linux上的http访问连接数时,可以使用这样的命令:
netstat -ant | grep -i 服务器ip:80 | wc -l
http默认走的80端口。
提示:
在PHP中,有个函数“exec”,用这个函数可以执行Linux命令的。我们学习的各种Linux命令,都可以写到PHP程序中。
在使用exec函数前,可以用预定义常量PHP_OS判断服务器的操作系统是不是Linux的。
附录:
Linux下查看网关方法
route -n
ip route show
traceroute www.phpnanshen.com -s 100 第一行就是自己的默认网关
netstat -r
more /etc/network/interfaces Debian/Ubuntu Linux
more /etc/sysconfig/network-scripts/ifcfg-eth0 Red Hat