子网掩码是什么意思?255.255.255.0到底管什么的,我在公司连不上打印机才搞明白

给朋友公司帮忙装电脑那回,我在网络设置里照家里习惯填了个 255.255.255.0,结果 192.168.0.x 那半个办公室的共享打印机死活连不上,ping 都不通。折腾一下午换网线、重启交换机全没用,最后拿同事电脑的 ipconfig /all 一比对才发现:全公司的掩码都是 255.255.254.0,就我一台是 255.255.255.0。改成一样,秒通。
那天我才算真正把子网掩码这东西吃透。它不是什么高深配置,说白了就一句话:决定谁跟你是同一个小区。同小区的设备互相喊话直接喊,跨小区的必须走网关那扇大门。这篇把它拆开讲明白。
先分清:IP是门牌,掩码是小区围墙
路由器世界里有两个地址概念,MAC地址是设备的身份证,IP地址是门牌号,这些之前写过。但光有门牌还不够——你得知道哪些门牌算同一个小区。
我家路由器是 192.168.31.1,手机拿到的门牌是 192.168.31.108,NAS 是 192.168.31.10。这三台设备互相传文件、投屏、访问后台,数据直接在局域网里飞,不经过运营商,这个之前在讲网关那篇里打过比方:同小区的直接喊,跨小区的交给大门。
问题来了:路由器怎么判断"192.168.31.108 和 192.168.31.10 是同一个小区的"?它又不会数感。答案就是拿子网掩码当尺子量。没有掩码,一个 IP 地址就是一串孤零零的数字,谁也没法断定俩门牌是不是邻居。
255.255.255.0拆开看:三组锁死,一组自由
255.255.255.0 这串数字,要拆成四组看:前三组是 255,最后一组是 0。规则特别粗暴——掩码是 255 的那几组,IP 里对应的数字被"锁死",算小区名的一部分;掩码是 0 的那组,随便填,算门牌号。
拿我家举例子。IP 是 192.168.31.108,掩码 255.255.255.0,那么小区名就是 192.168.31,尾号 108 只是这栋楼里的房间号。同一小区的设备,前三位必须一模一样,最后一位在 1 到 254 里随便挑。所以 192.168.31.50 和 192.168.31.200 是邻居,而 192.168.30.50 就算外小区的了——哪怕看着只差一个数字。
路由器后台里经常写成 192.168.31.0/24 这个样子,斜杠后面的 24 是另一種记法:255 换算成二进制是 8 个 1,三组 255 就是 24 个 1,所以 255.255.255.0 等于 /24。你在各种教程里看到的 /24、/16,说的都是掩码,一回事。
速算口诀:255照抄,0归零
判断两台设备是不是同小区,专业说法是把 IP 和掩码做"与运算"算出网络号,听着吓人,实际有个土办法:掩码是 255 的组,IP 那一位照抄;掩码是 0 的组,直接归零。
算一遍。192.168.31.108 配上 255.255.255.0,前三组照抄、末组归零,得到 192.168.31.0,这就是网络号。另一台 192.168.31.66 算出来也是 192.168.31.0——网络号一样,同小区,直接喊话。而 192.168.30.66 算出来是 192.168.30.0,对不上,包就扔给网关 192.168.31.1 去转发。所有路由决策的底层逻辑就是这一步比对,没有玄学。
顺便说一句,同小区"直接喊话"喊的是对方的 MAC 地址,靠 ARP 广播找人。所以掩码圈起来的范围,其实就是一个广播域——这个圈子划多大,直接决定广播吵不吵,后面细说。
我在公司栽的跟头:255.255.254.0把两个段划成一家
回到开头那个坑。朋友老纪的公司设备多,装机师傅当年把内网划成了 192.168.0.0/23,也就是掩码 255.255.254.0,把 192.168.0.x 和 192.168.1.x 两个段划成了同一个小区,一共能容纳 510 台设备。
我去帮忙那天,给新电脑手动配 IP,顺手就填了家里的老三样:IP 192.168.1.158、掩码 255.255.255.0、网关 192.168.0.1。结果怪事来了:192.168.1.x 的同事电脑全能访问,共享目录秒开;192.168.0.x 那边的打印机怎么都连不上,ping 直接超时。
按上面的口诀一算就明白了。我填的 /24 掩码把小区名锁定成 192.168.1,于是在我这台电脑眼里,所有 192.168.0.x 的设备全是"外小区的",找打印机的包全被我扔给网关绕路。而那台老打印机本身网关栏留空,只会跟自己认为同小区的设备直聊,两边对"谁是邻居"的判断根本对不上表,ARP 找人这一步就乱了。把掩码改成 255.255.254.0,和全公司统一口径,立刻全通。
这里还有个知识点:254 换算成二进制是 11111110,七个 1 加一个 0。所以 255.255.254.0 不是"到某一组整组锁死",而是最后一组的前 7 位锁死、最后 1 位自由——恰好把 0 和 1 两个数字段圈进同一个小区。这也是为什么它叫"超网",两个 /24 并成一个用。
掩码配大配小都不省心,还有个硬规矩
吃过亏之后我专门在家做过实验。给表弟拷游戏,两台电脑一根网线直连,没有路由器。第一趟我随手配了 192.168.0.10 和 192.168.1.10,掩码都是 255.255.255.0——两台机器互相认为对方是外小区的,包全扔给网关,可压根没有网关,ping 一晚上也是白搭。第二趟改成 192.168.0.10 和 192.168.0.11,立刻通。这是掩码配小的坑:把本来能直连的邻居划成了外人。
配大一样有坑。有人图省事把家里掩码填成 255.255.0.0,觉得"管它呢,圈子大总没错"。平时确实没事,可一旦连公司 VPN 就可能出乱子——之前写过公司 VPN 把 192.168.2.0/24 推到我电脑上,如果我本机掩码是 /16,那么所有 192.168.x.x 在系统眼里全是"同小区",去公司服务器的包会被直接 ARP 喊话而不走路由,喊半天没人应,连接就这么莫名其妙断了。家里老老实实 255.255.255.0 就行。
圈子划太大还有个隐性代价:广播吵。掩码圈起来的范围就是一个广播域,小区里谁家喊一嗓子(ARP 找人、发现新设备),全小区都听得见。家庭 254 台的圈子无所谓,可要是把公司几百台设备全圈进一个 /16,广播包能把空气填满,交换机转发压力肉眼可见。所以划网段的原则是够用就好,不是越大越气派。
另外掩码有个硬规矩:1 必须连续,从左边排起。255.255.255.0、255.255.254.0 都合法,但 255.0.255.0 这种中间挖空的写法不存在,设备会直接报错。常见掩码容量我列个表,顺便解释一个老疑问——为什么 /24 是 254 台不是 256 台:因为尾号全 0 的那个被留作网络号本身,全 1 的那个是广播地址,一头一尾各占一个,256 减 2 正好 254。
| 掩码写法 | CIDR | 可用门牌数 | 典型场景 |
| 255.255.255.0 | /24 | 254 台 | 家庭、小办公室 |
| 255.255.254.0 | /23 | 510 台 | 中型公司(两个段并一个) |
| 255.255.0.0 | /16 | 65534 台 | 大型园区 |
家里哪天会真碰上它
日常用 DHCP 自动拿地址的话,掩码是路由器随 IP 一起下发的,你感知不到它的存在,DHCP 那篇讲过这套机制。真正要手填掩码的场合,掰指头数就这么几个:
一是手动配静态 IP。192.168.1.1 打不开自救时手动设 IP、光猫改桥接后配 192.168.2.x 进后台,这两回四件套里都有掩码那栏,照着路由器的填 255.255.255.0 就对。给打印机、NAS 这类设备绑静态 IP 时同理。
二是玩虚拟机和 Docker,新建网络时让你填网段,比如 172.17.0.0/16,就是掩码的另一种写法。三是 IPv6,它没有掩码这个叫法,改叫前缀长度,比如 /64,之前拆解 IPv6 地址那篇里讲过,思路一脉相承。至于想在路由器层面把不同设备隔成不同小区,那用的工具是 VLAN 划分,比改掩码正规得多。
排错对号表放在这儿。网络出问题时先看掩码,能少走弯路:
| 症状 | 病根 | 怎么修 |
| 能 ping 通一部分设备,另一部分死活不通 | 本机掩码和别人不统一,圈子画小了 | 对照能用的那台机器的 ipconfig /all 照抄 |
| 两台设备直连(无路由器)ping 不通 | IP 落在掩码划定的不同小区 | 把两台的 IP 改成同段,掩码统一 /24 |
| 一连 VPN 就断或部分内网访问不了 | 本机网段和远程网段重叠,掩码圈太大 | 改路由器 LAN 网段,错开远程那边的号段 |
顺序上记住一句话就够了:怀疑网络不通,先 ipconfig /all(手机看 WiFi 详情)把 IP、掩码、网关三样抄下来,跟正常设备逐项比对,十有八九是掩码或网关填错,实在找不到再怀疑网线和设备。

发表评论