第十七章:第33节Linux网络管理——netstat命令、查看网关方法

更新于:2019-10-13 14:43:39

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端口


1.png


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

1.png


很多软件的网络连接走的都是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