IP地址与子网掩码详解:从原理到Windows/Linux配置实战
1. 先搞懂一张网卡的全貌IP地址到底在表达什么很多人一听到“IP地址”和“子网掩码”第一反应是“哦我知道就是网络配置里那两栏数字”。但真正被问到“为什么要填子网掩码”“填错了会怎样”的时候能说清楚的人其实不多。我在排查网络问题的这些年里见过太多因为掩码配错导致“明明IP正确却死活不通”的案例也见过不少人把A类、B类、C类地址背得滚瓜烂熟真到划分网段时又乱了套。这篇文章不是教科书我尽量按实际干活的角度把IP地址和子网掩码从“概念”到“怎么配”整个链路梳理一遍。你不需要有很深的基础只要能打开电脑的命令行跟着一步步来就能搞清楚自己所在的网络到底是什么结构以及遇到不通的情况时到底该查哪里。先说最核心的一句话IP地址描述的是“这台设备在网络里的门牌号”子网掩码描述的是“这个门牌号里哪些数字是属于同一个小区的”。没有子网掩码IP地址就只是一个孤零零的数字两台设备之间根本无法判断彼此是不是“住在一个小区里”也就不知道该直接打招呼还是该找门卫网关转达。IP地址目前最常用的是IPv4也就是我们天天见的“192.168.1.10”这种四段式写法。每一段是0到255之间的数字本质上是一个32位的二进制数只不过为了让人看得懂才拆成四组“十进制”。至于IPv6那种长串的十六进制写法目前大部分内网环境还涉及不到但概念逻辑是相通的。我不会在这里堆太多二进制换算因为实际配置中你几乎用不到手算但有一个操作例外——计算子网掩码和网段边界的时候你必须懂一点二进制否则就是在背公式而不是真正理解网络。理解IP地址还有一个很关键的分界点网络位和主机位。网络位决定了这个地址属于哪个“小区”主机位决定了它是小区里的哪一栋楼。至于哪些位是网络位、哪些位是主机位就完全由子网掩码来决定。你可以把子网掩码理解成一把尺子尺子上刻着“前多少位是网络号”的标记设备只要拿着这把尺子往IP地址上一比立刻就能判断目标和自己是不是同一个网段。很多新手容易困惑的一个点是IP地址分类到底是干什么用的A类从1.0.0.0到126.255.255.255B类从128.0.0.0到191.255.255.255C类从192.0.0.0到223.255.255.255。当初这样划分是为了适应早期大型网络、中型网络和微小网络的不同规模需求。A类地址的主机位特别大理论上一个网段能容纳上亿台设备但现在谁也不会真的这么用基本都是通过子网划分把它切成无数个小段。所以今天的实际意义上分类法更多是历史遗留概念真正决定网段大小的是子网掩码而不是IP地址的“类”。还有个重要概念是公网地址和内网地址。公网地址是全球唯一的需要向运营商申请内网地址也叫私有地址是在本地网络中自由使用的三段保留空间10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。绝大多数人家里的路由器用的就是192.168.x.x。理解私有地址段的好处在于当你需要自己搭建一个小型局域网时你不会傻乎乎地去用8.8.8.8这种公网地址来做内网规划那样一旦设备想访问外网就会冲突。设备接入网络之后要通信就必须有一个IP地址和一张子网掩码。在这基础上还要配网关和DNS。网关是你访问其他网段时的“门卫”所有出小区的流量都要先交给门卫转送DNS则负责把“www.example.com”这种域名翻译成IP地址。之前有人问我为什么配置里没有子网掩码也能上网其实不是没有而是路由器或者DHCP服务器已经通过租约把掩码、网关、DNS一起下发给设备了你没亲手填不代表它不存在。2. 子网掩码的原理与计算方法把二进制揉碎了讲透2.1 子网掩码为什么不能乱填子网掩码长得和IP地址很像比如255.255.255.0但它不是地址而是一串用来做“按位与”运算的二进制模板。按位与的规则很简单1和1相遇得1其他情况都得0。子网掩码里所有1对应的IP地址位就是网络位所有0对应的位就是主机位。举个例子IP地址192.168.1.10和子网掩码255.255.255.0做按位与结果就是192.168.1.0。这个结果叫作“网络地址”它描述的正是“这一户所在的小区名称”。再拿另一台设备192.168.1.88套同样的掩码得到的还是192.168.1.0。说明两台设备在同一个小区的范围内也就是同一个网段它们可以直接通信不需要经过网关。如果两台设备的掩码不一致比如一台是255.255.255.0另一台是255.255.255.128那它们算出的小区可能就不同了。意思就是说你在配置网络时同一个物理局域网里的设备最好使用相同的子网掩码和相同的网段规划否则即便连着同一个交换机数据报文也会因为“判断不在同一小区”而被丢给网关网关如果没配好对应路由通信自然失败。很多人看到255.255.255.0就以为这不是很简单的常量吗其实子网掩码完全可以不是255结尾。255.255.255.128、255.255.255.192、255.255.252.0都是合法掩码。掩码的二进制里必须是连续的1后面跟连续的0不能出现1和0穿插的情况比如255.255.0.255就是非法掩码配置系统会直接拒绝。2.2 CIDR斜杠记法与快速换算现在配置系统里更常见的是CIDR斜杠记法直接写“192.168.1.10/24”意思就是子网掩码前24位是1对应十进制就是255.255.255.0。这种写法省事得多尤其在Linux命令行、路由配置和文档里你几乎看不到完整的255.255.255.0都是直接写/24。常见的几个斜杠值要能一眼认出来/8 对应 255.0.0.0A类地址的原始掩码超大网段能容纳约1677万台设备。/16 对应 255.255.0.0B类地址的原始掩码能容纳约6.5万台设备。/24 对应 255.255.255.0C类地址的典型掩码能容纳254台可用设备。/25 对应 255.255.255.128把一个C类段切成两半每段126台可用设备。/26 对应 255.255.255.192切成四段每段62台可用设备。/27 对应 255.255.255.224切成八段每段30台可用设备。/30 对应 255.255.255.252只有2个可用主机地址通常用于路由器之间的点对点链路。/32 对应 255.255.255.255代表单个主机常用于路由策略里精确匹配某一台设备。如果你不想背就记住一个规律每减少一个子网掩码位网络里的可用主机数量就翻一倍。25位时是126台24位时就是254台23位时就是510台。反过来每多一个掩码位网段就被切得更小数量翻倍每个段的容量减半。只要记住这一条实际规划时你就能快速判断需要多大的掩码。2.3 手把手算一次子网划分假设公司申请了一个/24的网段也就是192.168.10.0/24现在要分成4个独立的子网分别给四个部门用。我们需要从主机位借2位当子网位因为2的2次方等于4。原来的网络位是24位加上2位就是26位所以新掩码是/26十进制255.255.255.192。每个子网的网络地址分别是多少这里要看被借走的那2位的组合00、01、10、11。网络地址依次是192.168.10.0、192.168.10.64、192.168.10.128、192.168.10.192。每段大小是64个地址扣除一个网络地址和一个广播地址实际可用主机地址是62个。在实际配置中设定PC的IP地址192.168.10.66、掩码255.255.255.192、网关192.168.10.65就是属于第二个子网的合法配置。如果不小心把掩码填成255.255.255.0或者把别的部门的IP填进来就会发生跨网段混乱。很多运维事故就是这么来的线接对了VLAN配对了结果PC端掩码填错所有访问时通时不通。还有一种操作叫“子网掩码取反”在配置ACL、路由策略或者计算广播地址时用得上。取反就是把掩码里的255换成0、0换成255比如255.255.255.0取反得到0.0.0.255255.255.255.192取反得到0.0.0.63。这个取反后的值也叫通配符掩码在思科和华为设备的ACL配置里非常常见。它的意义是“匹配时只看网络位不关心主机位的具体取值”。2.4 广播地址和网络地址的特殊性每个网段里有两个地址不能分配给设备使用一个是网络地址主机位全为0一个是广播地址主机位全为1。网络地址代表整个网段本身广播地址代表发给这个网段里所有设备的特殊地址。比如192.168.10.0/24这个网段192.168.10.255就是广播地址向它发数据同网段所有设备都能收到。为什么不能把这两个地址分配给电脑因为设备会混淆“我是在跟某一个特定设备通信”还是“我在跟整个网段通信”。DHCP服务器在分配地址池时也会自动排除这两个地址但如果你手工配置静态地址一定要避开这两个位置。曾经有人把IP设成了192.168.1.255结果局域网里一会儿这一台掉线、一会儿那一台报冲突排查了半天才发现是广播地址被占用了。3. 配置前的网络规划不要拿到设备就乱填IP3.1 先画拓扑再定网段配置IP地址最忌讳的就是“拿到设备就直接填数字”。我自己的习惯是不管项目多小都先理清三件事整个网络里有几个网段、每个网段的用途是什么、哪些设备需要用固定IP。哪怕只是在家里搭一个三台设备的测试环境我也建议你先在纸上画个拓扑出来不然等设备多了IP冲突和路由混乱是迟早的事。规划的具体步骤是这样的确定主网段比如192.168.50.0/24。把特殊设备打印机、NAS、服务器、摄像头固定地址放在靠前的部分比如192.168.50.2到192.168.50.50。把DHCP动态分配池放到后面比如192.168.50.100到192.168.50.200。网关固定取一个容易记的地址通常用192.168.50.1或者192.168.50.254不要出现在地址池里。如果网络规模大就按部门或功能划分子网比如办公区用192.168.10.0/24监控区用192.168.20.0/24服务器区用192.168.30.0/24。这一段的核心是IP地址规划不是随缘分配的而是有意识地把网络分成清晰的区域后续排查问题时能一眼看出某个IP属于什么角色。3.2 如何根据设备数量反推掩码有人问如果我有50台电脑要放在同一个网段用哪个掩码最合适50台设备加上网关1台再加上可能扩容的冗余我一般按80个地址来规划。需要满足主机的位数是7位因为2的7次方是128减去网络地址和广播地址可用地址是126个掩码就是/25255.255.255.128。如果你用一个/24当然也能容纳50台设备但浪费了更大的地址空间尤其在多VLAN环境下可能造成地址不够分。再看另一种情况一个大型项目里需要600个IP地址。2的9次方是512不够2的10次方是1024可用地址1022个所以掩码是/22255.255.252.0。从/24变成/22意味着把4个C类段合并成一个大段网络地址会变成类似192.168.4.0/22这样跨越多个第三段范围的写法。很多人第一次看到192.168.5.6/22会懵觉得这不是一个“非法地址”吗其实它完全合法因为这个网段的范围是从192.168.4.1到192.168.7.254包含了4个256地址的块。所以当你在配置一个大网段时不要只认第三段数字是不是255关键还要看掩码。建议养成用CIDR斜杠记法写规划文档的习惯比写255.255.252.0这种形式更直观也更不容易算错网段边界。3.3 网关和DNS的分配原则网关地址在一个网段里只能有一个除非做了冗余网关比如VRRP场景它不一定是.1但一定要固定且好记。把网关放在可用地址的第一个或最后一个是两种主流做法。比如/24网段要么用192.168.10.1要么用192.168.10.254。关键是全网络保持一致别在同一个网段里一部分设备的网关指向.1另一部分指向.254那会导致部分设备访问外网时路由不一致。DNS的配置分两种情况如果网络里有内部域名解析需求首要填写内部DNS服务器地址然后才是公共DNS如果没有内部DNS直接用公共DNS即可比如223.5.5.5或119.29.29.29。之前遇到一个案例某台电脑能ping通网关和内网IP但打不开网页后来发现DNS被配成了0.0.0.0于是域名解析全部失败。这种问题往往比IP地址配置问题更隐蔽因为排查时第一反应会去检查网络通断忽略了解析的问题。3.4 静态地址还是DHCP动态分配对于服务器、打印机、网络摄像头和网关设备我建议一律用静态IP或者用DHCP保留机制绑定MAC地址。原因是这些设备需要被其他设备稳定访问IP一变就出大事。对于普通电脑、手机、临时测试设备用DHCP动态分配就够省心又不会冲突。DHCP保留机制是在路由器上把某个MAC地址绑定到固定IP本质上和静态IP效果一样但配置统一、维护方便。如果你的网络中有几十台固定设备强烈建议用DHCP保留而不是在每台设备上手工敲静态地址。这样将来要改网段只需要改DHCP服务器上的地址池和保留表客户端重启网络就能自动拿到新地址不用一台一台去改。4. Windows系统下的IP地址配置实操4.1 图形界面配置步骤Windows的图形界面配置是大多数人最先接触到的。右键点击任务栏的网络图标选择“网络和Internet设置”点击“更改适配器选项”找到正在使用的网卡以太网或WLAN右键“属性”双击“Internet协议版本4TCP/IPv4”然后就可以填写IP地址、子网掩码、默认网关和DNS服务器了。这里有几个细节容易被忽视。第一如果你用的是WLAN无线网卡很多公共网络用DHCP自动获取就行没必要手工填IP填了反而可能连不上热点。第二Windows系统里“自动获得IP地址”和“使用下面的IP地址”是互斥的如果你之前手工填过又切回自动模式但DNS服务器还是手工的就可能出现“能上网但解析慢”的情况。第三改完配置后最好在命令行里执行一次“ipconfig /release”和“ipconfig /renew”确保网卡重新获取配置否则旧配置可能还留在系统里。配置完成后验证是否生效打开CMD执行“ipconfig /all”。重点看IPv4地址、子网掩码、默认网关和DNS服务器这几行。如果IP地址是169.254.x.x说明没有获取到DHCP地址是典型的“没找到DHCP服务器”或“网线未插好”的症状。4.2 PowerShell命令行快速配置如果你管理多台Windows机器用命令行配置效率更高。PowerShell里设置静态IP的完整命令如下New-NetIPAddress -InterfaceAlias 以太网 -IPAddress 192.168.10.66 -PrefixLength 26 -DefaultGateway 192.168.10.65 Set-DnsClientServerAddress -InterfaceAlias 以太网 -ServerAddresses 223.5.5.5,119.29.29.29恢复到DHCP模式用Set-NetIPInterface -InterfaceAlias 以太网 -Dhcp Enabled Set-DnsClientServerAddress -InterfaceAlias 以太网 -ResetServerAddresses命令行配置的好处是脚本化几十台机器可以循环执行还能避免图形界面重复点击带来的低级错误。这里有一个坑要提示一下New-NetIPAddress如果网卡原本已有静态IP运行时可能报错提示地址已存在。稳妥的做法是先执行“Remove-NetIPAddress -InterfaceAlias 以太网 -Confirm:$false”清掉旧地址再执行新配置。4.3 一块网卡配置多个IP地址有些场景下需要在一块物理网卡上配置多个IP地址比如既要访问一个旧的办公网段又要访问一个新上线的业务网段。Windows下有两种办法图形界面里点击IPv4属性界面的“高级”按钮可以添加多个IP地址和网关PowerShell里连续执行多次New-NetIPAddress每次指定不同的IP即可。需要注意多个网关里系统只会使用跃点最低的那条默认路由如果两个网段都需要出外网可能会产生路由冲突。解决办法是手动添加静态路由比如route add 10.1.0.0 mask 255.255.0.0 192.168.10.254这样指定访问10.1.x.x网段时走特定网关其余流量还走默认网关。4.4 Windows常见故障ping不通与防火墙Windows 11系统里遇到过“防火墙已关闭但IP还是ping不通”的情况这种一般不是防火墙软件的事而是“文件和打印机共享”的回显请求被系统服务拦截了。检查办法是打开“控制面板”里的“Windows Defender防火墙”点击“允许应用或功能通过Windows Defender防火墙”找到“文件和打印机共享”同时勾选“专用”和“公用”两个复选框。如果当时系统已经通过组策略关闭了防火墙这个选项仍然独立存在。还有一种情况是ping能通但是用IP地址访问共享文件夹时打不开。这种多半是网卡属性里“Microsoft网络的文件和打印机共享”协议被勾掉了或者SMB服务没启动。在网卡属性里重新勾上再检查服务列表里的Server服务是否处于运行状态基本就能解决。5. Linux系统下的IP地址配置全指南5.1 Ubuntu和Debian系netplan配置现在的Ubuntu系统里配置网卡用的是netplan配置文件通常在“/etc/netplan/”目录下文件名类似“01-network-manager-all.yaml”或“50-cloud-init.yaml”。YAML格式对缩进敏感改的时候要特别小心空格少一个空格整个配置就会加载失败。静态IP的配置写法是network: version: 2 ethernets: eth0: addresses: - 192.168.10.66/26 routes: - to: default via: 192.168.10.65 nameservers: addresses: - 223.5.5.5 - 119.29.29.29改完执行“sudo netplan apply”让配置生效然后用“ip addr show eth0”确认地址已经绑定。netplan也支持给同一块网卡加多个IP地址写法是把addresses列成一个列表addresses: - 192.168.10.66/26 - 172.16.20.66/24如果系统启用了NetworkManagernetplan生成的配置可能会和NetworkManager冲突导致配置不生效。建议在台式机或服务器上直接用netplan桌面版Ubuntu则要留意NetworkManager是否接管了网卡。执行“nmcli device status”能看到网卡被谁管理如果是“unmanaged”说明netplan接管了如果是“connected”或“disconnected”说明是NetworkManager在管。5.2 CentOS和RHEL系nmcli与配置文件双修CentOS 10、RHEL系现在推荐用NetworkManager的nmcli命令来配置非常方便。给网卡配置静态IP的完整命令是nmcli con mod eth0 ipv4.addresses 192.168.10.66/26 nmcli con mod eth0 ipv4.gateway 192.168.10.65 nmcli con mod eth0 ipv4.dns 223.5.5.5 119.29.29.29 nmcli con mod eth0 ipv4.method manual nmcli con up eth0恢复DHCPnmcli con mod eth0 ipv4.method auto nmcli con up eth0nmcli的优点是不会写错配置文件格式它会自己改NetworkManager的配置库。但如果系统用的是传统的network-scripts目录老版本CentOS也可以直接编辑“/etc/sysconfig/network-scripts/ifcfg-eth0”文件BOOTPROTOnone IPADDR192.168.10.66 PREFIX26 GATEWAY192.168.10.65 DNS1223.5.5.5 DNS2119.29.29.29 ONBOOTyes文件名里的eth0要跟实际网卡名一致有的机器叫ens33、enp0s3用“ip link show”查看确认。改完执行“systemctl restart network”或“nmcli con reload”加载配置。CentOS里有一个容易忽略的细节如果BOOTPROTOnone就是明确告诉系统不使用DHCP。有的网卡在装系统时被设置成了BOOTPROTOdhcp你又手动填了IPADDR会导致系统在启动时先尝试DHCP拿不到地址再回落静态配置结果就是IP配置慢半拍有时候网络服务启动顺序不同还会导致IP重复。建议静态配置时一定把BOOTPROTO改成none或static。5.3 SUSE和麒麟系统图形界面与命令并行SUSE的YaST工具是它的一大特色可以在图形界面下完成网卡配置。输入“yast2”打开控制中心找到“网络设置”选择网卡后点击“编辑”填入IP地址、子网掩码这里可以填255.255.255.192也可以选前缀长度设置主机名和名称服务器即可。命令行的方式则是用“wicked”工具wicked show all wicked ifup eth0SUSE有自己的一套网卡管理方式跟RHEL的systemd-networkd或NetworkManager不完全一样。如果你只是临时改地址做测试最快的方法是“ip addr add 192.168.10.66/26 dev eth0”。注意这只是临时的重启网卡或机器后就没了。永久生效还是得改配置文件“/etc/sysconfig/network/ifcfg-eth0”。麒麟系统基于Linux生态同时兼容多种网络管理工具。我之前在麒麟上配置静态IP最常见的是用图形界面的“设置 - 网络 - 有线连接 - IPv4”。填好地址、掩码、网关、DNS后关键是最后一行“DHCP”要改成“关闭”否则每次重启系统又会被DHCP覆盖掉。命令行下也可以用nmcli因为麒麟系统默认集成了NetworkManager。如果遇到nmcli配置后不生效可以检查“/etc/NetworkManager/NetworkManager.conf”确认managed参数没有被改成false。5.4 Linux临时IP与永久IP的区别Linux系统里临时IP和永久IP的区别是很多新手栽跟头的地方。临时IP用“ip addr add”命令添加立即生效但重启后丢失。永久IP需要写入配置文件或者通过NetworkManager保存配置。还有一种折中方案把“ip addr add”命令写进“/etc/rc.local”但前提是你确定rc.local是开机执行的且文件有执行权限。这个方案我一般不建议因为会跟网络管理服务冲突越搞越乱。另外一个常见的需求是DHCP客户端如何添加第二个IP地址如果你希望网卡先通过DHCP拿到一个地址同时额外加一个静态地址用于服务监听有两个办法。办法一通过DHCP服务器上的配置把静态地址分给这个MAC相当于换了种方式拿到固定IP。办法二在系统的网卡配置里同时启用DHCP和附加地址Ubuntu netplan写法如下dhcp4: true addresses: - 172.16.88.10/24这样网卡会从DHCP获取第一个IP同时在172.16.88.0/24网段固定一个地址。两套地址可以同时工作互不干扰。Windows下也支持类似配置但需要在高级TCP/IP设置里添加附加IP并且把DHCP保持为自动获取状态。5.5 设备端改IP的通用排查思路这一节特别想提一下工业设备、激光雷达、打印机这类专用设备的IP修改问题。很多设备出厂时使用固定IP比如激光雷达Mid-360S默认地址是192.168.1.201打印机可能是192.168.1.100。当你发现电脑连上设备后无法访问第一反应往往是“设备是不是坏了”其实80%的情况是电脑自己不在同一个网段。正确操作思路是这样的查看设备说明书或用扫描工具搜索设备当前IP。给电脑网卡临时设置一个同网段的IP比如192.168.1.50/24。在浏览器或配置工具里访问设备IP把设备改成你规划的网段地址。再把电脑网卡改回正常的IP。如果你连设备当前IP都不知道那就用抓包工具或者局域网扫描工具如“arp -a”来发现设备。在命令行执行“arp -a”能看到本机近期通信过的IP地址和对应MAC地址。对照设备标签上的MAC前缀就能锁定设备的当前IP。这个方法比盲猜网段靠谱多了尤其是在现场没有文档的情况下。6. 配置后的验证手段与常见问题排查实录6.1 配置完IP之后应该先做哪几步验证配置完IP地址和子网掩码别急着说“好了”。我自己至少会按顺序验证五步查看本机IP是否生效Windows用“ipconfig”Linux用“ip addr show”确认地址、掩码、网关都正确。ping网关地址能通说明本机和二层网络正常是不是跟网关的物理链路没问题。ping一个同网段的其他设备能通说明同网段通信正常。ping一个不同网段的IP比如另一栋楼的服务器的IP能通说明三层路由正常。用域名访问一个网站能通说明DNS解析和出口上网都正常。这五步每一步都对应一类问题。如果第2步不通问题在本机网卡或网线如果第2步通、第3步不通可能是IP冲突或对方防火墙如果第3步通、第4步不通多半是网关路由或掩码问题如果第4步通、第5步不通是DNS问题。按这个顺序排查能快速缩小问题范围不用像无头苍蝇一样乱试。6.2 常见问题速查表症状可能原因排查命令/操作解决建议IP变成169.254.x.xWindows无法从DHCP获取地址ipconfig /renew检查网线、DHCP服务、交换机端口ping网关通ping不通外网IP出口路由或防火墙问题tracert 8.8.8.8检查路由器NAT、运营商线路ping IP通ping域名不通DNS配置错误nslookup www.example.com检查DNS服务器地址IP冲突提示有人用了相同地址arp -a 查看MAC变化使用DHCP保留或规划合理地址能上网但共享打印机连不上SMB协议或防火墙拦截net use 查看连接状态打开文件共享端口445Windows防火墙关闭仍ping不通系统回显请求策略未开启控制面板共享选项启用文件和打印机共享回显Linux配置不生效NetworkManager和netplan冲突nmcli device status明确网卡管理归属子网掩码填成255.255.255.255被误设为单个主机ip addr show按规划设置/24或/266.3 排查IP冲突的实操技巧IP冲突是最麻烦的问题之一因为不是每次都出现而是时有时无。Windows系统遇到冲突时会弹窗提示但Linux下可能只是网络时断时续。排查思路是先登录交换机查ARP表看同一IP对应了几个MAC地址或者用“arp -a”持续观察IP对应的MAC是否经常变。如果同一IP对应多个MAC说明有人手工配置了相同的地址。这时可以临时把本机地址改掉然后逐个拔网线或者关闭设备电源通过MAC定位到具体设备。最稳妥的预防方案就是我在第三节提到的固定设备用DHCP保留动态设备用地址池并且把网关和固定地址区都排除在地址池之外。这样就算有人新接入一台设备DHCP也不会把保留地址分配给新设备冲突概率大幅降低。6.4 用tracert和ping定位网络路径问题“tracert”Linux下是“traceroute”或“tracepath”是排查跨网段问题的利器。它的原理是发送一系列TTL递增的报文让每一跳路由器返回一个ICMP超时消息从而记录下从本机到目标地址之间经过的所有路由器IP。如果发现报文在某一跳始终超时之后的目标地址也不通大概率问题就在这一跳及之后。如果跳数很长每跳延迟都很高一般说明路由有迂回或者某段链路拥堵。需要注意tracert输出中“* *”不一定代表链路不通可能是路由器出于安全策略不响应ICMP。这时候要结合目标地址是否能通来判断只要最终能到达目标偶尔几个很正常。6.5 一次真实排障案例站点通了跨网段却不通之前帮朋友处理过一个案例一台Ubuntu服务器配置IP为192.168.50.66/24网关192.168.50.1同网段内的其他电脑都能正常访问。但有一台电脑在另一个网段192.168.80.0/24通过三层交换机路由过来发现无法访问该服务器的任何端口。检查服务器防火墙是关闭的端口也在监听看起来一切正常。后来仔细看才发现服务器的网关虽然填对了但电脑到服务器的路径经过三层交换机交换机上有一台核心路由器的回程路由优先级更高把去往192.168.50.0/24的流量发到了另一条路径上。解决方案是在核心路由器上添加一条明确的路由“ip route 192.168.50.0 255.255.255.0 192.168.80.1”强制让跨网段流量走正确路径。这个案例说明IP和掩码只是基础网络连通还有路由层面的因素。配置完成后跨网段不通时不要只盯着这台设备看还要从路由表、交换机配置、防火墙策略多个角度排查。7. 那些容易忽略的细节与个人经验总结最后再聊几个容易被忽略的细节。这些细节在书本上不一定有但实际操作中遇到过一次就会印象深刻。第一改IP地址前一定要确认自己是远程连接还是本机操作。远程桌面或SSH连接到服务器时如果IP改错了或者不在同一个网段连接会直接断开而且你无法再通过旧IP找回。这种情况下最好用带外管理如IPMI、iDRAC或者让现场的人帮忙。就算是在本机操作也建议先保留一个临时管理通道比如同时添加一个备用IP再改主IP改完先ping网关确认通再重新连接服务。第二DHCP地址池里的租约时间设置也会“坑”人。租约时间太短设备会频繁续约网络里DHCP请求报文多租约时间太长网络结构调整后旧地址要很久才释放。办公网络建议租约时间设置成8小时或1天如果是在临时测试环境可以用30分钟。调整租约时间后要执行一次ipconfig /release和ipconfig /renew让客户端立即生效。第三掩码配置不一致导致的“假性不通”非常隐蔽。有一台设备看着IP和网关都对就是访问不了外网后来发现它掩码写成了255.255.255.255系统认为所有地址都不在同一个网段连网关都ping不通。这种错误在Windows图形界面里其实有系统提示但很多人没注意直接点了确定。第四DNS服务器地址不要全部填写同一个运营商。如果主DNS挂了备用DNS还是同一个就等于没有备用。建议配置两个不同来源的DNS比如223.5.5.5和119.29.29.29国内常见的两个公共DNS稳定性都还不错。如果有内部DNS那把内部DNS放主公共DNS放备。第五无论你用哪种方式配置IP都建议把配置整理成文档。文档里记录设备名、接口名、IP地址、掩码、网关、DNS、用途、修改日期和操作人。网络设备多了以后这份文档就是排障的救命稻草。很多故障排查半天查不出来就是因为没人说得清某台设备的IP到底是谁改的、什么时候改的。根据我个人的经验IP地址和子网掩码这种东西看起来简单但真正吃透需要一次完整的实操经历。建议你照着这篇文章的步骤在一台电脑、一台交换机或一台路由器上实际配置一遍用ping和tracert去验证每一步的效果。只要完整走通一个“规划网段→配置地址→验证连通→排查故障”的闭环以后再遇到网络问题就不会慌了。