Linux网络编程常用的管理维护命令netstat/top/lsof/tcpdump

1. netstat

netstat用于显示网络状态,使用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"参数相同。

netstat [使用]

  • 列出所有端口
netstat -a  所有端口
netstat -au udp端口
netstat -at tcp端口
  • 列出所有处于监听状态的端口
netstat -l  所有
netstat -lu udp
netstat -lt tcp
netstat -lx unix
  • 显示每个协议的统计信息
netstat -s  所有
netstat -su udp
netstat -st tcp
  • 显示PID和进程名称
netstat -p
  • 显示核心路由信息
netstat -r
  • 查看端口和服务
netstat -antp|grep XXX

2. top

top命令用来监控linux的系统状况,比如:cpu、内存的使用。

top [选项]

  • -d:指定每两次屏幕信息刷新之间的时间间隔
  • -p:监控指定PID的进程
  • -q:top没有任何延迟的进行刷新
  • -S:指定累计模式
  • -s:在安全模式下运行top
  • -i:不显示僵死进程
  • -c:显示进程执行的全路径

top [常用命令]

  • ctrl+L:擦除并且重写屏幕
  • K:终止一个进程(提示:PID to signal/kill [default pid = XXXX])
  • i:忽略闲置和僵死进程
  • q:退出
  • r:改变一个进程的优先级
  • S:切换到累计模式
  • s:改变刷新时间
  • f/F:添加或者删除显示条目
  • o/O:改变显示目录的顺序
  • l:切换显示平均负载和启动时间信息
  • m:切换显示内存信息
  • t:切换显示进程和CPU状态信息
  • c:切换显示命令名称和完整命令行
  • M:根据驻留内存大小进行排序
  • P:根据CPU使用百分比进行排序
  • T:根据时间/累计时间进行排序
  • W:将当前设置写入~/.toprc文件中

top [显示说明]

  • top - 14:09:18(当前时间) up 544 days, 20:43(系统运行时间), 2 users(当前登录用户数), load average: 0.61, 0.46, 0.36(最近5、10、15分钟内的平均负)
  • Tasks: 290 total(全部), 1 running(运行), 289 sleeping(休眠), 0 stopped(停止), 0 zombie(僵死)
  • %Cpu(s): 0.9 us(用户空间占用cpu百分比), 0.9 sy(内核空间占用cpu百分比), 0.0 ni(改变过优先级的进程占用cpu百分比), 98.1 id(空闲cpu百分比), 0.1 wa(IO等待占用cpu的百分比), 0.0 hi(硬中断占用cpu百分比), 0.0 si(软中断占用cpu百分比), 0.0 st(当前vm中被hypervisor偷走cpu百分比)
  • KiB Mem: 32912952 total(物理内存总量), 31487248 used(已使用内存), 1425704 free(空闲内存), ** 198056 buffers**(缓冲内存量)
  • KiB Swap: 33517564 total(交换区总量), 345328 used(已使用), 33172236 free(空闲). 15084608 cached Mem(缓冲的交换区总量)
  • PID(进程ID) USER(用户) PR(进程调度优先级) NI(进程nice值(优先级)值越小越高) VIRT(进程使用的虚拟内存)RES(驻留内存大小)SHR(共享内存) S(进程状态D:不可中断 R:运行态 S:睡眠态 T:被跟踪或已停止 Z:僵尸态) %CPU(两次刷新时间内cpu占比)%MEM(使用物理内存占比)TIME+(任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。) COMMAND(进程名)

3. lsof

lsof是一个列出当前系统打开文件的工具,包括普通文件、目录、网络连接、硬件等等。

lsof [选项]

  • file:显示打开指定文件的所有进程
  • -a:表示两个参数都必须满足时才显示结果
  • -c:显示COMMAND列中包含指定字符的进程所有打开的文件
  • -u:显示所属user进程打开的文件
  • -g:显示归属gid的
  • +d:显示目录下被打开的
  • +D:同上,但是会搜索目录下的所有目录,时间相对较长
  • -d:显示指定文件描述符的进程
  • -n:不将IP转换为hostname
  • -i:显示符合条件的 lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

4. tcpdump

root权限下使用的抓包工具,只能抓取流经本机的数据包

tcpdump [选项]

抓包选项

  • -c:指定要抓取包的数量
  • -i:指定网络接口
  • -n:对地址以数字的方式显示,否则显示主机名
  • -nn:在-n的基础上将端口也显示为数值
  • -N:不打印出host的域名部分
  • -p:指定要抓取的包是流入还是流出的包(in、out、inout)
  • -s:设置抓包长度,默认65535

输出选项

  • -e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC
  • -q:快速打印输出。打印很少的协议相关信息,从而输出行都比较简短
  • -x:输出包的头部数据,会以16进制和ASCII两种方式同时输出
  • -xx:比-x更详细
  • -v:当分析和打印的时候,更详细
  • -vv:更详细
  • -vvv:更详细

其他功能选项

  • -D:列出可用于抓包的接口
  • -F:从文件中读取抓包的表达式
  • -w:将抓包数据输出到文件中而不是标准输出
  • -r:从给定的数据包文件中读取数据

tcpdump [使用]

  • 默认
tcpdump
  • 监视指定网卡的数据包
tcpdump -i eth0
  • 监视指定主机的数据包
tcpdump host XXX
  • 打印A<->B或A<->C之间通信的包
tcpdump host A and \(B or C\)
  • 打印A与其他主机但不保证B之间通信的宝
tcpdump host A and not B
  • 获取主机A发送的所有数据包
tcpdump src host A
  • 获取所有发送到主机A的所有数据包
tcpdump dst host A
  • 监视指定主机和端口的数据包
tcpdump tcp port XXX and host XXX
  • 监视本机的udp XXX端口
tcpdump udp port XXX
  • 监视指定网络段的数据包
tcpdump net 192.168
  • 抓取ping包
tcpdump -nn -i eth0 icmp
tcpdump -nn -i eth0 icmp and src 192.168.XXX.XXX
  • 抓取到指定端口的数据包
tcpdump dst port XXX
  • 解析包
tcpdump -xx -vvv -nn -i eth0 tcp dst port XXX
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值