liunx-netstat&ps
本篇包以下命令
netstat
ps
...
netstat
基本信息
- 命令名称:netstat
- 英文原意:Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
- 所在路径:/bin/netstat
- 执行权限:所有用户
- 功能描述:输出网络连接、路由表、接口统计、伪装连接和组播成员
常用参数:
参数:
-a:all,列出所有网络状态,包括 Socket 程序;
-c:count,秒数指定每隔几秒刷新一次网络状态;
-n:network,使用 IP 地址和端口号显示,不使用域名与服务名;
-p:process,显示 PID 和程序名;
-t:tcp,显示使用 TCP 协议端口的连接状况;
-u:udp,显示使用 UDP 协议端口的连接状况;
-I:listen,仅显示监听状态的连接;
-r:router,显示路由表;
常用组合
- netstat -anulp --直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名
-
Proto:协议名(tcp协议还是udp协议);
-
recv-Q:网络接收队列(表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击;)
-
send-Q:网路发送队列(对方没有收到的数据或者说没有Ack的,还是本地缓冲区.)
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快;
这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。
Local Address 解释
Local Address 部分的0.0.0.0:873表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和172.172.230.11两个ip地址,那么0.0.0.0:873此时表示监听172.172.230.210,172.172.230.211,127.0.0.1三个地址的873端口。
127.0.0.1:25这个表示监听本机的loopback地址的25端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)
192.168.1.81:2288这是因为我们在启动的时候指定了192.168.1.81:2288参数,如果不指定的话,会监听0.0.0.0:2288
Foreign Address解释
与本机端口通信的外部socket。显示规则与Local Address相同
ps
基本信息
- 命令名称:ps
- 英文原意:postscript
- 所在路径:/bin/ps
- 执行权限:所有用户
- 功能描述:查看系统中所有运行进程的详细信息
常用参数:
参数:
-a:显示一个终端的所有进程,除会话引线外;
-u:显示进程的归属用户及内存的使用情况;
-x:显示没有控制终端的进程;
-l:长格式显示更加详细的信息;
-e:显示所有进程;
常用组合
- ps aux 可以查看系统中所有的进程;
- ps -le 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
- ps -l 只能看到当前 Shell 产生的进程;
- ps -ef -e:等价于 ‘-A’ ,表示列出全部的进程;-f:显示全部的列(显示全字段)