转载自:http://blog.csdn.net/zkh90644/article/details/50539948

操作系统拥有一套通用的实用程序来查明本地主机的有线或者无线链路状态和IP的连接情况。如果本机有IP连接,那么就意味着有线或者无线是正常工作的。在Mac OS X系统中,有以下几个实用的程序来确认连接状态: 
ifconfig: 查找本机IP地址和网络接口。 
netstat: 使用-r来找到特定网络接口的默认网关。 
ping: 用来测试本机之间的端对端的IP连接。 
arp: 管理本地的ARP缓存。

以下是连接状态和IP连接的例子:

  1. 打开Terminal(译者附:可以通过Spotlight或者实用工具->终端“)

  2. 输入ifconfig命令,来查找特定网络接口的IP地址。在这个例子中这个无线网络接口(en1)的地址是:192.168.128.253。

    myhost:/usr/bin someuser$ ifconfig 
    en1: flags=8863(UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST) 
    inet 192.168.128.253 netmask 0xffffff00 broadcast 192.168.128.255 
    ether 00:17:f2:e8:ac:0a  
    media: autoselect status: active 
    supported media: autoselect

  3. 输入netstat -r 来寻找实用网络接口en1 的默认网关。在本例子中en1 的默认网关地址是:192.168.128.1。

    myhost:/usr/bin someone$ netstat -r 
    Routing tables 
    Internet: 
    Destination Gateway > Flags Refs Use Netif Expire 
    default 192.168.128.1 > UGSc 90 2 en1

  4. 局域网的数据交互在OSI模型的第2层(即数据链路层)。主机在同一个局域网中发送数据给局域网中的用户使用的第二层的地址(即MAC地址),每一个主机都有一个动态的MAC地址转化为IP地址的列表映射到ARP表中,该表是通过ARP协议 来找到哪个MAC地址对应的是局域网中的哪个IP地址(IP地址在OSI的第三层网络层中)。ARP是十分详细的,同时为了更好的表达ARP,其中的许多内容被删除。以下是ARP的简要介绍:

    每次一个主机需要发送数据到另一台主机中的时候,他都会检查本机的ARP表,如果在ARP表中存在相关的映射,那么数据就会直接发送到该IP地址的MAC地址中。如果不存在映射,为了获得接收数据的IP地址对应的MAC地址,本机的将会发送一个ARP请求广播到局域网,查看已知局域网中的所有IP地址。当对应IP地址的主机收到这个ARP请求后,将会以单播的方式发送ARP响应报文给请求方,告诉请求方自己的IP地址和自己相关联的MAC地址。当请求方收到这个ARP响应报文后,它将更新自己的ARP表同时使用它自己的MAC地址直接发送帧到目的主机上。为了防止ARP缓存的老化,主机将会频繁的发送ARP请求来更新自己的ARP缓存。

  5. 为了使用Terminal(终端) 手动的重新刷新你的ARP表,我们使用以下命令:

    mycomputer:/usr/bin someuser$ arp -d -a

  6. ping默认网关或局域网上另一台主机的IP地址来测试IP的连通性。在Mac OS X上,ping命令是连续的(译者附:不使用终端命令,ping程序在默认参数下是不会停止的)。

    mycomputer:/usr/bin someuser$ ping 192.168.128.1

如果本地连接是同的并且目的主机也是在线上并且是可以达到的,你将会输出每个ICMP(Internet Control Message Protocol)回显请求来显示每个ICMP回显应答

格式如下:

PING 192.168.128.1 (192.168.128.1): 56 data bytes

64 bytes from 192.168.128.1: icmp_seq=0 ttl=64 time=3.255 ms 
64 bytes from 192.168.128.1: icmp_seq=1 ttl=64 time=0.897 ms 
64 bytes from 192.168.128.1: icmp_seq=2 ttl=64 time=0.897 ms 
64 bytes from 192.168.128.1: icmp_seq=3 ttl=64 time=0.905 ms

7 . 如果ICMP请求超时并被ICMP回显应答,那么最有可能的是本地主机与目标主机中间的电缆存在问题,或者目的主机太过繁忙而无法回应。在这种情况下,你可以尝试ping其他局域网中的主机。如果ping的过程中超时不存在,那么就说明本地连接是好的,同时你需要检修问题主机的故障。 
情况如下

PING 192.168.128.1 (192.168.128.1): 56 data bytes

64 bytes from 192.168.128.1: icmp_seq=0 ttl=64 time=3.255 ms 
64 bytes from 192.168.128.1: icmp_seq=1 ttl=64 time=0.897 ms 
Request timeout for icmp_seq 2 
Request timeout for icmp_seq 3 
64 bytes from 192.168.128.1: icmp_seq=4 ttl=64 time=0.897 ms 
64 bytes from 192.168.128.1: icmp_seq=5 ttl=64 time=0.905 ms 
Request timeout for icmp_seq 6

  1. 如果你的连接是好的但是对方的防火墙拒绝了你的ICMP回显请求,那么你讲收到ICMP请求超时的消息。如果目的主机确实响应你的ARP请求,那就意味着你的本地连接是好的同时网络状态是好的。那么就应该尝试关闭目的主机的防火墙,并再次发送PING请求,或者尝试PING一个其他的主机。

