1.公网有私有IP及NAT
公网IP是全球唯一的IP,通过公网IP,接入互联网的设备是可以访问你的设备。但是IPV4资源有限,一般ISP(Internet Service Provider)并不会为用户提供公网IP。所以家里的计算机在公司是没法直接使用windows远程桌面直接访问的。
理解起来就是你家里的计算机和公司的计算机都在ISP组建的不同的局域网中,在这个局域网中给各自的计算机分配私有IP,那么这些处于局域网的只有私有IP的主机又是怎么可以访问互联网的呢?
答案是ISP在它们的交换机(switch)或者路由器(router)中建立了私有IP到交换机/路由器的公网IP的地址转换。这个转换就是NAT(network address translation)技术。当然NAT转换可能包含IP地址+端口。那么就相当于很多设备在访问互联网的时候是共用一个公网IP的。这个NAT转换表在局域网外是未知的,所以局域网外的设备没法直接访问内部的计算机。所以你家中的计算机只能作为master主动去访问互联网而不能被公司的计算机直接访问。
那么我为什么不能访问和我使用相同服务商的邻居家的电脑呢?我觉得应该是服务商把局域网内互联给禁掉了。自己家里面连接相同WIFI的两个设备是可以互相访问的,如果你自己的路由器和防火墙没有禁止的话。
那么对于向日葵这类远程控制软件是如何做到家里计算机和公司计算机互相访问的呢?这是因为有向日葵的服务器做了中间的桥接,这个过程是家里计算机和公司计算机分别通过向日葵客户端与向日葵服务器通信,这个服务器把两边的数据进行交换。而且这个过程中我理解无论是主控电脑还是受控电脑都是作为向日葵服务器的master,向日葵也是无法主动访问你的计算机的。换句话说受控电脑也是通过主动不停的访问向日葵服务器,是否有远程控制请求,当服务器收到远程控制请求在转发给受控电脑。
同理我们使用手机查看没有公网IP的家用监控器时,也是经过监控器的服务器转发的。
另一个场景 我们在通过SSH访问VPS时候,VPS的IP地址就是一个公网IP。比如AWS的ES2,ES2会绑定AWS地址池里面的一个公网IP才能被访问。AWS的地址池地址段是固定的,所以也容易被长城拦截。
2.IPV6
公网IPv4资源有限,可以向ISP申请,但是一般都是要单独收费的。那么IPV6有128bit地址空间,足够给每个设备分配地址了,国家也下了文件要求所有的ISP提供IPV6地址,一般情况下现在的最新路由器都是支持IPV6的。这个可以自己尝试开始路由器的IPV6连接。目前移动网络,移动联通和电信手机卡都是支持IPV6网络互联的。所以你的手机是可以直接访问IPV6的地址。但是物联网卡是不支持IPV6的。
有了IPV6那么就可以直接用windows的远程控制家中的电脑了,比如在家自建NAS服务,但是一般是没法家中访问公司电脑的,公司的网关不会轻易让外网直接访问的哈。