常用linux网络相关命令使用和输出详解

               

2)  网卡驱动程序所在目录
/lib/modules/2.6.29.4-167.fc11.i686.PAE/kernel/drivers/net

3)  查看网卡信息命令
ethtool eth0 (^ 查看网卡信息 ^)
dmesg | grep -i eth (^ 查看网卡信息 ^)


1 tcpdump
http://anheng.com.cn/news/24/586.html

1.1 tcpdump的选项介绍
tcpdump
    -a  将网络地址和广播地址转变成名字;
    -c      在收到指定的包的数目后, tcpdump就会停止;
    -ddd    将匹配信息包的代码以十进制的形式给出;
    -dd     将匹配信息包的代码以c语言程序段的格式给出;
    -d      将匹配信息包的代码以人们能够理解的汇编格式给出;
    -e      在输出行打印出数据链路层的头部信息;
    -F      从指定的文件中读取表达式,忽略其它的表达式;
    -f      将外部的Internet地址以数字的形式打印出来;
    -i      指定监听的网络接口;
    -l      使标准输出变为缓冲行形式;(即: 将数据重定向)
    -nn 不进行端口名称的转换.
    -n      不把网络地址转换成名字;
    -N      不打印出默认的域名.
    -O      不进行匹配代码的优化.
    -r      从指定的文件中读取包(这些包一般通过-w选项产生);
    -tt     打印原始的,未格式化过的时间.
    -T      将监听到的包直接解释为指定的类型的报文, 常见的类型有rpc(远程过
    -t      在输出的每一行不打印时间戳;
    -vv     输出详细的报文信息;
    -v      输出一个稍微详细的信息, 例如在ip包中可以包括ttl和服务类型的信息;
    -w      直接将包写入文件中, 并不分析和打印出来;
        程调用)和snmp(简单网络管理协议;);

Note: 如想dump包给别的软件分析, tcpdump的包长度限制截断默认90个字节一定要去掉.
      即: 加上 -s 0 参数.

1) example
tcpdump -l > tcpcap.txt (^ 将得到的数据存入tcpcap.txt文件中 ^)

1.2 tcpdump的表达式介绍
1)  第一种是关于类型的关键字, 主要包括host, net, port, 例如 host 210.27.48.2,
    指明 210.27.48.2是一台主机, net 202.0.0.0 指明 202.0.0.0是一个网络地址,
    port 23 指明端口号是23. 如果没有指定类型, 缺省的类型是host.

2)  第二种是确定传输方向的关键字, 主要包括src , dst ,dst or src, dst and src ,
    这些关键字指明了传输的方向. 举例说明, src 210.27.48.2 ,指明ip包中源地址是
    210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 . 如果没有指明
    方向关键字, 则缺省是src or dst关键字.

3)  第三种是协议的关键字, 主要包括fddi,ip,arp,rarp,tcp,udp等类型. Fddi指明是在
    FDDI(分布式光纤数据接口网络)上的特定的网络协议, 实际上它是"ether"的别名,
    fddi和ether具有类似的源地址和目的地址, 所以可以将fddi协议包当作ether的包进
    行处理和分析. 其他的几个关键字就是指明了监听的包的协议内容. 如果没有指定任
    何协议, 则tcpdump将会监听所有协议的信息包.

4)  除了这三种类型的关键字之外, 其他重要的关键字如下: gateway,
    broadcast,less,greater,还有三种逻辑运算, 取非运算是 'not' '!', 与运算是
    'and','&&';或运算 是'or' ,'||'; 这些关键字可以组合起来构成强大的组合条件
    来满足人们的需要, 下面举几个例子来说明.

1.3 例子
note: tcpdump 对截获的数据并没有进行彻底解码, 数据包内的大部分内容是使用十六进
    制的形式直接打印输出的. 显然这不利于分析网络故障, 通常的解决办法是先使用带
    -w参数的tcpdump 截获数据并保存到文件中, 然后再使用其他程序进行解码分析. 当
    然也应该定义过滤规则, 以避免捕获的数据包填满整个硬盘.
