陈斌彬的技术博客

Stay foolish,stay hungry

Mac OSX 网络诊断命令

下面是一些 Mac OS X 下常用的网络诊断命令。它们能帮助我们发现网络问题。文中提到的协议和网络通信原理,可参考协议森林。

有些工具,如 arping, arp-scan,需要借助 HomeBrew 安装。

基本工具

网络诊断的第一步,是了解自己的设备,比如有哪些接口,IP 地址都是什么。

ifconfig

$ ifconfig

显示网络接口(interface)信息。如接口名称,接口类型,接口的 IP 地址,硬件的 MAC 地址等。 img

ARP

ARP 协议用在局域网(LAN)内部。借用ARP协议,设备可以知道同一局域网内的 IP-MAC 对应关系。当我们访问一个本地 IP 地址时,设备根据该对应关系,与对应的 MAC 地址通信。通过 ARP 工具,我们可以知道局域网内的通信是否正常。

$ arp -a

img

网络层

网络层是一个广域的互联网,互联网上的设备用IP地址识别。ping 是向某个IP地址发送 ICMP 协议的 ECHO_REQUEST 请求。收到该请求的设备,将返回ICMP回复。如果 ping 到某个 IP 地址,那么说明该 IP 地址的设备可以经网络层顺利到达。

ping 10.0.10.161

img

路由

局域网通过路由器,接入广域的互联网。互联网上的通信往往要经过多个路由器接力。途中路由器的故障,可能导致互联网访问异常。

$ netstat -nr

显示路由表。从路由表中,可以找到网关(Gateway)。网关是通向更加广域网络的出口。

img

域名解析

DNS 是在域名和 IP 之间进行翻译。DNS 故障会导致我们无法通过域名访问某个网址。

$ host www.sina.com.cn

DNS 域名解析。返回域名对应的 IP 地址

img