☰
Windows静态路由实战:删除默认网关实现断外网保内网
2026/10/19 4:55:20 网站建设 项目流程

直接在Windows上断掉互联网、只保留公司局域网访问,这个需求听起来很简单——拔网线嘛——但真要在不拔网线、不影响内网业务的前提下做到,很多人会卡在“网关和路由”这一步上。这篇文章就把我实测过的方案完整展开:从最核心的静态路由原理,到具体的命令配置、防火墙加固,再到重启后失效等疑难杂症的排查,基本覆盖了你可能会遇到的所有情况。内容适合公司IT运维、经常需要在隔离环境办公的员工,以及所有想自己折腾局域网方案的技术爱好者。

1. 需求拆解与方案选型

先说清楚这个需求到底在解决什么问题。企业办公网通常同时接入了互联网和内网业务系统,比如OA、ERP、文件服务器、打印机等。但一个人处理大文件时,网速被下载占满;又或者信息安全要求严,办公机器不允许访问外网。这时候不能把网线拔了——因为内网还要用;也不能在网卡里乱勾乱选——因为一不留神连内网也上不去了。所以要做的其实是一件事:让本机“只走内网网关,不走公网网关”。

这个目标可以拆成两个子需求:

  • 内网流量(比如192.168.20.x、192.168.30.x这段)正常访问;
  • 其余流量(默认走公网网关)一律丢弃或无法出去,也就是“断互联网”。

方案层面,常见的有这么几种:

  1. 物理断网法:拔网线、关交换机端口、拔光纤——简单粗暴,但内网也没了,不符合场景。
  2. 修改网卡属性,去掉默认网关:效果明显,但会引发一个问题,内网不同网段的访问也会因为缺少路由而失败。
  3. 使用Windows防火墙出站规则:可以阻止外网IP,但对机器访问内网IP不设限。这个方案稳,但要小心规则优先级。
  4. 修改路由表,删除默认路由、添加内网静态路由:这是最推荐的做法,也是这篇博文的核心。
  5. 使用代理或网关层面做策略:属于网络设备侧的方案,不在本机操作,本文不展开。

从“稳定性”和“可复现性”角度来说,路由表方案最适合单机操作。因为它是Windows原生支持的,不需要安装额外软件,也不会影响其他设备,而且规则可以一键恢复。

但直接删默认网关有一个容易被忽略的坑:Windows的DHCP客户端会周期性续租,续租时如果网卡设置为“自动获取IP”,它会把默认网关自动加回来。这会导致你刚断的互联网又回来了。所以实际操作用静态IP更省心,或者配合防火墙规则做兜底。

2. 核心原理:网关、路由与流量走向

想真正理解这一节,建议先忘掉那些“高级网络概念”,只需要关注一台Windows电脑的流量是怎么决定走向的。它有三个关键要素:IP地址、子网掩码、网关。其中网关就是“出口”,你访问任何不属于本机所在网段的地址,系统都会把包扔给默认网关处理。

你可以把默认网关理解成大楼的总出入口:你要去别的楼层,必须经过大堂。但“访问外网”和“访问隔壁办公室”不同——隔壁办公室可能不需要经过大堂,只需要穿过走廊(也就是走一条直连路由)。静态路由的本质就是给系统画一张“室内地图”,告诉它哪些目的地址不需要出大堂,直接走走廊。

Windows的route print命令能直观看到这张地图。一般来说,你会在IPv4路由表中看到:

0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 25 192.168.1.0 255.255.255.0 在链路上 192.168.1.100 25

第一行就是默认路由,目标网段是全0,意思就是“所有没匹配上的流量都送到这个网关”,也就是互联网出口;第二行是直连路由,表示访问192.168.1.x这个网段时,系统直接在本机链路广播,不需要经过网关。

我们要做的,就是删掉第一行,保留第二行,再额外加上几行“内网网段路由”。原理上非常简单,但执行时很多人会犯一个错误:以为删了默认路由之后,内网肯定还能访问。如果你的内网系统都在同一个网段,那确实能访问;但如果OA系统在192.168.20.0/24、文件服务器在192.168.30.0/24,而你的电脑在192.168.1.0/24,中间跨了网段,那就必须经过网关。所以路由表方案的关键不是删默认路由,而是“删了它以后,再把内网路由一条条补回来”。

另外还要理解路由优先级。Windows路由表中,匹配前缀越长(也就是子网掩码越长)的路由优先级越高。比如同时存在0.0.0.0/0和192.168.20.0/24两条路由,访问OA服务器时系统会选后者;访问任意公网IP时,由于没有更具体的匹配项,只能走默认路由。所以“删除默认路由”这一步才是真正的断网杀手,添加内网路由只是保证内网访问不受影响。

这一整套逻辑如果你已经理解了,下面实操部分就会很顺手。

3. 实操:通过静态路由实现“断外网保内网”

3.1 环境准备:查清IP、网关和DNS

动手之前,先把本机和内网的关键信息摸清楚。打开CMD,执行:

ipconfig /all

重点看以太网适配器,记下这几项:

  • IPv4地址:比如192.168.1.100
  • 子网掩码:一般是255.255.255.0
  • 默认网关:比如192.168.1.1
  • DNS服务器:比如192.168.1.1或公司内网DNS

然后再确认你要访问的内网网段有哪些。如果你不确定,可以问同事或者在办公室内ping一下已知的内网地址。常见的内网网段比如:192.168.20.0/24、10.10.2.0/24、172.16.0.0/16。

有时候公司内网也走域名访问,比如oa.company.local,这种建议先把域名对应的IP解析出来:

ping oa.company.local

如果解析出来是10.10.2.15,那内网网段就是10.10.2.0/24。

3.2 添加静态路由并删除默认路由

以管理员身份打开CMD(或者PowerShell),先添加内网路由,再删默认路由,顺序不要颠倒。因为一旦默认路由被删除,你又没加内网路由,哪怕内网访问也会陷入卡顿甚至超时,此时重新操作会有点手忙脚乱。

添加内网路由的格式如下:

route add 192.168.20.0 mask 255.255.255.0 192.168.1.1 -p

意思就是“要去192.168.20.x网段,请走192.168.1.1这个网关”。如果内网还有多个网段,就重复执行,每条换对应的网段和掩码即可。-p参数表示持久化保存,重启后依然生效,这点很重要,不加的话重启后路由就丢了,又要重来。

之后删除默认路由:

route delete 0.0.0.0 mask 0.0.0.0

执行完再查看路由表:

route print

你应该能看到类似这样的结果:

目标 掩码 网关 接口 跃点 192.168.1.0 255.255.255.0 在链路上 192.168.1.100 25 192.168.20.0 255.255.255.0 192.168.1.1 192.168.1.100 25

注意,这里已经没有0.0.0.0开头的默认路由了。

3.3 验证测试

配置完成后立刻验证。测试分两部分:内网通了没,以及外网是否真的断了。

内网再简单执行一次:

ping 192.168.20.5

如果通,说明路由添加正确。接下来测试外网,随便ping一个公网地址,比如:

ping 223.5.5.5

各版本系统返回情况会略有差异,但通常你会看到“请求超时”或“一般故障”。如果用的是Windows 11,可能默认ping的请求会被系统防火墙拦截,但返回信息还是能看出走不通。实在不确定的话,直接尝试访问一个网页或打开浏览器,看到“无法访问此网站”就说明互联网已断开。

还有一个小技巧:用tracert看链路走向。

tracert -d 223.5.5.5

这条命令会在第一跳就卡住,因为默认路由被删,系统不知道往哪儿转发。

3.4 让配置在重启后依然有效

上面已经提到,route add的-p参数可以实现持久化保存。这里补充一个坑:如果你前面执行的是不带-p的添加命令,重启后静态路由会全部消失,紧接着系统又恢复默认网关,互联网也回来了。想让配置一劳永逸,建议二选一:

  • 添加路由时全部加上-p;
  • 或者写一个批处理脚本,放到启动项里,开机自动执行。

批处理脚本大概是这样的,可以保存为set_route.bat:

@echo off route add 192.168.20.0 mask 255.255.255.0 192.168.1.1 -p route add 192.168.30.0 mask 255.255.255.0 192.168.1.1 -p route delete 0.0.0.0 mask 0.0.0.0 pause

放在“启动”文件夹,或者做成计划任务,开机运行一次就行。

