☰
从断网到懂网:TCP/IP、DNS与网络排查实战笔记
2026/9/30 7:55:46 网站建设 项目流程

严格来说,这不是一篇教程,而是我今晚临时起意,把脑子里那堆零散的网络知识重新捋了一遍之后的笔记。标题就叫“今天学了点网络知识,记一下”。起因特别简单:下午家里网突然卡成PPT,视频会议开到一半直接掉线,我重启了三遍路由器都没解决,最后发现是光猫的光纤接头氧化松动,重新插紧就好了。当时我就想,天天在用网络,可真到排查问题的时候,我居然只会重启路由器这一招。这不行。

于是晚上抽了两个小时,把TCP/IP、DNS、HTTP这些概念从头过了一遍,拿自己的电脑做了几个小实验,顺手把家里的小网络拓扑也画了出来。这篇就是今天这份笔记的整理版,尽量用大白话写,争取让零基础的读者也能看懂我在折腾什么;如果你已经有一定网络基础,也可以直接跳到中间几节,看看我踩过的坑和排查思路,说不定能补上一些你平时忽略的细节。

1. 从一次断网说起:为什么突然想补网络知识

1.1 那个让我卡了半天的故障

先说说今天下午那次断网。当时我正在开线上会议,突然画面开始模糊,声音断断续续,接着直接提示“网络连接已断开”。我下意识地跑到客厅,看了一眼路由器:指示灯全亮,看起来一切正常。于是我开始执行那套“祖传操作”——拔电源、等十秒、插回去、等灯变绿。结果呢?恢复了大约五分钟,又开始卡。

反复折腾了三次之后,我决定换个思路。既然路由器指示灯正常、Wi-Fi也能连上,说明问题大概率不在路由器本身。我顺手拔下光猫上的光纤接头看了一眼,发现插头表面有点发黑,像是氧化了。用纸巾蘸酒精擦了擦,重新插紧,网络立刻满血复活。

这件事给了我一个很直接的刺激:网络问题不是一个“重启”就能包治百病的东西。你得会判断问题出在哪一层,是物理链路、是IP配置、是DNS解析,还是应用本身。这种判断力,靠的是对网络基础知识的理解,而不是靠运气。

1.2 网络知识其实是“分层的”

以前我总觉得“网络协议”这种东西离自己很远,直到这次排查才意识到,它其实就是一套分层的规矩。

你可以把数据从你的电脑发到服务器,想象成寄快递。快递要能送到,必须有几个环节:你得先写好收件人地址(应用层),快递公司给你一个运单号(传输层),运输系统规划路线把它送到对应的城市(网络层),最后由当地的卡车把它拉到家门口(链路层)。

这个比喻对应到网络里,就是经典的TCP/IP四层模型:应用层、传输层、网络层、链路层。每一层各司其职,只关心自己的事。比如路由器主要工作在第三层(网络层),它负责看IP地址来转发数据;交换机主要工作在第二层(链路层),它根据MAC地址来转发数据;而浏览器、微信这类软件则属于应用层。

为什么要分层?因为分层之后,出了问题才好在固定的位置排查。就像快递丢了,你不会去怪生产包裹的工厂,而是先查是运输环节丢了,还是派送环节丢了。网络也是同样道理:页面打不开,你首先要判断是应用的问题(比如服务器挂了)、解析的问题(DNS查不到)、网络的问题(链路不通),还是设备的问题(路由器坏了)。这个判断能力,就是我今天最大的收获。

1.3 我给自己安排的入门路径

晚上坐下来之后,我没有一上来就去啃协议原文,而是给自己划了一条主线:先搞清楚最常用的几个概念,再做实验,再回头看理论。

我的顺序是这样的:

  • 先弄懂IP地址和子网掩码,因为这是网络世界最基本的“门牌号”体系;
  • 再理解DNS,因为域名解析是上网的第一步;
  • 然后看HTTP/HTTPS,因为这是你在浏览器里天天打交道的东西;
  • 最后学几个排查命令,比如ping、tracert、nslookup,用来验证前面的理论。

