当前位置:首页 > 休闲

如何检测网络是内网外网

打开命令行,何检敲下 ipconfig,测网看到那个 IPv4 地址是络内 192.168.1.6,你大概率正坐在内网里。网外网换一台云服务器,何检同样命令返回 10.0.12.8,测网这也是络内内网。可要是网外网地址显示 47.98.xx.xx,那基本就是何检公网了。判断内外网,测网最直接的络内办法就是看 IP 落在哪个段里。

私有 IP 地址有三个固定区间,网外网这是何检 IANA 早就划好的:10.0.0.0/8、172.16.0.0/12、测网192.168.0.0/16。络内只要你的设备拿到的是这三段里的地址,它就在局域网内部。家庭路由器默认发 192.168.1.x,公司办公网喜欢用 10.x.x.x,虚拟机软件常给 172.16.x.x。这些地址在公网上不可路由,出了网关就被 NAT 转换掉。所以看到它们,别犹豫,内网。

但光看 IP 还不够。有时候你拿到的地址是 100.64.x.x,这是运营商级 NAT 的保留段,介于内外网之间。家里宽带没公网 IP 时,光猫拨号后分到的就是这种。它不能直接对外提供服务,可又不是传统内网。判断方法很简单:去搜“我的 IP”,看返回的公网地址和你本机地址是否一致。一致就是公网,不一致就是内网或 NAT 后面。

另一个实用手段是 traceroute。Windows 上用 tracert 8.8.8.8,Linux 上用 traceroute 8.8.8.8。如果第一跳是 192.168.x.1 或 10.x.x.1,说明你前面有个网关,典型内网结构。要是第一跳直接就是公网地址,比如 218.xx.xx.xx,那你的设备很可能直接挂在公网上——这种情况现在很少见了,但某些云主机或校园网老架构里还能碰到。

端口检测也能说明问题。在内网里,你 ping 不通外网某个 IP,但能 ping 通同网段的同事机器。反过来,外网设备主动 ping 你,除非路由器做了端口映射,否则一律不通。我试过用手机热点给笔记本上网,笔记本拿到 192.168.43.x,手机本身是 10.x.x.x,两层内网套着。这时候访问外部服务全靠 NAT 层层转发,任何入站连接都别想。

还有一个容易忽略的点:DNS 服务器地址。内网通常配私有 DNS,比如 10.0.0.2 或 192.168.1.1。公网环境一般用 8.8.8.8、114.114.114.114 这类。不过这不是绝对标准,有些公司内网也用公网 DNS,只是解析内部域名时会走 split DNS。所以看 DNS 只能当辅助线索。

实际工作中,我习惯先跑 ipconfig /all 或 ifconfig,扫一眼 IP 和默认网关。网关是私有地址,内网无疑。网关是公网地址,再查本机 IP 是否私有。两个都公网,那才可能是真外网。云服务器是个例外:它的内网 IP 是 10.x.x.x,但通过弹性公网 IP 对外服务。这时候你 curl ifconfig.me 拿到的是公网 IP,可 ip addr 显示的是内网地址。这种叫“内网外网并存”,判断时得区分“管理地址”和“业务地址”。

最后说个土办法:看能不能直接访问路由器管理页。内网里 192.168.1.1 通常能打开路由器后台。外网环境你试试?门都没有。这招虽然不严谨,但快。尤其是帮朋友远程排查网络时,让他打开浏览器输 192.168.1.1,能出登录框就是内网,出不来就可能是外网或者路由器改了地址。

判断内外网没有唯一标准,得组合看 IP 段、网关、traceroute 第一跳、以及实际连通性。单一指标容易误判,尤其是 NAT 和云环境搅在一起的时候。多跑两条命令,比猜靠谱得多。

分享到: