Mac OS X网络诊断命令

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

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

基本工具

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

ifconfig

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

ARP

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

arp -a

显示本地存储的IP-MAC对应关系

sudo arping -I eth0 192.168.1.1

经eth0接口,发送ARP请求,查询IP为192.168.1.1设备的MAC地址

sudo arp-scan -l

查询整个局域网内的所有IP地址的对应MAC地址

sudo tcpdump -i en0 arp

监听en0接口的arp协议通信

网络层

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

ping 192.168.1.1

向IP地址192.168.1.255发送ICMP请求。如果该地址的ICMP没有被禁用,那么在该网上的设备将回复。

ping 192.168.1.255

向广播(broadcast)地址192.168.1.255发送ICMP请求。如果ICMP没有被禁用,那么在该网上的设备将回复。

需要注意的是,许多设备会禁用ICMP。如果ping不到一个设备,并不一定是网络层故障。

如果两个设备有相同的IP地址,将导致IP冲突。许多网络中是由DHCP协议自动分配IP地址的,这样可以极大的减少IP冲突的可能性。DHCP服务器与设备达成协议,设备将在一定时间内占据某个IP地址,而DHCP服务器不再把该IP地址分配给别人。

sudo ipconfig set en0 DHCP

更新DHCP租约。设备将释放IP地址,再从DHCP服务器重新获得IP地址。

sudo ipconfig set en0 INFORM 192.168.0.120

将接口en0设定为静态IP地址。

路由

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

netstat -nr

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

traceroute 74.125.128.99

追踪到达IP目的地的全程路由。

traceroute -I 74.125.128.99

通过ICMP协议,追踪路由。ICMP协议经常会被禁用,所以会返回"*"的字符串。

sudo traceroute -T -p 80 74.125.128.99

通过TCP协议,经80端口,追踪路由。TCP协议的默认端口80很少会被禁用。

网络监听

tcpdump是一款网络抓包工具。它可以监听网络接口不同层的通信,并过滤出特定的内容,比如特定协议、特定端口等等。我们上面已经使用tcpdump监听了ARP协议通信。这里我们来看更多的监听方式。

sudo tcpdump -i en0

监听en0接口的所有通信

sudo tcpdump -A -i en0

用ASCII显示en0接口的通信内容

sudo tcpdump -i en0 ‘port 8080‘

显示en0接口的8080端口的通信

sudo tcpdump -i eth1 src 192.168.1.200

显示eth1接口,来自192.168.1.200的通信

sudo tcpdump -i eth1 dst 192.168.1.101 and port 80

显示eth1接口80端口,目的地为192.168.1.101的通信

sudo tcpdump -w record.pcap -i lo0

将lo0接口的通信存入文件record.pcap

域名解析

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

host www.sina.com.cn

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

时间: 2024-10-10 01:46:56

Mac OS X网络诊断命令的相关文章

【转载】MAC OS开启关闭ftp命令

MAC OS开启关闭ftp命令 第一种:通过命令行来开启关闭,如下所示: 开启 FTP Server sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist 关闭 FTP Server sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist 第二种:通过第三方图形工具来开启和关闭ftp功能: 1.Lion Tweaks 1.3:这个工具可以设

Windows Server 2012 R2中的网络诊断命令

Get-NetAdapter Get-NetIPAddress Get-NetIPConfiguration(GIP) TNC :Pinging Servers and Trace Route tnc www.baidu.com -traceroutetnc www.baidu.com -prot 80tnc hostname RDP Provider Address (PA) Ping PA Pings allows admins to validate connectivity in the

Mac OS terminal终端常用命令

基础概念 OS X 采用的Unix文件系统,所有文件都挂在跟目录“ /” 下面,所以不在要有Windows 下的盘符概念.比如什么“C:”你在桌面上看到的硬盘都挂在 /Volumes 下.比如接上个叫做“XX”的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行: “ls /Volumes/XX”, 看看显示出的是不是这个移动硬盘的内容.  驱动所在位置:    /Systme/Library/Extensions用户文件夹位置:/User/用户名桌面的位置:        /U

【Mac】Mac OS X 安装GUN命令行工具

macos的很多用户都是做it相关的人,类unix系统带来了很多方面,尤其是经常和linux打交道的人. 但是作为经常使用linux 命令行的人发现macos中的命令行工具很多都是bsd工具,跟linux下得使用方式开始差距挺大的,那么怎么安装GUN命令行工具,然后更舒服的在macos和linux之间切换呢? 于是找到了下面的文章,顺带翻译下. 原文地址:Install and Use GNU Command Line Tools on Mac OS X | Hong Xu 如果你是从Linux

mac os 切换网络优先级

升级到新系统OS X Yesemite 系统后有WIFI时会默认使用WIFI而不是有线. 但是公司的WIFI基本没法用,每次到公司之后就得把WIFI关掉,回家又打开,烦死了. 今天研究了下原来网络优先级是可以调整的. 然后会出来这个 然后就拖动排优先级就好了

linux||mac os如何自定义shell命令

博主是goagent忠实用户,但是在mac下每次启动goagent都要cd到proxy的目录下,然后再执行proxy.py文件,非常麻烦,所以博主想到能否自己定义一个shell命令,一健启动goagent,其实也很简单,过程如下. (1)我们在user目录下输入,"-a"是现实隐藏的文件 ls -a (2)展现出了很多前边是"."的文件,这种文件在通常情况下是隐藏的 hirotekiMacBook-Pro:~ hakuri$ ls -a . .. .CFUserTe

【转】mac os x配置adb命令的方法,苹果电脑设置adb命令的方法

http://www.myexception.cn/operating-system/1636963.html 步骤如下: 1. 启动终端Terminal (如果当前用户文件夹下已有.bash_profile文件,则直接跳到5)2. 进入当前用户的home目录(命令行输入echo $HOME)3. 创建.bash_profile(命令行输入touch .bash_profile)4. 打开.bash_profile文件(命令行输入open -e .bash_profile)5. 编辑.bash_

Mac OS X显示隐藏文件命令

defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles No && killall Finder //不显示隐藏文件

Mac OS X 中一些常用的命令行技巧

一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物理地址的,这就是命令行的用武之地了.具体来说,若心中已有想修改的物理地址,例如 00:1f:3c:93:b5:99,可执行 $ sudo ifconfig en1 ether 00:1f:3c:93:b5:99 来临时修改网卡的物理地址:若没有物理地址,只是想临时启用尝试一下,可用 openssl