走完这条线,你会发现一条非常清晰的映射关系:你电脑上输入的网址,经过DNS变成IP,通过IP找到主机,再通过TCP建立连接,最后用HTTP把网页内容拉回来。每一步的背后都有对应的协议在工作,而每一个协议,都能用一套命令去排查。

2. 今天啃下的三块硬骨头:IP、DNS与数据包

2.1 IP地址和子网掩码:门牌号和门牌范围

先聊IP地址。IPv4地址是一个32位的数字,为了方便记忆,通常写成四段十进制,比如192.168.1.100。这个数的每一个段落范围都在0到255之间,加起来总共可以表示约42亿个地址。听起来很多,但今天的互联网设备数量早已远超这个数,所以后来又出了IPv6,地址长度是128位,数量级大到可以给地球上的每一粒沙子分配一个地址。

IP地址又分公网地址和私有地址。公网地址是在互联网上真实可路由的,相当于你在全世界都能被找到的固定门牌号;而私有地址只在局域网内部使用,比如家里路由器默认分配的192.168.x.x就是私有网段。私有地址不会直接出现在公网上,因为公网路由器根本不知道怎么把数据送回这个地址。

这里最关键的是子网掩码。有了IP地址,还需要知道“哪些地址跟我属于同一个局域网”。比如我家的路由器默认网段是192.168.1.0/24,斜杠后面的24表示子网掩码是255.255.255.0,也就是说前24位是网络部分,后面的8位是主机部分。这样一来,从192.168.1.1到192.168.1.254共254个地址,都属于同一局域网。

我试着手动算了一下:192.168.1.0/24这个网段里,第一个地址192.168.1.0是网络地址,用来标识这个网段本身;最后一个192.168.1.255是广播地址,用来向该网段所有设备发消息;中间254个地址才能分配给设备。这个计算不复杂,但搞明白之后,再看路由器后台的“DHCP地址池”设置,就完全不懵了。DHCP就是自动分配IP的协议,你家每台设备一连上Wi-Fi,路由器就会从地址池里挑一个空闲IP给它。

2.2 DNS解析:从网址到IP的翻译官

IP地址再重要,也没法要求你每次访问网站都输入一长串数字。所以就有了DNS(域名系统),它干的事就相当于手机里的通讯录:你存了一个联系人叫“老王”,拨电话时系统查通讯录,自动翻译成老王的真实号码。浏览器输入example.com,DNS服务器会翻译成对应的IP地址,比如93.184.216.34。

这个查询过程是递归的。你电脑先问本地路由器,路由器问运营商的DNS服务器,运营商服务器若没有缓存,就一路查到根服务器、顶级域服务器,最后找到权威服务器,把IP返回给你。整套过程一般只需要几十毫秒,但一旦某个环节出问题,就会造成“能上微信但网页打不开”这种奇怪现象。

我在电脑上试了一下nslookup www.baidu.com,看到返回的IP之后,又用ping www.baidu.com验证了一遍。这时候就有一个很重要的认知:ping通不代表网站没问题,因为ping走的是ICMP协议,而网页走的是TCP/HTTP协议。很多服务器出于安全策略会禁掉ICMP响应,这就导致一个常见场景——“能解析出IP,ping不通,但浏览器又能正常打开”。所以判断连通性的时候,不能只用一条命令下结论,得分场景综合判断。

2.3 数据包与TCP三次握手:寄包裹和确认收货

搞懂了地址和解析,下一个问题是:数据是具体怎么送出去的?

上网的过程,本质上就是一堆数据包在网络中穿梭。你下载一个文件,文件会被协议栈拆成许多小块,每一块加上源IP、目标IP、序号等信息,成为一个数据包。这些包到达目的地后,会被重新组装成完整的文件。这个过程像极了寄快递:一件大货分成几个小箱子,每个箱子贴好地址和编号,到站后再拼起来。