note: 如果在ethernet 使用混杂模式 系统的日志将会记录
| May  7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.      |
| May  7 20:03:46 localhost kernel: device eth0 entered promiscuous mode |
| May  7 20:03:57 localhost kernel: device eth0 left promiscuous mode    |
note: ip icmp arp rarp 和 tcp,udp,icmp这些选项等都要放到第一个参数的位置,
    用来过滤数据报的类型.

tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3) // 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
tcpdump host 210.27.48.1 // 截获主机210.27.48.1所有收到的和发出的所有的数据包
tcpdump -i eth0 dst host hostname // 监视所有发送到主机hostname的数据包
tcpdump -i eth0 gateway Gatewayname // 还可以监视通过指定网关的数据包
tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80 // 如果条件很多的话  要在条件之前加and 或 or 或 not
tcpdump -i eth0 host hostname and dst port 80 // 只监视发送到80端口的数据包
tcpdump -i eth0 host hostname and port 80 // 监视指定端口的TCP或UDP数据包
tcpdump -i eth0 src host hostname // 只对名为hostname的主机的发出数据包进行监视
tcpdump ip host 210.27.48.1 and ! 210.27.48.2 // 获取主机210.27.48.1和除了主机210.27.48.2之外所有主机通信的ip包
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 // 源主机为192.168.0.1与目的网络为192.168.0.0
Tcpdump src host 192.168.0.1 and dst port not telnet // 过滤源主机192.168.0.1和目的端口不是telnet的报头.
tcpdump tcp port 23 host 210.27.48.1 // 获取主机210.27.48.1接收或发出的telnet包
tcpdump udp and src host 192.168.0.1 // 只过滤源主机192.168.0.1的所有udp报头.
tcpdump udp port 123 // 对本机的udp 123 端口进行监视.(123 为ntp的服务端口)


1.4 tcpdump的输出结果介绍
1.4.0 other
[~]#  tcpdump   -i eth1 src  host 211.167.237.199
| 00:02:03.096713 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010208:2010352(144) ack 33377 win 8576 |
| 00:02:03.096951 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010352:2010496(144) ack 33377 win 8576 |
| 00:02:03.100928 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010496:2010640(144) ack 33377 win 8576 |
| 00:02:03.101165 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010640:2010784(144) ack 33377 win 8576 |
| 00:02:03.102554 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010784:2010928(144) ack 33425 win 8576 |
    analysis: 表明在00:02:03点的时候, 211.167.237.199通过ssh源端口连接到221.216.165.189的1467端口

// 截获所有由eth1进入,源地址(src)为211.167.237.199的主机(host), 并且(and)目标
// (dst)端口(port)为1467的数据包:
[~]# tcpdump -i eth1 src host 211.167.237.199 and dst port 1467
| 00:09:27.603075 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180400:180544(144) ack 2833 win 8576 |
| 00:09:27.605631 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180544:180688(144) ack 2881 win 8576 |

// 观看网卡传送,接收数据包的状态
[~]$ netstat  -i
| Kernel Interface table                                                  |
| Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg |
| eth0 1500  0  14639   0      0      0    5705    119    0     0   BMRU  |
    analysis: 各字段意思:
    Iface:  网卡
    RX-OK RX-ERR RX-DRP RX-OVR : 网卡正确接收数据包的数量以及发生错误,流失,碰撞的总数
    TX-OK TX-ERR TX-DRP TX-OVR : 网卡正确发送数据包的数量以及发生错误,流失,碰撞的总数

1.4.1 数据链路层头信息
[~]# tcpdump -e host ice
| 21:50:12.847509 eth0 < 8:0:20:79:5b:46   0:90:27:58:af:1a ip 60: h219.33357 > ice.telne t 0:0(0) ack 22535 win 8760 (DF) |

