一、常见网络协议先建立整体印象

原始笔记把这一部分的重点放在三个高频协议上:

  • DNS:把域名解析成 IP 地址。
  • ARP:把 IP 地址解析成 MAC 地址。
  • ICMP:网络控制与连通性检查,ping 背后就是它。

可以先看一个总表:

协议 中文名称 核心作用
DNS 域名解析服务 域名 -> IP
ARP 地址解析协议 IP -> MAC
ICMP 因特网控制报文协议 连通性检查、错误反馈
DHCP 动态主机配置协议 自动分配 IP
HTTP/HTTPS 超文本传输协议 网站访问

二、DNS:为什么输入域名就能访问网站

2.1 DNS 的核心作用

DNS 本质上就是一套“翻译系统”,把人更容易记住的域名转换成机器更容易识别的 IP 地址。

例如:

  • baidu.com
  • jd.com
  • taobao.com

这些域名最终都要先被解析成 IP,浏览器才知道该连接哪台服务器。

2.2 DNS 解析的大致流程

一次域名访问通常会经过下面几个环节:

1、先查本地缓存。 2、本地没有命中时,向配置的 DNS 服务器发起查询。 3、DNS 服务器继续递归或迭代查询。 4、返回最终 IP 地址。 5、客户端拿到 IP 后,继续后续 TCP 连接。

2.3 常见 DNS 命令

2.3.1 Windows

ipconfig /displaydns
ipconfig /flushdns
nslookup example.com
nslookup -type=MX example.com

2.3.2 Linux

dig example.com
dig +trace example.com
dig example.com MX
dig -x 8.8.8.8

2.4 遇到 DNS 故障时怎么判断

一个非常典型的现象是:

  • 通过域名访问失败
  • 直接 ping 公网 IP 却是通的

这时往往不是“网络彻底断了”,而是 DNS 配置有问题。可以优先检查:

  • 网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
  • DNS 配置文件 /etc/resolv.conf

例如可以临时添加:

nameserver 223.5.5.5

修改网卡配置后,一般还需要重启网络:

systemctl restart network

三、ARP:局域网里怎么把 IP 变成 MAC

DNS 解决的是“域名到 IP”的问题,而 ARP 解决的是“IP 到 MAC”的问题。

3.1 ARP 的基本过程

假设 10.0.0.200 想访问 10.0.0.2

1、主机先广播询问:谁知道 10.0.0.2 的 MAC 地址? 2、目标主机收到后单播回复自己的 MAC。 3、发起方把结果缓存起来,后续就能直接通信。

这也是为什么 ARP 在局域网通信中非常重要。

3.2 常用 ARP 命令

arp -n
arp -d 10.0.0.201
ping 10.0.0.201

一套常见练习方式是:

1、先查看 ARP 缓存。 2、删除目标主机缓存。 3、再 ping 一次。 4、用 Wireshark 过滤 arp 观察广播和回复过程。

四、ICMP:为什么 ping 能检查网络

ping 使用的就是 ICMP 协议。它最常见的作用有两个:

  • 测试连通性
  • 观察时延和丢包

抓包时可以直接过滤:

icmp

如果 ping 不通,不一定等于目标服务故障,还可能是:

  • 中间链路不通
  • 防火墙禁用了 ICMP
  • 对端主机未启动

五、Linux 网卡配置怎么改

5.1 常见网卡命名

原始笔记里提到常见命名有:

  • ens33
  • eth0

很多运维场景里仍然喜欢使用 eth0 这种更直观的命名。

5.2 把网卡名改成 eth0 的思路

5.2.1 安装系统时指定

在安装 CentOS 7 时,可以在启动参数后追加:

net.ifnames=0 biosdevname=0

5.2.2 安装完成后修改

也可以修改 /boot/grub2/grub.cfglinux16 相关行,追加同样的参数,再重启系统。

5.3 网卡配置文件示例

网卡配置文件通常位于:

/etc/sysconfig/network-scripts/ifcfg-eth0

一个常见示例如下:

TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.1.20"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="223.5.5.5"
DNS2="223.6.6.6"

5.3.1 重点字段说明

  • BOOTPROTO="none":使用静态 IP,而不是 DHCP。
  • ONBOOT="yes":开机自动启用网卡。
  • IPADDR:主机地址。
  • PREFIX:前缀长度,例如 24
  • GATEWAY:默认网关。
  • DNS1DNS2:首选和备用 DNS。

5.4 常见公共 DNS

223.5.5.5
223.6.6.6
114.114.114.114
114.114.115.115
8.8.8.8
8.8.4.4

选择 DNS 时,一般优先使用运营商或当前网络环境推荐的地址,实在没有再使用公共 DNS。

六、用户访问网站的全过程

原始笔记把“访问 www.baidu.com 整个过程”总结得很清晰,核心就是四步:

1、DNS:把域名解析成 IP。 2、TCP 三次握手:和目标 IP + 端口建立连接。 3、请求与响应:浏览器发请求,服务器回响应。 4、TCP 四次挥手:访问完成后关闭连接。

如果把它再展开一点,可以理解成下面这条链路:

输入域名 -> 本地 DNS 查询 -> 获取目标 IP -> 发起 TCP 连接 -> 浏览器发送 HTTP 请求 -> 服务器返回页面内容 -> 浏览器渲染页面 -> 连接关闭

这也是为什么 DNS、TCP、HTTP 看似分散,实际上在一次真实访问中是连起来工作的。

七、局域网上网原理与虚拟机上网原理

7.1 局域网上网的基本思路

一台内网主机要访问外网,大致会经过:

  • 主机先判断目标是否在本地网段。
  • 如果不在本地网段,就把流量交给默认网关。
  • 网关或路由器再负责把流量转发到公网。

这也是为什么默认网关配置错误时,经常会出现“同网段可通,外网不通”的问题。

原始流程图参考:

  • https://www.processon.com/view/link/624666e207912907096e7c0f

7.2 虚拟机上网怎么理解

虚拟机上网本质上也是借助虚拟交换机、虚拟网卡和宿主机网络来完成通信。常见理解方式有:

  • 桥接:虚拟机像局域网里的独立主机一样直接上网。
  • NAT:虚拟机通过宿主机做地址转换后上网。

原始流程图参考:

  • https://www.processon.com/view/link/6041a56af346fb55c9b1b1fd

八、小结

想真正看懂一次网络访问,建议按下面顺序理解:

1、先用 DNS 找到 IP。 2、再用 ARP 在局域网里找到 MAC。 3、然后通过 TCP 建立连接。 4、最后在应用层完成 HTTP 请求和响应。

当这条链路串起来之后,很多“能 ping 不能打开网页”“域名不通但 IP 可通”“改完网卡配置无法上网”之类的问题,就能更快定位了。