TCP在传输层做的核心事情之一,就是建立可靠的连接。它最出名的机制就是“三次握手”:客户端先发送一个SYN包,告诉服务器“我想建立连接”;服务器收到后回一个SYN-ACK包,表示“收到,我也准备好了”;客户端再回一个ACK包,确认“知道了”。完成这三步,双方才开始正式传数据。

为什么必须是三次而不是两次?因为要考虑一个经典场景:客户端第一次发的SYN包因为网络拥塞迟迟没到,客户端等超时后重发SYN,这次连接成功,两边愉快传完数据关闭连接。结果第一次那个SYN包这时候才姗姗来迟,服务器收到后以为客户端想开新连接,就回了SYN-ACK等客户端回复。如果只有两次握手,服务器在收到第一次SYN时就已经分配了资源,可客户端根本没想建立这个连接,会造成资源浪费甚至安全隐患。有了第三次ACK,服务器发现自己等不到这个ACK,就不会为失效的SYN建立连接。这个设计精妙的地方在于:它让连接双方都确认了“对方能说话,我也能说话”,避免半开连接。

3. 抓包实测:用一个晚上看清网络请求的全过程

3.1 用浏览器开发者工具观察请求

理论再丰满,不动手验证一遍总觉得不踏实。我今晚最推荐的实验,就是打开浏览器自带的开发者工具,去看一个网页加载的全过程。

我随便打开了一个资讯页面,按下F12切到Network面板,再刷新一次页面。这时候你能看到密密麻麻的请求列表:HTML文档、CSS样式、JavaScript脚本、图片、字体……每一项都记录了请求的URL、状态码、协议类型、耗时、大小。我第一次看到这个列表的时候,最大的感受是:原来打开一个网页,背后是几十上百个请求在并行、排队、加载,缺一个可能就会影响页面显示。

这里有两个状态码值得特别注意:200表示成功返回,304表示“未修改”,也就是浏览器本地缓存还有效,直接复用缓存就可以了。看到大量304不是坏事,恰恰说明浏览器缓存配置得好,省流量也省时间。如果看到404,那就是资源在服务器上找不到;看到500,通常是服务器端出错了。学会看这个列表,你就能快速分辨“网页打不开是前端问题还是后端问题”。

3.2 理解HTTP与HTTPS的差异

同样在开发者工具里,你会发现大多数请求的协议都是https而不是http。这俩的差别,简单说就是:HTTP是明文传输,像个没封口的信封,沿途任何一个节点都能看到你写了什么;HTTPS则是在HTTP外面套了一层TLS加密,相当于把信封封好、加了防拆标记,中途即使有人拿到,也看不懂内容。

加密还只是HTTPS的一部分,它同时解决了“对方是不是他说的那个人”的身份验证问题。浏览器会去校验服务器的数字证书,确认它是由受信任的CA机构签发的。你在浏览器地址栏看到的那把小锁,就是“证书校验通过”的直观标志。

但这里有个坑我得说一下:HTTPS不保证“这个网站是安全的”,它只保证“你和这个网站之间的传输过程是加密的”。如果网站本身是钓鱼站,也有合法的证书,浏览器上的锁依然是绿色的。所以不要因为看到小锁就放松警惕,尤其是在输入账号密码之前,还是要核对域名是不是你真正想访问的那个。

3.3 本地DNS排查:nslookup与ping的组合用法

在Windows上,DNS查询最常用的命令是nslookup;在Linux和macOS上,还可以用dig,只是dig需要额外安装。

我用一个组合实验来演示排查思路。假设有用户反馈“输入域名打不开网页”,我按这个顺序来查:

nslookup www.example.com

如果返回Non-existent domain,说明纯解析失败;如果返回了IP,再看下一步:

ping www.example.com

如果解析正常但ping超时,说明要么目标服务器禁ping,要么中间链路有问题,需要进一步用tracert看路径;如果ping通,但浏览器依然打不开,就得检查是不是TCP端口(通常是443或80)没通,或者HTTPS证书有问题。

