转载自: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. 【Java】接口开发中关于接受和发送json的相关范例

    接受json package com.suneee.scn.wms.web.rocketmq; import java.util.List; import net.sf.json.JSONArray; ...

  2. Contest 4

    A:cf原题.当然是不是也没什么关系. #include<iostream> #include<cstdio> #include<cstdlib> #include ...

  3. Python常忘的进阶知识(下)

    0.目录 1.装饰器 1.1 为每个函数都增加一个功能 1.2 装饰器只是一种模式 1.3 语法糖 1.4 函数需要传递参数,该如何更改装饰器? 1.5 函数需要传递关键字参数,该如何更改装饰器? 2 ...

  4. oracle job定时执行存储过程

     JOB定时跑插入语句1.建插入数据的存储过程create or replace procedure report_web asV_START_DATE DATE;V_END_DATE  DATE;b ...

  5. bzoj1511 [POI2006]OKR-Periods of Words kmp+乱搞

    1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 351  Solved: 220[S ...

  6. 使用jvisualvm工具来监控java运行情况

    jvisualvm是jdk自带的工具.所以要先安装jdk   1.jvisualvm工具的路径: 通过which jvisualvm来查看 /usr/local/jdk1.7.0_79/bin/jvi ...

  7. Kubernetes 1.5通过Ceph实现有状态容器

    在上一篇博文,我们通过kubernetes的devlopment和service完成了sonarqube的部署.看起来已经可用,但是仍然有一个很大的问题.我们知道,像mysql这种数据库是需要保存数据 ...

  8. Spring Boot 使用IntelliJ IDEA创建一个web开发实例(一)

    .新建项目File-->New-->Project-->Spring Initializr 点击Finish,一个Spring Boot web应用就创建好了.

  9. A Beginner’s Guide to Eigenvectors, PCA, Covariance and Entropy

    A Beginner’s Guide to Eigenvectors, PCA, Covariance and Entropy Content: Linear Transformations Prin ...

  10. angular package.json中start build

    "start": "ng serve --host 0.0.0.0 --port 4200 --proxy-config proxy.conf.json", & ...