// ice是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A; H219是一台装有SOLARIC
// 的SUN工作站,它的MAC地址是8:0:20:79:5B:46;  上一条命令的输出结果如下所示:
    analysis: 21:50:12是显示的时间,847509是微秒, eth0<表示从网络接口eth0接受该数据包
    ; eth0>表示从网络接口设备发送数据包,8:0:20:79:5b:46是主机H219的MAC地址. 它表
    明是从源地址H219发来的数据包.0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据
    包的目的地址是ICE.ip是表明该数据包是IP数据包,60是数据包的长度,
    h219.33357>ice.telnet表明该数据包是从主机H219的33357端口发往主机ICE的
    TELNET(23)端口.ack22535表明对序列号是22535的包进行响应.win8760表明发送窗
    口的大小是8760.

1.4.2 ARP包的TCPDUMP输出信息
[~]# tcpdump arp
| 22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)             |
| 22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a) |

    analysis: 22:32:42是时间戳, 802509是微秒, eth0 >表明从主机发出该数据包, arp表
    明是ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址.
    0:90:27:58:af:1a是主机ICE的MAC地址.

1.4.3 TCP包的输出信息
用TCPDUMP捕获的TCP包的一般输出信息格式是:
src > dst: flags data-seqno ack window urgent options
    analysis: src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标
    志, F (FIN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据
    的顺序号, ack是下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数
    据包中是否有紧急指针. Options是选项.

1.4.4 UDP包的输出信息
用TCPDUMP捕获的UDP包的一般输出信息格式是:
route.port1 > ice.port2: udp lenth
    analysis: UDP十分简单, 上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据
    包到主机ICE的port2端口, 类型是UDP,  包的长度是lenth.


2 netstat
netstat主要用于Linux察看自身的网络状况, 如开启的端口,在为哪些用户服务, 以及服
务的状态等. 此外, 它还显示系统路由表,网络接口状态等. 可以说, 它是一个综合性的
网络状态的察看工具. 在默认情况下, netstat只显示已建立连接的端口. 如果要显示处
于监听状态的所有端口, 使用-a参数即可:

2.1 tcpdump的选项介绍
格式:
    netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]
参数:
    -a--all:        显示所有连线中的Socket.
    -A:         列出该网络类型连线中的IP相关地址和网络类型.
    -C--cache:      显示路由器配置的缓冲区信息.
    -c--continuous: 持续列出网络状态.
    -e--extend:     显示网络其它相关信息.
    -F--fib:        显示FIB.
    -g--groups:     显示多重广播功能群组组员名单.
    -h--help:       在线帮助.
    -i--interfaces: 显示网络界面信息表单.
    --ip--inet:     和指定"-A inet"参数相同.
    -l--listening:  显示监控中的服务器的Socket.
    -M--masquerade: 显示伪装的网络连线.
    -N--netlink--symbolic:  显示网络硬件外围设备的符号连接名称.
    -n--numeric:    直接使用IP地址, 而不通过域名服务器.
    -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"参数相同.

2.2 应用实例
netstat -al | grep telnet // (&1&) 查看telnet是否正常启动到监听状态
netstat -aln | grep :23 // (&1&) 查看telnet是否正常启动到监听状态
netstat -tuln | grep ':80' (^ 查看系统是否己启动某一端口号 ^)
netstat -r (^ 查看route表 ^)
netstat -s -u (^ 统计udp数据包信息 ^)


2.3 netstat的输出结果介绍
// 显示处于监听状态的所有端口, 使用-a参数即可:
[~]# netstat -a
Active Internet connections (only servers)
Proto  Recv-Q   Send-Q    Local Address  Foreign Address  State
tcp     0      0   *:32768  *:* LISTEN
tcp     0      0   *:32769  *:* LISTEN
tcp     0      0   *:nfs    *:* LISTEN
tcp     0      0   *:32770  *:* LISTEN
tcp     0      0   *:868    *:* LISTEN
tcp     0      0   *:617    *:* LISTEN
tcp     0      0   *:mysql  *:* LISTEN
tcp     0      0   *:netbios-ssn    *:* LISTEN
tcp     0      0   *:sunrpc *:* LISTEN
tcp     0      0   *:10000  *:* LISTEN
tcp     0      0   *:http   *:* LISTEN
......

Analysis: 上面显示出, 这台主机同时提供HTTP,FTP,NFS,MySQL等服务.


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值