有一次我遇到一个更隐蔽的情况:nslookup返回的IP跟正常情况下不一样,但命令看起来又没报错。后来查了半天,才发现是路由器里的DNS设置被改成了一个第三方解析服务。这种情况虽然不常见,但提醒了我一个经验——排查DNS问题时,不光要看能不能解析,还要看解析结果是否合理、是否符合预期。

4. 家庭组网实战:路由器、交换机与Wi-Fi频段

4.1 光猫、路由器、交换机的分工

今天搞明白的另一个大事,是分清家里那几个盒子到底各干什么活。过去我以为光猫就是“放大网络的”,路由器就是“发射Wi-Fi的”,至于交换机,很多人家里根本没有。直到我理清了数据流,才彻底想通。

光猫,全称是“光调制解调器”,它的主要任务是把光纤里的光信号转换成电信号,你可以把它理解成光信号和电信号之间的“翻译官”。运营商通常会把入户光缆接到这里,再由它提供一个出口接路由器。需要注意的是,很多光猫其实也自带Wi-Fi和路由功能,但性能往往一般,所以很多人会把它设置成“桥接模式”,让它只背书光转换的职责,把路由和拨号交给后面的独立路由器。

路由器则负责两件大事:NAT和DHCP。NAT让全家几十台设备共用同一个公网IP出去上网,DHCP负责自动给每台设备分配内网IP。它同时提供无线信号,把家里所有无线设备汇聚成一个局域网。

交换机就简单了,它在同一个局域网内部扩展接口和带宽。比如书房只有一根网线,但台式机、打印机、树莓派都要插网线,那就加一个小型交换机,一根进线分成多根出线。我个人的建议是,如果家里只有五六台设备,普通路由器自带的几个LAN口完全够用,没必要专门加交换机;但如果你是搞智能家居或者装修时只预埋了一两根网线,那交换机几乎就是必需品。

4.2 2.4G与5G Wi-Fi怎么选

很多路由器默认会把Wi-Fi拆成两个信号:一个叫”xxx_2.4G“,一个叫”xxx_5G“。这两个频段的差异,几乎决定你家各处网速的好坏。

我用一个表格来总结它们的区别:

对比项2.4G频段5G频段
频率2.4GHz5GHz
信号覆盖好,穿墙能力强差,穿墙容易衰减
干扰程度高,邻居路由器、蓝牙、微波炉都干扰它低,信道干净
最高速率相对较低高,适合大流量场景
典型场景隔墙、远距离连接同房间高清视频、下载、游戏

实操原则很简单:在路由器同一房间,优先连5G;隔着墙或者隔了两道墙,老老实实连2.4G。很多用户抱怨“5G信号满格但网速很慢”,实际上多半是信号压根没覆盖到位,手机在满格但速率低的状态下反复重连。用手机自带的速度测试软件分房间测一遍,你就能摸清自己家的信号分布。如果某个位置两个频段都弱,那就不是切换频段能解决的,得考虑调整路由器摆放位置,或者加Mesh节点了。

4.3 端口转发与NAT:为什么外网访问不了家里设备

今天还专门研究了一个困扰我很久的问题:为什么在公司想访问家里的NAS,通常连不上?

根源就是NAT。家里所有设备共用一个公网IP,外部设备请求到这个公网IP时,路由器不知道应该把数据发给哪台内网设备,于是默认拒绝了。这就好比快递员把包裹送到小区门口,但保安亭不知道楼栋和房号,就只能拒收。

解决办法是端口转发。比如你家里NAS的IP是192.168.1.50,月盘服务端口是5000,你可以在路由器后台设置一条规则:把公网IP的5000端口收到的数据,全部转发给192.168.1.50的5000端口。这样外部设备访问“公网IP:5000”就能找到NAS了。

