如何通过CMD禁用和启用Windows系统标准网关
Windows通过CMD切换默认网关实现仅局域网连通的可行方案
完全可以实现,核心原理是:本地同网段通信不需要经过默认网关,只有跨网段(含公网)的流量才会通过默认网关转发,只要清空对应网卡的默认网关配置、或者删除系统的全零默认路由,就能阻断公网访问,同时完全不影响局域网连通性。
所有操作都需要提前用管理员身份启动CMD,否则会因权限不足执行失败。
方法一:修改网卡网关配置(重启不丢失,适合固定场景切换)
- 先确认当前在用网卡的基础信息
执行命令ipconfig,找到你正在使用的网卡(通常名称为以太网对应有线网、WLAN对应无线网),记录下该网卡对应的默认网关地址(常见为192.168.1.1、192.168.0.1等内网路由地址)。 - 禁用公网访问(清空网关)
把命令里的网卡名替换成你自己的实际网卡名,执行即可:
执行完成后,网卡的默认网关会被清空,此时访问局域网内的共享、内网服务、同网段设备都正常,公网流量因无转发下一跳无法连通。netsh interface ip set address name="你的网卡名称,比如以太网" gateway=none - 恢复公网访问(加回网关)
把命令里的网卡名、网关地址替换成你之前记录的实际值,执行即可:netsh interface ip set address name="你的网卡名称,比如以太网" gateway=你记录的默认网关地址 metric=auto
方法二:修改系统路由表(重启后自动恢复,适合临时切换)
- 先确认默认路由信息
执行命令route print -4,在输出的IPv4路由表中,找到目标网络为0.0.0.0、子网掩码为0.0.0.0的默认路由条目,记录下该条目的网关地址和接口编号(路由条目前面的数字编号)。 - 禁用公网访问(删除默认路由)
直接执行以下命令删除全零默认路由即可:
效果和清空网关完全一致,局域网通信正常,公网无法访问。route delete 0.0.0.0 - 恢复公网访问(加回默认路由)
把命令里的网关地址、接口编号替换成你之前记录的实际值,执行即可:route add 0.0.0.0 mask 0.0.0.0 你记录的网关地址 metric 20 if 你记录的接口编号
注意:如果你的网卡是DHCP自动获取IP模式,触发DHCP续租、网卡断开重连时,系统可能会自动重新获取网关配置导致公网恢复,这种场景下如果需要长期保持仅局域网状态,可以先把网卡IP改成静态配置再执行上述操作。
操作完成后可以做简单验证:ping同网段的其他内网设备IP,如果能正常连通,再ping公网IP比如114.114.114.114显示请求超时,就说明配置符合预期。
内容的提问来源于stack exchange,提问作者Julcraft Rellek
相关产品推荐
相关产品推荐

