希保罗公开课 第二课:为什么电脑明明联网了,外面却找不到它?
很多人都会遇到这个问题家里的电脑能正常上网NAS 也在运行手机连着同一个 Wi-Fi 时访问一切正常。可一旦切换成手机流量或者人在外地这些设备就像突然“消失”了一样。原因并不是设备断网了而是能够联网不等于能够被外部网络找到。上网和被访问是两回事家里的电脑、手机、NAS通常都连接在路由器后面。当设备主动访问百度、视频网站或其他网络服务时路由器会记录请求来自哪台设备。数据返回后再准确地转交回去。所以内网设备主动访问互联网通常没有问题。但如果外部用户突然想访问家里的 NAS情况就不一样了。外部请求到达路由器后路由器并不知道这个请求应该交给电脑、手机还是 NAS为了避免陌生请求随意进入家庭网络路由器和 NAT 通常会直接将这类请求拦截。公网 IP 就像小区门牌号可以把家庭网络想象成一个小区。公网 IP 是整个小区在互联网上的门牌号路由器是小区门卫电脑、手机和 NAS 则是小区里的不同住户。小区里的住户可以主动出门互联网也知道该把回复送回哪里但外面的人如果没有明确的门牌和转发规则就无法直接找到小区里的某一户。很多家庭网络甚至没有独立公网 IP而是与其他用户共享运营商提供的出口地址。这样一来外部网络就更难直接找到家里的具体设备。为什么内网设备默认访问不到本质上有三个原因设备使用的是内网 IP只在家庭局域网内有效路由器和 NAT 隐藏了内部设备的真实地址外部请求没有明确的转发目标默认会被拦截因此电脑能访问互联网只能证明它具备“主动出去”的能力并不代表互联网中的其他人也能“主动进来”。那怎样才能从外面访问家里的设备常见思路包括公网 IP、端口映射和内网穿透。公网 IP 可以让外部网络找到家庭网络端口映射负责告诉路由器请求应该转发给哪台设备。但如果没有公网 IP传统端口映射就很难生效。这时通常需要借助内网穿透让内网设备主动建立一条连接通道再把外部请求安全地转发回来。所以真正的问题不是电脑有没有联网而是外部网络有没有一条能够准确找到它的路径。联网解决的是“我能不能走出去”公网访问解决的是“别人能不能找到我”。