不过我要给一个非常强烈的建议:不要随便开启端口转发。每开一个端口,就相当于把家里的一扇门露在公网上,一旦服务程序有漏洞,就可能被扫描到并利用。如果你是纯新手,只是想远程访问一下自己家设备,更稳妥的方案是利用运营商分配的公网IP结合DDNS,或者用支持内网穿透的专业工具,不要自己盲目改路由器防火墙。

5. 网络故障排查:几个常用命令与判断思路

5.1 ping不通,问题出在哪一层

学会分层之后,排查网络故障就变得很有秩序了。我的习惯是自下而上,先证明本机没问题,再看局域网,最后看外网。

第一层,测试本机网络协议栈:

ping 127.0.0.1

这是回环地址,根本不会走到网卡外。如果这条都不通,说明电脑的TCP/IP协议栈损坏,概率极小但存在,通常重装网卡驱动能解决。

第二层,测试局域网连通性:

ping 192.168.1.1

这里换成你自己路由器的网关地址。如果不通,问题就在本机到路由器之间:检查网线、Wi-Fi连接、IP是否没有自动获取成功。我遇到过一种情况是网线水晶头接触不良,电脑显示“正在识别”,这时候ipconfig一看IP是169.254.x.x,说明DHCP分配失败,基本可以锁定物理层问题。

第三层,测试互联网出口:

ping 223.5.5.5

这是阿里云公共DNS的IP,用IP地址测是为了跳过DNS解析环节。如果不通,说明要么运营商线路出问题,要么光猫到路由器之间有问题。

第四层,测试域名解析:

ping www.baidu.com

这一步就把DNS解析因素加进来了。如果上一步通、这一步不通,基本可以断定是DNS的问题。

5.2 tracert定位链路

tracert(Windows)/traceroute(Linux、macOS)是排查“中间链路丢包”的利器。它会向目标地址发送一串逐跳递增TTL的数据包,每一跳都返回路径信息,让你看到数据包从你家路由器出发,经过运营商节点,最终到达目标服务器经过的每一步。

我实际跑过一次tracert www.example.com,输出大概是这样:

1 <1ms 192.168.1.1 2 5ms 100.64.x.x 3 12ms 61.139.x.x 4 * * 请求超时 5 20ms 202.97.x.x ...

如果中间某几跳显示*,不要慌,很多路由器出于安全策略会丢弃TTL超时的数据包,这并不代表链路断了。关键要看最后一跳通不通。如果目标IP能到,但网页慢,就要看中间每一跳的延迟是否异常飙高,尤其是连续几跳都在100ms以上,那基本可以判断有拥塞或绕路。

5.3 常见问题速查表

把今天学到的东西整理成一个速查表,下次遇到问题直接对着看:

现象可能原因排查方向
所有设备都断网光猫或运营商线路故障查看光猫指示灯,检查光纤接头,联系运营商
只有一台设备断网Wi-Fi密码错误、IP冲突、网卡故障重新连接Wi-Fi,ipconfig /release和ipconfig /renew
能发微信,网页打不开DNS解析异常nslookup检查解析,更换DNS为223.5.5.5
下载慢但网页正常单线程下载限速、服务器限速多线程工具测试,换节点测试
5G信号满格但网速慢信号强度虚高,实际信噪比差靠近路由器测试,换2.4G对比
外网无法访问家中设备NAT/端口转发未配置检查路由器端口转发规则,确认服务端口

排查网络问题,最怕的就是没有章法地乱试。我自己吃过不少亏,最后总结出的经验就一句:先确定是“这单个设备的问题”还是“整个网络的问题”,再确定是“解析的问题”还是“链路的问题”。按这个顺序来,绝大多数故障都不会绕太远。

今天的笔记就记到这里。我这个把月网线插拔、重启路由器的老毛病,终于被一套正经的排查思路换掉了。网络这东西确实是越学越有味道——那些看似玄乎的卡顿、掉线、慢加载,背后全是可解释、可定位、可解决的逻辑链条,剩下没消化完的IPv6、VLAN和动态路由协议,就留到下次再记了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询