树莓派开始,玩转Linux30:树莓派网络诊断
树莓派开始,玩转Linux30:树莓派网络诊断
通过对网络协议的介绍,我们已经了解了互联网通信的基本原理。互联网让树莓派变得更加强大。但这也意味着,网络问题会让人非常恼火。下面介绍树莓派常用的网络诊断命令,它们能帮助我们发现网络问题。
1.基础工具:
网络诊断的第一步是了解自己的设备,比如有哪些接口,IP地址都是什么。使用下面的命令来显示网络接口(Interface)信息,如接口名称、接口类型、接口的IP地址、硬件的MAC地址等。
ARP协议用在局域网内部。借用ARP协议设备可以知道同一局域网内的IP-MAC对应关系。当访问一个本地IP地址时,设备根据该对应关系,与对应的MAC地址通信。通过ARP工具,可以知道局域网内的通信是否正常。
显示本地存储的IP地址和MAC地址的对应关系。
安装arping工具:
然后使用命令:
经eth0接口,发送ARP请求,查询IP为192.168.1.1设备的MAC地
址。
安装arp-scan工具:
然后使用下面的命令查询整个局域网内所有IP地址的对应MAC地址:
安装tcpdump工具:
使用命令:
监听en0接口的ARP协议通信。
2.网络层:
网络层是一个广域的互联网,互联网上的设备用IP地址识别。ping命令是向某个IP地址发送ICMP协议的ECHO_REQUEST请求。收到该请求的设备将返回ICMP回复。如果ping请求到某个IP地址,则说明该IP地址的设备可以经网络层顺利到达。
向IP地址192.168.1.255发送ICMP请求。如果该地址的ICMP没有被禁用,那么在该网上的设备将回复:
向广播地址192.168.1.255发送ICMP请求。如果ICMP没有被禁用,那么在该网上的设备将回复。
需要注意的是,许多网络设备会禁用ICMP。即使ping请求不到一个设备,并不一定是网络层故障,ping的结果只能作为参考。
如果两个设备有相同的IP地址,将导致IP冲突。许多网络是由DHCP协议自动分配IP地址的,这样可以极大减少IP冲突的可能性。
DHCP服务器与设备达成协议,设备将在一定时间内占据某个IP地址,而DHCP服务器不再把该IP地址分配给别人。
更新DHCP租约,设备将释放IP地址,再从DHCP服务器重新获得IP地址。
将接口wlan0的IP地址设置成192.168.1.106。
编辑/etc/dhcpcd.conf文件,在文件末尾加入:
可将接口eth0的默认IP地址设置成192.168.1.106。
3.路由:
局域网通过路由器接入广域的互联网。互联网上的通信往往要经过多个路由器接力。途中路由器的故障,可能导致互联网访问异常。
显示路由表。从路由表中,可以找到网关。网关是通向更加广域网络的出口。
追踪到达IP目的地的全程路由。
通过ICMP协议追踪路由。ICMP协议经常会被禁用,所以会返回”*“的字符串。通过TCP协议,经80端口追踪路由,TCP协议的默认端口80很少会被禁用。
4.网络监听:
在Linux下,tcpdump是一款网络抓包工具。它可以监听网络接口不同层的通信,并过滤出特定的内容,比如特定协议、特定端口等。我们已经使用tcpdump监听了ARP协议通信,下面介绍更多的监听方式。
· 监听en0接口的所有通信。
· 用ASCII显示en0接口的通信内容。
· 显示en0接口的8080端口的通信。
· 显示eth1接口来自192.168.1.200的通信。
· 显示eth1接口80端口、目的地为192.168.1.101的通信。
· 将lo0接口的通信存入文件record.pcap,方便阅读。
通过tcpdump能知道不同协议层传输的内容,进而诊断网络问题的原因。
5.域名解析:
DNS在域名和IP之间进行翻译,DNS故障会导致用户无法通过域名访问某个网址。
DNS域名解析,返回域名对应的IP地址。你可以通过这个域名来检查计算机是否能正确进行域名解析。
本章对网络诊断相关命令的介绍很简略,只能给你留下一个粗浅的印象。毕竟,Linux下的网络命令非常庞杂,相关介绍足以构成一本书。你也可以通过上面各个命令的文档来详细了解它们的用法。
还没有评论,来说两句吧...