
你有没有经历过这样的场景微信消息收发完全正常但网页就是打不开电脑明明显示“已连接 Wi-Fi”局域网里的打印机却毫无反应或者两台电脑坐在同一个办公室里却互相访问不了。这些问题看着五花八门最后排查下来大多指向几个最基础的概念——IP 地址、子网掩码、网关、DNS。很多人一听到这些词就想绕道走觉得这是网络工程师的专属知识。我的判断是这些概念并不是五件孤立的事它们本来就是一条完整链路。从你敲下网址到网页显示出来数据包依次经历了“找人—划界—出门—翻译”四个环节。只要把这条路串起来你会发现计算机网络的基础知识其实非常具体一点都不抽象。这篇文章面向零基础读者也适合已经接触过网络、但始终没有形成体系的人。读完你会理解每个概念到底解决什么问题、它们之间如何协作并且能直接用系统命令和几个 Python 小工具验证自己的网络配置。这也是你以后排查网络问题时可以反复翻看的一份速查手册。1. 五个概念其实是一套“寻路系统”在正式讲概念之前先用一个生活化的场景把这串名词串起来。想象你要去一座大型产业园区送一份文件园区里每栋楼都有一个门牌号这就是IP 地址。园区被划分为 A 区、B 区、C 区每个区有自己的编号规则这就是子网划分。你需要知道某一栋楼到底在 A 区还是 B 区判断“在不在同一个片区”这就是子网掩码。园区每片区域都有一个大门你要去别的区域必须先从这个大门出去这就是网关。你不知道具体门牌号只记得“材料楼”这个名字于是先在通讯录里查一查这就是DNS域名系统。这两个概念解决的是同一个大问题在网络里数据包如何找到目标设备。IP 地址解决“谁在哪里”子网掩码解决“这个目标在不在我所在的区域内”网关解决“不在本地时从哪个口出去”DNS 解决“怎么把人类容易记的名字翻译成机器认识的数字”。所以它们总是一起出现因为一次网络请求几乎同时用到了这四个环节目标地址IP、是否同区域子网掩码、出口网关、域名翻译DNS。如果你逐个背定义会觉得每个概念都懂但一遇到实际问题就不知道从哪下手如果你先理解这条链路再回到单个概念一切都会顺很多。2. 从输入网址到打开页面数据包是怎么走的我们先完整走一遍每个人每天都在经历的过程在浏览器里输入一个网址按下回车页面显示出来。这中间发生了什么我们做一个简化但足够准确的描述浏览器拿到网址www.example.com但机器不懂名字只认数字所以第一步先问 DNS“这个域名对应的 IP 地址是多少”DNS 返回一个类似192.0.2.10的地址。操作系统拿到这个目标 IP 之后会用本机的 IP 地址和子网掩码做一次“与运算”判断目标 IP 和本机是否在同一个子网里。如果在同一个子网数据包直接在当前网络里找目标设备如果不在同一个子网本机就把这个包交给默认网关——通常是你家里的路由器或公司的交换机。网关收到包后再根据路由表决定把包转发给下一跳。数据包在网络里经过一跳又一跳的路由器转发最终到达目标服务器。服务器处理请求把网页数据原路返回给你浏览器渲染出页面。整个过程里每一个环节都对应着一个概念步骤用到的概念负责的事情域名翻译成 IPDNS把名字变成数字地址判断目标是否在本地子网掩码决定数据包走本地还是走出口不在本地时交给网关网关提供离开当前网络的出口用 IP 找到目标设备IP 地址标识设备身份路由器逐跳转发路由网关的延伸把数据包送给远端目标这个流程解释了为什么很多人说“上网慢”就是带宽问题其实并不一定。带宽决定的是水管粗细而上面这套“寻路系统”决定的是数据包能不能顺利到达目的地。你把 1000M 宽带拉到家里如果 DNS 配置错误网页照样打不开如果网关配置错误局域网内可能一切正常但外网完全不通。这就是先建立链路思维的价值排错时不是乱猜而是沿着数据包的路径一段一段检查。3. IP地址设备的门牌号3.1 32 位二进制与点分十进制IP 地址是网络层用来标识一台设备的逻辑地址。目前最常用的还是 IPv4它由 32 位二进制数字组成。32 位太长人类不方便阅读于是按照 8 位一组分成四组每组转换为十进制再用点分隔这就是“点分十进制”。例如11000000.10101000.00000001.00001010转换为十进制就是192.168.1.10每一组的范围是 0 到 255所以192.168.1.10是一个合法的 IPv4 地址。32 位二进制总共能表示大约 43 亿个地址在互联网爆发的今天这个数量显然不够用所以又推出了 128 位的 IPv6。不过当前绝大多数局域网、设备配置和面试题目仍然围绕 IPv4 展开本文以 IPv4 为主。3.2 公网 IP 与私网 IPIP 地址不能随便乱用它分为公网地址和私网地址。公网地址在全球范围内唯一可以在互联网上直接路由。家宽用户、企业上网真正对外通信时使用的其实是运营商分配的公网 IP。私网地址只能在局域网内部使用不能直接在互联网上传播。IANA互联网数字分配机构专门预留了三段私网地址网段地址范围默认掩码A 类私网10.0.0.0 ~ 10.255.255.255255.0.0.0B 类私网172.16.0.0 ~ 172.31.255.255255.255.0.0C 类私网192.168.0.0 ~ 192.168.255.255255.255.255.0你现在打开电脑看自己的 IP大概率是192.168.x.x这就是一个 C 类私网地址由家里的路由器分配给你的设备。私网地址不能直接上网需要由路由器通过 NAT网络地址转换把内网地址映射成一个公网地址才能访问互联网。这也是为什么路由器几乎成了每家每户必备设备。3.3 回环地址 127.0.0.1还有一个特殊的地址值得记住127.0.0.1它表示“本机”。你在电脑上执行ping 127.0.0.1其实就是测试本机自身协议栈是否正常。如果这个地址都不通说明系统的 TCP/IP 协议栈出了问题这是排查网络时最先要确认的一步。3.4 查看自己电脑的 IP 地址Windows 和 Linux 分别用不同命令查看 IP 配置# Windows ipconfig /all # Linux ip addr show # 老一点的系统可以用 ifconfig执行后你会看到本机的 IPv4 地址、子网掩码、默认网关和 DNS 服务器信息。这些东西平时不需要记但在排查“为什么连不上网络”时它们是第一手线索。3.5 与 IP 地址相关的常见问题IP 冲突如果两台设备被分配了相同的 IP就会发生 IP 地址冲突表现为一台设备突然掉线、另一台频繁提示“IP 地址冲突”。在家庭网络里路由器通过 DHCP 自动分配地址通常不会冲突但如果你手动设置了静态 IP又不小心把两台设备设成了同一个地址就容易踩坑。规划静态 IP 时一定要记录每一台设备的地址避免重复。4. 子网掩码与子网划分分清“本地”和“外地”4.1 子网掩码为什么存在一台设备拿到目标 IP 后第一个要回答的问题是目标到底在不在我这个网络里如果没有子网掩码主机无法判断该把数据包直接发给对方还是交给网关转发。子网掩码的作用就是“划界”它告诉设备IP 地址的哪一部分代表网络哪一部分代表这台具体的主机。子网掩码也是一串 32 位二进制数字特点是连续的 1 后面跟着连续的 0。例如255.255.255.0转为二进制是11111111.11111111.11111111.00000000前 24 位是 1表示 IP 地址的前 24 位是网络位后 8 位是 0表示后 8 位是主机位。因此这种掩码也可以用简写/24表示这就是 CIDR无类域间路由写法。比如192.168.1.10/24意思就是 IP 是192.168.1.10掩码是255.255.255.0。4.2 与运算判断是否同网段的核心操作真正判断两个 IP 是否在同一个子网靠的是“与运算”。规则很简单1 与 1 得 1其余情况都是 0。计算时把 IP 和子网掩码转成二进制逐位做与运算得到的结果就是网络地址。同一个网络地址就说明在同一个子网。IP地址 192.168.1.10 - 11000000.10101000.00000001.00001010 子网掩码255.255.255.0 - 11111111.11111111.11111111.00000000 -------------------------------------------------------------------------------- 与运算 11000000.10101000.00000001.00000000 即网络地址192.168.1.0再看一个例子目标 IP 如果是192.168.2.20同样做与运算得到192.168.2.0和本机网络地址192.168.1.0不一样所以本机就知道这个目标不在本地需要交给网关。子网掩码变更会影响“本地”的范围。如果两个设备 IP 是192.168.1.10和192.168.1.20掩码是255.255.255.0它们在同一个子网可以直接通信如果掩码改成255.255.255.240相当于把网段切得更细它们很可能就不在同一个子网里通信就必须依赖网关转发。4.3 常见掩码与会话含义掩码CIDR 写法可用 IP 数典型用途255.0.0.0/8约 1677 万台A 类大型网络255.255.0.0/16约 6.5 万台B 类中型网络255.255.255.0/24254 台C 类小型局域网最常用255.255.255.128/25126 台部门级子网255.255.255.192/2662 台小型子网注意可用 IP 数要减掉 2因为每个网段里第一个地址是网络地址最后一个地址是广播地址不能分配给普通设备使用。4.4 子网划分实操把一个 C 类网段拆成四个部门子网划分是网络工程师的基本功它的本质是“借用主机位作为子网位”。以192.168.1.0/24为例要把它分成 4 个子网需要借用 2 个主机位子网掩码变成 /26也就是255.255.255.192。划出来的 4 个子网如下子网网络地址可用主机范围广播地址子网 1192.168.1.0/26192.168.1.1 ~ 192.168.1.62192.168.1.63子网 2192.168.1.64/26192.168.1.65 ~ 192.168.1.126192.168.1.127子网 3192.168.1.128/26192.168.1.129 ~ 192.168.1.190192.168.1.191子网 4192.168.1.192/26192.168.1.193 ~ 192.168.1.254192.168.1.255实际部署时可以把四个子网分别分配给行政部、财务部、技术部和访客网络。不同子网之间的通信需要交给网关通常是路由器或三层交换机完成。这样做的直接好处是减小广播域、简化故障隔离、方便做权限管理。如果你进入一家公司看到 IP 规划是“按部门分段”的背后就是这套子网划分逻辑。4.5 VLSM变长子网划分传统分类把网络固定切成几块但在真实场景里有的部门需要 100 个地址有的只需要 10 个固定切分会造成浪费。VLSM 允许在一个主网络里使用不同的子网掩码根据实际主机数量灵活分配。比如同一个/24网段里你可以划出一个/25给大部门再划出两个/27给小组。这正是许多企业内网的实际做法也是 CCNA 等网络认证的重要考点。理解它的前提是先掌握上面固定子网划分的原理。5. 网关数据出门的第一扇门5.1 默认网关是什么网关不是一台设备的名字而是一个网络角色。它负责连接两个不同的网络让数据从当前网段进入另一个网段。对我们普通设备来说默认网关就是“我访问外部网络时第一个把数据包接走的那台设备”。在一个家庭网络里默认网关通常就是路由器的 LAN 口 IP常见的是192.168.1.1或192.168.0.1。在公司网络里网关可能是三层交换机的 VLAN 接口地址或防火墙接口地址。关键一点默认网关的 IP 必须和你的设备在同一个子网里。比如你的设备是192.168.1.10/24网关设置成192.168.1.1是正确的如果设置成192.168.2.1设备根本无法通过这个网关上网因为网关不在同一个局域网里你的设备连发都发不出去。5.2 网关配置错误的典型表现网关配置错误时最典型的现象是局域网互访正常但无法访问外网。为什么因为你的设备在局域网内找到目标时并不需要网关但访问外网时所有包都要交给默认网关。如果网关不存在、不可达或者没有配置 NAT 和路由策略数据包就会“出了门就没下文”。排查时可以这样分层验证# 1. 先 ping 默认网关确认本机到网关之间通不通 ping 192.168.1.1 # 2. 再 ping 一个公网 IP确认路由和出口链路通不通 ping 223.5.5.5如果第一步通、第二步不通问题大概率在网关或运营商出口链路如果第一步都不通问题在本机到网关之间的物理连接、IP 配置或者网关设备本身。5.3 ARP网关背后还有一个解析环节数据包在局域网里是依靠 MAC 地址进行二层转发的而 IP 地址是三层逻辑地址。当你的设备想把包发给网关时它还需要知道网关 IP 对应的 MAC 地址这个查询过程由 ARP 协议完成。查看本机的 ARP 表可以看到 IP 地址和 MAC 地址的对应关系# Windows arp -a # Linux ip neigh show如果你的设备无法解析网关的 MAC 地址数据包同样发不出去。这种情况通常发生在网线物理不通、无线信号异常或交换机端口被隔离时。5.4 为什么有了网关还不够还需要路由网关只是你出门的第一扇门数据包真正到达目标还需要沿途所有路由器根据路由表决定方向。你的默认网关把包转发给运营商的一台路由器那台路由器再把包转发给下一台经过一跳一跳的接力最终到达目标服务器。所以“网关”和“路由”可以这样理解网关是策略决定数据从哪个出口出去路由是路径决定数据在出口之后往哪个方向前进。普通用户不需要手动配置路由表但网络工程师需要。这也是为什么企业网络里会有核心交换机、出口路由器、防火墙这些设备一起工作。6. DNS互联网的通讯录6.1 没有 DNS 的世界如果没有 DNS你访问一个网站时必须在浏览器里输入一串数字比如93.184.216.34。数字又长又难记换个机房 IP 又变了这种体验完全无法接受。DNS 做的事情就是“把域名翻译成 IP 地址”。它是互联网的通讯录也是绝大多数人每天都在使用、却几乎感知不到的基础设施。6.2 DNS 解析的完整流程当你在浏览器里输入www.example.com并回车时解析过程大致如下浏览器先查看自己内存中的 DNS 缓存有没有这个域名的记录。如果没有查看操作系统的 hosts 文件这个文件里可以手动指定域名和 IP 的对应关系。如果 hosts 里也没有请求发给系统配置的 DNS 服务器通常是路由器或运营商下发的 DNS。如果这台 DNS 服务器仍不知道答案它会代替你向上级服务器查询最终从权威服务器拿到结果。结果返回后系统会把这条记录缓存起来下次再访问同一个域名就不用重复查询。整个过程中还会有缓存、超时、递归查询、迭代查询等细节但对于排错来说理解“本地缓存—hosts—本地 DNS—权威 DNS”这个顺序就足够了。有一类常见的网页打不开的故障就发生在其中某一层缓存或服务器异常上。6.3 常见 DNS 故障与公共 DNS最经典的 DNS 故障表现是能登录微信、能传输文件但网页总是打不开。原因是微信等应用直接使用 IP 或专有接入方式不依赖域名解析而浏览器访问网页需要先解析域名。如果 DNS 解析失败浏览器就找不到网站地址。遇到这种问题一个快速验证方法是手动把 DNS 改成公共 DNS。常见公共 DNS 如下DNS 服务商IPv4 地址备注阿里 DNS223.5.5.5国内访问速度较快腾讯 DNS119.29.29.29国内访问速度较快114DNS114.114.114.114国内老牌公共 DNS8.8.8.88.8.8.8国际通用公共 DNS在绝大多数路由器或系统设置里把 DNS 改成这几个地址之一都有机会解决“网页打不开但应用正常”的问题。如果你发现访问正规网站被跳转到陌生页面或者证书报错异常也要优先检查设备的 DNS 是否被修改、路由器管理密码是否泄露并及时修改为可信 DNS。这是防御性的安全检查需要自己设备或网络的管理权限。6.4 自己动手解析域名Windows 和 Linux 都提供域名解析命令# Windows nslookup www.example.com # Linux dig www.example.com执行nslookup后你会看到 DNS 服务器地址和域名对应的 IP。如果命令超时或返回空结果基本可以确认 DNS 链路有问题。7. 实操用命令和工具验证整套网络7.1 网络排错命令速查表以下命令是排查网络问题最常用的几组命令作用适用系统ipconfig /all查看完整 IP 配置Windowsip addr show查看完整 IP 配置Linuxping 127.0.0.1测试本机协议栈通用ping 网关IP测试到网关的链路通用ping 公网IP测试外网路由和出口通用tracert 目标IP查看沿途路由节点Windowstraceroute 目标IP查看沿途路由节点Linuxnslookup 域名测试 DNS 解析Windows / Linuxroute print查看路由表Windowsip route show查看路由表Linux排错时最有效的思路是沿着“本机—网关—外网—DNS”这条链路逐段测试而不是随机乱试。7.2 看懂一份 ipconfig 输出在 Windows 上执行ipconfig /all输出里最关键的几项是以太网适配器 以太网: IPv4 地址 . . . . . . . . . . . . : 192.168.1.10 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关 . . . . . . . . . . . . : 192.168.1.1 DNS 服务器 . . . . . . . . . . . : 223.5.5.5对照本文内容你就能读出这组信息的含义这台设备的 IP 是192.168.1.10属于192.168.1.0/24这个子网它要访问外部网络需要经过默认网关192.168.1.1域名解析使用223.5.5.5。如果默认网关一栏为空说明这台设备没有配置网关外网基本不通如果DNS 服务器异常网页基本打不开。7.3 用 ping 定位问题分支一个简单的判断流程ping 127.0.0.1不通说明本机协议栈或网卡驱动异常。ping 127.0.0.1通但ping 网关IP不通说明本机到局域网出口之间有问题可能是物理链路、IP 配置或网关设备故障。ping 网关IP通但ping 公网IP不通说明局域网本身正常问题在路由出口、NAT 或运营商链路。ping 公网IP通但访问网页仍失败优先查 DNS。这个分支判断方法看起来简单却是真正能落地的排错方法论。7.4 Python 小工具输入 IP 和掩码直接计算网段信息除了命令行Python 的ipaddress模块可以帮你快速完成网段计算。下面的脚本适合放在工位电脑上随时计算网段信息# 文件路径network_tool.py # 用法修改 network_info() 的两个参数运行即可 import ipaddress def network_info(ip_str, mask_str): # 支持 192.168.1.100/255.255.255.0 或 192.168.1.100/24 这种写法 iface ipaddress.IPv4Interface(f{ip_str}/{mask_str}) net iface.network print(fIP 地址{iface.ip}) print(f子网掩码{iface.netmask}) print(fCIDR 前缀/{net.prefixlen}) print(f网络地址{net.network_address}) print(f广播地址{net.broadcast_address}) print(f可用主机数{net.num_addresses - 2}) print(f可用范围{net.network_address 1} ~ {net.broadcast_address - 1}) if __name__ __main__: network_info(192.168.1.100, 255.255.255.0)运行结果IP 地址192.168.1.100 子网掩码255.255.255.0 CIDR 前缀/24 网络地址192.168.1.0 广播地址192.168.1.255 可用主机数254 可用范围192.168.1.1 ~ 192.168.1.254这个脚本最大的用处是当你拿到一个不熟悉的网段或者要规划静态 IP 时不用手算直接跑一下就知道边界地址和可用范围。7.5 Python 小工具判断两台设备是否在同一个网段另一个高频需求是判断两台设备是不是同网段尤其是排查跨网段通信问题时。下面这个函数手写“与运算”有助于你理解原理# 文件路径same_subnet.py def same_subnet(ip1, ip2, mask): # 把点分十进制转换为二进制字符串 def to_bits(ip): return .join(f{int(part):08b} for part in ip.split(.)) mask_bits to_bits(mask) net1 int(to_bits(ip1), 2) int(mask_bits, 2) net2 int(to_bits(ip2), 2) int(mask_bits, 2) return net1 net2 print(same_subnet(192.168.1.10, 192.168.1.200, 255.255.255.0)) # True print(same_subnet(192.168.1.10, 192.168.2.10, 255.255.255.0)) # False print(same_subnet(10.0.0.1, 10.0.0.88, 255.0.0.0)) # True把这段代码跑一遍你会发现子网掩码如何影响“是否同网段”的结论。这也是理论落到实操的一个很好的切入点。8. 常见问题与排查思路问题现象可能原因排查方式解决方案能登录微信但网页打不开DNS 配置异常或被修改nslookup www.example.com看是否能解析把 DNS 改为 223.5.5.5 或 114.114.114.114局域网内互访正常但无法访问外网默认网关错误、NAT/路由配置不当ipconfig查看默认网关ping 网关IP修正网关地址确保网关可达且已配置 NATWindows 默认网关一直被清空多网卡配置冲突、DHCP 与静态配置冲突、安全软件干预查看网卡属性中的 TCP/IPv4 设置统一使用 DHCP 或固定静态配置关闭第三方网络优化工具Linux 修改 DNS 后重启网络被还原systemd-resolved 或 DHCP 客户端接管了 DNS查看resolv.conf、检查 NetworkManager 配置使用nmcli永久修改 DNS或按发行版文档关闭托管电脑提示 IP 地址冲突手动静态 IP 与 DHCP 分配重叠查看arp -a确认重复地址重新规划静态 IP或改为 DHCP 自动获取摄像头/打印机改 IP 后找不到设备设备默认 IP 与当前电脑不在同一网段查看设备背面标签的默认 IP 和登录方式先把电脑网卡临时改为同网段的静态 IP再访问设备后台调整虚拟机连不上网络NAT/桥接模式配置错误或虚拟网卡未启用查看虚拟机网络适配器设置、重启虚拟网卡按需选择桥接模式或 NAT 模式确认物理网卡已连通一张网卡需要配置两个不同网段的 IP网络环境有多个网段需要同时访问在高级 TCP/IP 设置中添加辅助 IP在网卡属性中依次添加注意网关只需要一个默认网关每条问题都有一个共同点就是需要先确认“现象在哪一层出现”。如果还没有建立链路的意识看到这些问题会感觉毫无头绪一旦知道“本机—网关—外网—DNS”这条链路每个问题都能快速定位到大致的环节。9. 最佳实践与网络规划建议9.1 家庭网络规划家庭网络规模不大一个192.168.1.0/24网段通常足够。建议把路由器 LAN 口 IP 放在一个容易记忆的地址上比如192.168.1.1并把 DHCP 分配范围控制在192.168.1.100 ~ 192.168.1.200这样可以为需要固定 IP 的设备预留前 100 个地址。打印机、NAS、摄像头等设备建议设置静态 IP避免 DHCP 重新分配后你找不到它们。家庭网络的核心设备是路由器。路由器的管理密码不要保持默认DNS 设置尽量使用可信的公共 DNS 或运营商 DNS。如果发现上网异常先重启光猫和路由器再按上一章的链路排查方法逐段确认。9.2 办公室网络按部门划分子网办公室网络比家庭网络复杂建议按部门或功能划分不同的 VLAN/子网而不是把所有设备塞在同一个网段里。划分好处包括广播域变小、故障影响范围可控、不同部门可以设置不同的访问权限、也方便统计流量。规划时可以先估算每个部门的最大终端数量再决定子网掩码。比如技术部有 30 台设备用/27可用 30 台正好销售部有 80 台设备用/25可用 126 台更实际。这同样是子网划分知识的实际应用。9.3 静态 IP 规划表模板如果你需要做设备级的静态 IP 规划建议建立一张表格并长期维护设备IP 地址子网掩码默认网关DNS备注办公室路由器192.168.10.1255.255.255.0192.168.10.1