提示:route delete 0.0.0.0 mask 0.0.0.0这条命令会把默认路由删掉,但Windows某些版本在开机初期会自动从DHCP获取默认网关,时序上可能出现“脚本执行过早、默认网关还没出现”的情况,删除命令会提示“找不到元素”。如果遇到这种情况,可以延迟一段时间再执行脚本,或者把这条命令放在ping -n 10 127.0.0.1 > nul延迟之后。

4. 进阶:用Windows防火墙做双重保险

路由表方案已经有断网效果,但有一个小瑕疵:如果你本地网络中存在其他可以路由的出口,比如虚拟机和双网卡,那系统仍有可能通过别的路径访问外网。对于强隔离需求,建议把Windows防火墙的出站规则也配置上,两条腿走路,稳得多。

4.1 创建阻止所有出站连接的规则

操作路径:控制面板 -> Windows Defender防火墙 -> 高级设置 -> 出站规则 -> 新建规则。

  1. 规则类型选择“程序”,选择“所有程序”;
  2. 操作选择“阻止连接”;
  3. 配置文件三个都打勾,或者只勾“域”和“专用”(看你当前网络类型);
  4. 名称随意,比如“Block Internet”。

创建完成后,出站方向默认全部被拦截。但此时内网也会一起被拦,因此还需要再添加一条“允许”规则,把内网目标地址放行。继续新建规则,类型随便选“自定义”:

  1. 程序选“所有程序”;
  2. 协议类型选“任何”;
  3. 作用域 -> 远程IP地址 -> 添加内网地址和掩码,比如192.168.20.0/24、192.168.1.0/24;
  4. 操作为“允许连接”;
  5. 名称“Allow Intranet”。

规则顺序上,允许规则需要放在阻止规则上方,或者Windows防火墙会自动优先处理更具体的规则,所以一般配置完即可生效。但如果你测试发现内网仍然不通,就手动把“Allow Intranet”拖到“Block Internet”上面。

4.2 限制“程序级”外联

还有一种更细粒度的场景:不是整个断外网,而是只允许某几个办公软件访问互联网,其他程序一律禁止。这种用“程序”类型创建阻止出站规则就很好用。添加一个“禁止整个程序访问网络”的规则,再追加“允许指定程序访问网络”的规则,让白名单生效。个人经验是,白名单的方式比黑名单好维护,但每次安装新软件后都要手动加规则,适合安全意识高的办公环境。

4.3 更轻量的“按流量计费连接”方式

如果你不想改路由表,也不想建防火墙规则,还有个土办法:把当前Wi-Fi或者以太网设置为“按流量计费连接”。在系统设置 -> 网络和Internet -> 找到当前连接 -> 点击“按流量计费”,然后关闭“后台应用自动下载更新”。这样能减少后台流量占用,但你并没有真正断外网,只是把一部分自动流量掐掉了。严格意义上不算满足标题需求,适合那些只需要防更新、省流量的场景。

5. 常见问题与排查技巧实录

下面是我在实际配置过程中遇到过的几个真实问题,排查思路都经过多轮验证,直接按照这个顺序试,大概率能解决。

5.1 断网后内网也访问不了

这个出现频率最高。原因就两种:一种是你删了默认路由之后,内网跨网段访问需要经过网关,但你没加对应路由;另一种是你加路由时网关写错了。

排查方法:先route print查看路由表,找到你要访问的目标网段,看它是否存在且网关是否指向内网网关。比如要访问192.168.20.5,路由表中应该有192.168.20.0/255.255.255.0对应的记录。没有就补上:

route add 192.168.20.0 mask 255.255.255.0 192.168.1.1 -p

另外,检查Windows防火墙有没有拦截内网ICMP请求。有些公司安全策略默认会在防火墙里拦ping,这并不代表内网不通。尝试直接访问一个具体的内网端口,比如用浏览器打开OA系统地址,或者用Test-NetConnection 192.168.20.5 -Port 8080这条PowerShell命令测试端口连通性。

5.2 外网还是能上?先看路由表和DNS

明明删了默认路由,外网还能打开网页?这种大概率是浏览器本地缓存了页面,或者你访问的是内网部署的网页代理。如果缓存秩序排除,就看路由表:

route print

再确认一下是不是多网卡或者虚拟机网卡带出了默认路由。比如你装了VMware或Hyper-V,虚拟网卡可能自带DHCP并分配了默认网关,导致系统还是能通过虚拟网卡出口上外网。

