嵌入式技术
前言
大家好,这里是浩道Linux,主要给大家分享Linux、Python、网络通信、网络安全等相关的IT知识平台。
今天浩道跟大家分享linux网络运维中常见的命令,掌握好这些命令,在排查故障时将会游刃有余!
tcpdump和ethereal可以用来获取和分析网络通讯活动,他们都是使用libpcap库来捕获网络封包的。
在混杂模式下他们可以监控网络适配器的所有通讯活动并捕获网卡所接收的所有帧。
要想设置网络接口为混杂模式并执行这些命令来捕获所有的网络封包,需要具有超级用户的权限。
你可以使用这些工具来探究网络相关问题。你可以发现TCP/IP重发、窗口大小的缩放、名字解析的问题、网络配置错误等。
注意这些工具只能监控网络适配器所接收到的帧,并不能监控到整个网络的通讯情况。
参数介绍:
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size
中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size
的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-n 不把网络地址转换成名字。
-N 不输出主机名中的域名部分。例如,link.linux265.com 只输出link。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
-x 以16进制数形式显示每一个报文 (去掉链路层报头) . 可以显示较小的完整报文, 否则只显示snaplen个字节.
-xx 以16进制数形式显示每一个报文(包含链路层包头)。
-X 以16进制和ASCII码形式显示每个报文(去掉链路层报头)。
-XX 以16进制和ASCII吗形式显示每个报文(包含链路层报头)。
-y 设置tcpdump 捕获数据链路层协议类型
-Z 使tcpdump 放弃自己的超级权限(如果以root用户启动tcpdump, tcpdump将会有超级用户权限), 并把当前tcpdump的用户ID设置为user, 组ID设置为user首要所属组的ID
举例:
01、抓取所有网络包,并在terminal中显示抓取的结果,将包以十六进制的形式显示。 tcpdump 02、抓取所有的网络包,并存到 result.cap 文件中。 tcpdump -w result.cap 03、抓取所有的经过eth0网卡的网络包,并存到 result.cap 文件中。 tcpdump -i eth0 -w result.cap 04、抓取源地址是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump src host 192.168.1.100 -w result.cap 05、抓取地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump host 192.168.1.100 -w result.cap 06、抓取目的地址包含是192.168.1.100的包,并将结果保存到 result.cap 文件中。 tcpdump dest host 192.168.1.100 -w result.cap 07、抓取主机地址为 192.168.1.100 的数据包 tcpdump -i eth0 -vnn host 192.168.1.100 08、抓取包含192.168.1.0/24网段的数据包 tcpdump -i eth0 -vnn net 192.168.1.0/24 09、抓取网卡eth0上所有包含端口22的数据包 tcpdump -i eth0 -vnn port 22 10、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令: tcpdump udp -i eth0 -vnn 11、抓取经过 eth0 网卡的源 ip 是 192.168.1.100 数据包,src参数表示源。 tcpdump -i eth0 -vnn src host 192.168.1.100 12、抓取经过 eth0 网卡目的 ip 是 192.168.1.100 数据包,dst参数表示目的。 tcpdump -i eth0 -vnn dst host 192.168.1.100 13、抓取源端口是22的数据包 tcpdump -i eth0 -vnn src port 22 14、抓取源ip是 192.168.1.100 且目的ip端口是22的数据包 tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22 15、抓取源ip是192.168.1.100或者包含端口是22的数据包 tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22 16、抓取源ip是192.168.1.100且端口不是22的数据包 tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 22 17、抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的数据包。 tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 ) 18、把抓取的数据包记录存到/tmp/result文件中,当抓取100个数据包后就退出程序。 tcpdump –i eth0 -vnn -w /tmp/result -c 100 19、从/tmp/result记录中读取tcp协议的数据包 tcpdump -i eth0 tcp -vnn -r /tmp/result 20、想要截获所有192.168.1.100 的主机收到的和发出的所有的数据包: tcpdump host 192.168.1.100 21、如果想要获取主机192.168.1.100除了和主机192.168.1.101之外所有主机通信的ip包,使用命令: tcpdump ip host 192.168.1.100 and ! 192.168.1.101 22、如果想要获取主机 192.168.1.100 接收或发出的 telnet 包,使用如下命令: tcpdump tcp port 23 host192.168.1.100 #查看http请求的header tcpdump -s 1024 -l -A -n host 192.168.9.56 tcpdump -s 1024 -l -A src 192.168.9.56 or dst 192.168.9.56 sudo tcpdump -A -s 1492 dst port 80 #本地网络中IP地址为192.168.0.5的主机现在与外界通信的情况 sudo tcpdump -i eth0 src host 192.168.0.5 #查看网卡eth0的http请求的tcp包 tcpdump -i eth0 port http tcpdump -i eth0 port http or port smtp or port imap or port pop3 -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna me:|password:|login:|pass |user ' #查看tcp,upd,icmp非ssh的包 tcpdump -n -v tcp or udp or icmp and not port 22 #查看http请求的request 包 sudo tcpdump -i eth0 port 80 -w - #过滤http响应的get host头信息 sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "GET /.*|Host: .*" #DNS查询请求响应包 sudo tcpdump -i en0 'udp port 53' #nmap -sP指定使用Ping echo 进行扫描 /24查看目的网络有多少主机处于运行状态 nmap -sP 192.168.0.1 nmap -sP 192.168.0.0/24 nmap -O www.baidu.com #Netstat主要用于Linux/Unix主机察看自身的网络状况,如开启的端口、在为哪些用户服务以及服务的状态 netstat -a netstat -nlp #netcat扫描机器开放的端口 nc -z -v -n 172.31.100.7 21-25 #netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。 nc -v 172.31.100.7 21 #输出网络的路由表 route #显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。 uptime #监控 eth1 的网卡的流量 iftop -i eth1 #以位元组(bytes 即字节)为单位显示流量(预设是位元 bits): iftop -B #直接显示 IP, 不进行DNS 反解: iftop -n #直接显示连接埠编号, 不显示服务名称: iftop -N #显示某个网段进出封包流量 iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0 #网络流量实时监控工具之nload,查看网卡eth0的流量 nload -n eth0 #查看各个网卡的流量 nload -h #IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器 iptraf #查看网络接口当前配置与接口命名: ifconfig #打开(up)或关闭(down)适配器 ifconfig <网络名>#为适配器分配IP地址: ifconfig <网络名> #为适配器分配第二个IP地址: ifconfig <网络名:实例数> #显示某个网络适配器的驱动信息,适用于查询软件兼容性的情况: ethtool -i eth0 #显示网络数据: ethtool -S #设置适配器连接速度(Mbps) ethtool speed <10|100|1000> #iwconfig 查基本的Wi-Fi网络设置,如SSID、channel和加密等细节。此外还可以修改一些高级设置,包括接收敏感度,RTS/CTS,碎片,以及重试数 #显示当前无线设置,包括接口名称: iwconfig #设置ESSID(扩展服务设置识别器)或网络名: iwconfig <接口名> essid <网络名> #wget wget -S --spider http://osswin.sourceforge.net/ 2>&1 | grep Mod #查看mac地址 cat /sys/class/net/*/address #查看eth0的ip ifconfig eth0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}' #curl 查看页面对应的domail name curl -s http://en.m.wikipedia.org/wiki/List_of_Internet_top-level_domains | sed -n '/ /{s/<[^>]*>//g;p}' #talnet telnet localhost 6666 #查看所有的网络接口 awk '{print $1}' /proc/net/dev|grep :|sed "s/:.*//g" #查看DNS server版本好 nslookup -q=txt -class=CHAOS version.bind NS.PHX5.NEARLYFREESPEECH.NET
审核编辑:汤梓红
打开APP阅读更多精彩内容声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
Linux教程之网络配置文件与配置方法及常用网络操作命令2018-11-07 1247 linux运维怎么排查2019-11-11 0 Linux的常用网络命令2009-01-18 1172 Linux终端常用命令大全2016-04-28 804 Linux教程之常用Linux命令的详细资料免费下载2018-11-16 864 Linux最常用20条命令汇总2019-01-18 3684 Linux教程之Linux常用命令大全2019-03-30 5630 linux有哪些常用的命令2020-02-27 774 linux常用命令手册2021-06-01 875 LINUX操作系统的安装与Linux常用文件命令2021-06-02 863 linux常用命令大全2022-03-03 681 Linux常用命令汇总2022-10-25 666 Linux常用命令2023-01-12 1108 Linux常用命令手册分享2023-04-26 287 linux常用命令及用法2023-11-17 618全部0条评论
快来发表一下你的评论吧 !
×20完善资料,
赚取积分