PING 192.168.128.1 (192.168.128.1): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2 
Request timeout for icmp_seq 3 
Request timeout for icmp_seq 5

    • 如果目的主机没有响应ARP请求,或者目的主机不在线,你将会接收到“Host is down”这样的消息。这样你就需要尝试ping其他主机,如果还是收到Host is down”这样的消息,那么就说明你的IP地址是配置错误的或者你的上行链路是好的,但是局域网中的其他部分是有问题的。造成这个问题的可能的原因是 上行链路的管理不当,VLAN不匹配,电缆上游存在损坏。

      PING 192.168.128.1 (192.168.128.1): 56 data bytes 
      ping: sendto: No route to host 
      ping: sendto: Host is down 
      ping: sendto: Host is down 
      ping: sendto: Host is down 
      ping: sendto: Host is down

    • 如果你的本地连接是有问题的,那么你将会收到”No route to host“这样的消息,这种状态下你就需要确认你的适配器已启用,或者重新把茶以太电缆(网线),或者重启你的无线连接。 

      PING 192.168.128.1 (192.168.128.1): 56 data bytes 
      ping: sendto: No route to host 
      ping: sendto: No route to host 
      ping: sendto: No route to host 
      ping: sendto: No route to host 
      ping: sendto: No route to host

使用常见的网络命令查看当前网络状态——Mac OS X篇的更多相关文章

  1. Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  2. 使用nfsstat命令查看NFS服务器状态

    转载于:http://www.cnblogs.com/jankie/archive/2011/09/03/2165851.html nfsstat命令显示关于NFS和到内核的远程过程调用(RPC)接口 ...

  3. Linux网络管理——Linux网络命令

    3. Linux网络命令 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB&quo ...

  4. 在Mac OS X系统下 用dd命令将iso镜像写入u盘

    一. Mac下将ISO写入U盘可使用命令行工具dd,操作如下: 1.找出U盘挂载的路径,使用如下命令:diskutil list2.将U盘unmount(将N替换为挂载路径):diskutil unm ...

  5. 常见网络命令之Ping命令

    前言:计算机网络老师要求我们自己总结一下常见的网络命,然后上课可以上去讲一下这些命令使用,像我这么听话的好学生,肯定是照老师要求,认真的总结了一下,总结的过程中,我发现网上已经有的资源讲的都不是很详细 ...

  6. Linux网络管理2---(网络环境查看命令、网络测试命令)

    1.网络环境查看命令 ifconfig命令 查看或临时修改网络状态的命令 可以看到IP.子网掩码……信息 关闭和启动网卡 ifdown 网卡设备名(比如: ifdown eth0):禁用该网卡设备 i ...

  7. iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令

    iostat 命令 查看硬盘的使用情况: iostat iostat -x iotop 命令: 若没安装先安装: yum install iotop -y free 命令,用于查看内存的使用量: fr ...

  8. 常见的网络命令--ping.hostname

    hostname命令 作用:显示以及设置主机名 一.  显示系统主机名 第一种方式:hostname 第二种方式:cat /etc/sysconfig/ntework 使用举例: 从上面可以看到我的系 ...

  9. day11 ss命令 查看网络端口使用情况及对应pid centos7

    [root@oldboyedu ~]# ss -lntup Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNC ...

随机推荐

  1. 电子商务(电销)平台中财务模块(Finance)数据库设计明细

    以下是自己在电子商务系统设计中的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 资金账户表 (finance_account)|-- 自动编号|-- 用户编号|-- 预付款 (ad ...

  2. Linux系统之路——如何在CentOS7.2安装R和RStudio(Server)

    使用ubuntu的小伙伴们直接使用命令sudo apt-get install r-base-dev或者r-base搞定.然而对于使用centos的我却一直卡在安装这一步,十分的悲催,只有羡慕的份,但 ...

  3. windows下MySQL 5.7+ 解压缩版安装配置方法--转载

    方法来自伟大的互联网. 1.去官网下载https://dev.mysql.com/downloads/mysql/.zip格式的MySQL Server的压缩包,根据需要选择x86或x64版.注意:下 ...

  4. OpenCV---轮廓发现

    推文:OpenCV-Python教程(11.轮廓检测) 轮廓发现 是基于图像边缘提取的基础,寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓的发现 相关API findContours 发现轮 ...

  5. ubuntu登陆界面损坏修复

    Ubuntu系统从14升16过程中,不小心进入休眠状态.之后Ubuntu桌面界面打不开.进入命令模式,手动修复 网上的答案是这样: 首先,测试桌面环境安装是否完全.sudo apt-get insta ...

  6. extjs6需要引入文件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. CronTrigger 表达式 (调度配置)

    CronTrigger 的用途更广,相比基于特定时间间隔进行调度安排的 SimpleTrigger,CronTrigger 主要适用于基于日历的调度安排.例如:每星期二的 16:38:10 执行,每月 ...

  8. Codeforces 148 D Bag of mice

    D. Bag of mice http://codeforces.com/problemset/problem/148/D time limit per test 2 seconds memory l ...

  9. 「七天自制PHP框架」第一天:路由与控制器

    我们为什么要使用路由? 原因1:一个更漂亮的URI 1.URI的改进 刚刚开始学PHP时,我们一定写过blog.php?id=1之类的URI,使用GET方式获取参数.这样的URI有两个缺点,一是容易被 ...

  10. constant value too large

    出错现场: .model small .data byte_var dw dup(-, dup()) .stack .code 将byte_var dw 'abc',10h,2 dup(-1,2 du ...