解决办法:在虚拟网卡适配器设置里,禁用TCP/IPv4的“自动获取”改为静态地址,不填默认网关;或者直接进入网络连接面板,把虚拟网卡暂时禁用。

DNS也是一个容易忽略的点。系统设置了多个DNS服务器,其中一个是公网DNS(比如114.114.114.114),那就算没有默认路由,它为了解析域名也会去连这个公网DNS,可能造成“好像能上网”的错觉,其实只是DNS查询出去了。真正打开网页时,TCP连接建立不了,页面还是会失败。为了彻底起见,可以把DNS也改成内网DNS或者不设外网DNS。

5.3 重启后配置消失

这是使用route add不带-p的必然结果。必须强调,持久化路由一定要带-p。如果你已经确认带了-p,但仍然重启失效,检查一下是不是没有用管理员身份运行CMD。普通权限下,-p参数会静默失效,不报错也不生效,这个坑很隐蔽。

5.4 公司要求的“智能切换”场景:内外网一键切换

实际办公场景里,你可能不是要长期断外网,而是隔一段时间切一下网络模式。好多同事会在测试环境、线上环境之间切换。我用的比较顺手的办法是写两个bat脚本,一个“外网模式”,一个“内网模式”。

参考做法:

内网模式脚本intranet_mode.bat:

route delete 0.0.0.0 mask 0.0.0.0 route add 192.168.20.0 mask 255.255.255.0 192.168.1.1 -p

外网模式脚本normal_mode.bat:

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 -p route delete 192.168.20.0 mask 255.255.255.0

切换完成后看一下route print确认一下状态,这个方式比在图形界面里点半天更省事。脚本还可以放到桌面,右键管理员运行。多台电脑需要统一部署时,把脚本发给同事,改一下里面的IP和网段即可。

6. 风险提示与操作禁忌

上面这些都验证过没问题,但还是要提醒几个操作禁忌,别踩完坑再来看这篇文章。

第一,不要直接在网卡属性里勾选“禁用默认网关”而不做其他配置。这种方式删掉默认网关的同时,部分版本Windows还会提示“Internet访问可能中断”,但系统里到内网的路由并不会自动补上,一旦你访问跨网段的内网资源就白屏。

第二,不要在没确认内网网段的情况下批量删除路由。比如你为了断外网,执行了route delete 0.0.0.0 mask 0.0.0.0,这条是只删默认路由的,没问题。但如果你执行成route delete 0.0.0.0,那是有可能影响其他路由的。保险起见,执行之前先route print截图留底,万一出问题还能恢复。

第三,防火墙出站规则一旦配置成“阻止所有出站连接”,你本机的软件更新、系统激活、云同步等服务都会出问题。所以配置防火墙规则时,尽量把远程IP限定在“本地子网”和“内网网段”范围内,而不是对所有目标一刀切。另外,先创建“允许”规则再创建“阻止”规则,否则你在远程操作时可能会把自己锁在门外。

第四,不要忘记本机还有其他网络出口。比如你插了USB网卡,或者手机USB共享网络,即使你断了以太网的默认路由,流量依然可以从USB网卡出口绕出去。严格来说,需要把其他所有物理网卡的默认路由也一并删除,或者直接禁用不需要的网卡。

7. 最后的经验分享

我自己在实际配置中最大的体会是:别把“断外网”想成一个动作,要想成一个策略。纯删路由可以断外网,但一旦涉及DNS、多网卡、虚拟机、网络切换,就会出现各种反弹。最好的方式是“路由表为主,防火墙保底”,一次性配置好后,后续就能安稳使用。

再补充一个小技巧:如果你不确定内网有哪些网段需要放行,可以在删除默认路由之前,先把公司内部主要系统的IP地址列个清单,一个个ping通,然后把这些网段全部加进路由表里。这样哪怕以后新增了内网应用,也基本覆盖到了。后续再发现某个内网系统访问不了,直接执行route add补上就行,完全不需要重新断网配置。

这套方法不仅在办公网适用,家里有NAS、打印机、智能家居设备需要隔离外网访问时,也可以直接套用。只需要把内网网段改成你自己的局域网网段,把默认网关换成路由器IP,其他的逻辑一模一样。

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

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

立即咨询