基础知识

网卡,是专门用来负责计算机网络通讯的硬件设备。

IP 地址是设置在网卡上的地址信息。
拿手机为例子:

网卡相当于SIM卡,IP 地址相当于电话号码。

对于WINDOWS 电脑,很好操作,可以直接在网络-本地连接中查看:
image.png

在ubuntu 系统中,也可以通过右上角的设置查看:
image.png

MAC 同样可以查看:
image.png

相关命令

查看网卡信息

可以用来查看当前计算机的网卡信息。
我的英文版,长这个亚子:

  1. $ ifconfig
  2. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. inet 192.168.130.128 netmask 255.255.255.0 broadcast 192.168.130.255
  4. inet6 fe80::9f83:917c:bde1:77fa prefixlen 64 scopeid 0x20<link>
  5. ether 00:0c:29:4b:90:45 txqueuelen 1000 (Ethernet)
  6. RX packets 134473 bytes 197764962 (197.7 MB)
  7. RX errors 0 dropped 0 overruns 0 frame 0
  8. TX packets 21188 bytes 1646829 (1.6 MB)
  9. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  10. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  11. inet 127.0.0.1 netmask 255.0.0.0
  12. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  13. loop txqueuelen 1000 (Local Loopback)
  14. RX packets 776 bytes 74302 (74.3 KB)
  15. RX errors 0 dropped 0 overruns 0 frame 0
  16. TX packets 776 bytes 74302 (74.3 KB)
  17. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

image.png
这两行内容,对应两个网卡。
其中:

  1. 1. ens33 inet 地址
  2. 该地址应该与网络连接中查看的ipv4 地址相同
  3. 2. lo inet 地址
  4. 网络连接本地环回地址,用来测试网卡是否正常工作

测试网络

使用ping 命令:ping IP 地址

我们用mac 的终端使用ping 测试ubuntu 虚拟机中的地址(将它们当作两台不同的电脑):

# ubuntu 中
mugpeng@mugpeng-virtual-machine:~$ ifconfig | grep inet
        inet 192.168.130.128  netmask 255.255.255.0  broadcast 192.168.130.255
        inet6 fe80::9f83:917c:bde1:77fa  prefixlen 64  scopeid 0x20<link>
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>

# 检测
$ ping 192.168.130.128
PING 192.168.130.128 (192.168.130.128): 56 data bytes
64 bytes from 192.168.130.128: icmp_seq=0 ttl=64 time=0.424 ms
64 bytes from 192.168.130.128: icmp_seq=1 ttl=64 time=0.308 ms
64 bytes from 192.168.130.128: icmp_seq=2 ttl=64 time=0.599 ms
64 bytes from 192.168.130.128: icmp_seq=3 ttl=64 time=0.578 ms
64 bytes from 192.168.130.128: icmp_seq=4 ttl=64 time=0.349 ms
64 bytes from 192.168.130.128: icmp_seq=5 ttl=64 time=0.252 ms
64 bytes from 192.168.130.128: icmp_seq=6 ttl=64 time=0.223 ms
^C
--- 192.168.130.128 ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.223/0.390/0.599/0.139 ms

在底部可以看到,一共进行了七次数据传输,其中0次失败,证明是连接成功的。

另外,我们使用ctrl+c 终止ping 测试。

$ ping 195.201.82.185
PING 195.201.82.185 (195.201.82.185): 56 data bytes
64 bytes from 195.201.82.185: icmp_seq=0 ttl=113 time=293.444 ms
64 bytes from 195.201.82.185: icmp_seq=1 ttl=113 time=292.048 ms
64 bytes from 195.201.82.185: icmp_seq=2 ttl=113 time=291.955 ms
64 bytes from 195.201.82.185: icmp_seq=3 ttl=113 time=300.048 ms
64 bytes from 195.201.82.185: icmp_seq=4 ttl=113 time=293.107 ms
64 bytes from 195.201.82.185: icmp_seq=5 ttl=113 time=295.848 ms
64 bytes from 195.201.82.185: icmp_seq=6 ttl=113 time=378.298 ms
64 bytes from 195.201.82.185: icmp_seq=7 ttl=113 time=291.617 ms
^C
--- 195.201.82.185 ping statistics ---
8 packets transmitted, 8 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 291.617/304.546/378.298/27.998 ms

再看一下这个测试的结果,可以看到右侧的时间比之前的显著上升了;时间越短,说明网络连接速度越快。

如果我们输入一段没有连接的ip 地址用于测试,是无法接收到数据的:

$ ping 192.168.130.121
PING 192.168.130.121 (192.168.130.121): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
^C
--- 192.168.130.121 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

如果想要检测本地网卡是否正常,可以用lo 环回地址进行检测。

$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.086 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.079 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.049 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.079 ms
^C
--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.049/0.070/0.086/0.015 ms

原理

image.png
ping 测试,相当于发送56 字节数据发送给ubuntu 系统;而ubuntu 会返回一个64 字节的数据包发送回我们进行测试的mac 系统。