很多运维同学都有这种经历:
ping 是通的,但网页打不开
域名访问不通,但 IP 可以
防火墙明明放行了,业务还是异常
这些问题的背后,其实都指向同一件事:
👉 浏览器访问网页的完整链路,你真的搞懂了吗?
今天我们就用一篇图文,把这件事彻底讲清楚。
一、先看整体流程(核心图)

你可以先记住一句话:
👉 访问网页 = DNS解析 + HTTP请求 + 网络转发
二、第一步:DNS解析(把域名变成IP)
当你在浏览器输入:
www.example.com浏览器第一件事不是访问网站,而是:
👉 问 DNS:这个域名对应哪个 IP?
这一步具体发生什么?
发起 DNS 请求
协议:UDP
端口:53
判断 DNS 是否同网段
这里非常关键(很多人会忽略):
同网段 → 直接发
不同网段 → 走网关
ARP 获取 MAC 地址
不管发给谁,都必须知道 MAC:👉 会发 ARP 请求发出请求并拿到 IP
最终拿到:
www.example.com → 10.1.1.20DNS流程图

三、第二步:访问网页(HTTP请求)
拿到 IP 后,才真正开始访问网站。
整个封装过程(重点!)
应用层
浏览器生成 HTTP 请求传输层
交给 TCP:目标端口:80源端口:随机网络层
判断是否同网段:是 → 直接发否 → 发给网关数据链路层
继续做两件事:ARP 获取 MAC封装 Ethernet发出去
数据正式进入网络。
封装过程图

四、用一个生活例子帮你彻底理解
你可以把整个过程理解成“寄快递”:
HTTP → 写信内容
TCP → 写门牌号
IP → 写地址
MAC → 找到具体收件人
物理层 → 快递发出去
👉 每一层都在“加一层包装”
五、核心概念:五元组
做网络运维,一定绕不开这个东西:
👉 五元组
什么是五元组?
源IP + 目的IP + 源端口 + 目的端口 + 协议例如:
192.168.1.10:52341 → 10.1.1.20:80 (TCP)五元组作用
👉 用来唯一标识一条连接
防火墙识别流量
NAT 转换
会话管理
抓包分析
六、防火墙到底在干嘛?(很多人误解)
很多人以为:
👉 防火墙 = 每个包都检查
其实不是。
七、真实的防火墙工作机制
看图先理解
实际流程是这样的:
第一步:第一个包
防火墙会:
提取五元组
匹配安全策略
决定放行 or 拒绝
第二步:建立会话
如果放行:
👉 记录一条会话(Session)
第三步:后续包
👉 直接查会话表,不再重复匹配策略
关键结论
👉 第一个包决定一切
第一个包通过 → 后面全通过
第一个包被拒 → 后面都没戏
八、把整个流程串起来(最终版)
输入域名访问网页
输入域名
→ DNS解析(UDP 53)
→ 获取IP
→ HTTP请求(TCP 80)
→ 判断网段
→ ARP找MAC
→ 封装数据
→ 发到网络
→ 防火墙基于五元组放行
→ 返回页面九、运维为什么必须懂这个?
因为你排障,本质就是在定位链路哪一段断了:
DNS挂了?
TCP端口不通?
防火墙没放?
ARP异常?
👉 你脑子里有没有这条链路,决定你能不能快速定位问题
十、一句话
👉 技术的本质不是记命令,而是理解链路
当你真正把这条链路吃透:
网络问题会越来越简单
排障会越来越快
你也会越来越有底气