1.公网访问私网---内网穿透
假设你在外地有【公网IP】的电脑上想访问家里面【192.168.78.1:5000】的服务,怎么办 ???
你是不是想说:浏览器输入【https://192.168.78.1:5000】这样可以吗 ?当然不行,那为什么 ?
想想,你的服务是一个私网IP,这就意味着,别人家也可以有一个【https://192.168.78.1:5000】的服务存在的,谁知道你访问哪一个 ? 况且,中间不还得经过路由器,路由器还不一定同意呢 !
既然公网访问私网进不来,得想办法让公网访问一个新的公网,再让新的公网与私网产生联系
按照这个思路,于是乎就有了下面的方案:
1.你先从外地访问一个新的公网服务器地址【这个新服务器称为穿透服务器】
2.让这个新的公网服务器里帮你带路,找到你家的私网【https://192.168.78.1:5000】
这个步骤2就是使用了【内网穿透技术】
【穿透服务器】的地址唯一性就帮你回避了不知道访问哪家的 192.168.78.1:5000
【穿透服务器】还帮你带路解决了路由器同意的问题,因为它相当于帮路由器同意了
2.公网访问私网---端口映射
前提知识:
私网访问公网是数据的通信过程,所以自然也就有【建立连接】【释放连接】两个过程的。
假设建立连接:
1.【我的电脑IP:指定/自动分配的端口A】-->【路由器IP:路由器随机分配的端口B】
2.【路由器IP:随机分配的端口B】-->【百度IP:服务端口C】
那么对应的释放连接后,端口A,端口B就释放了,只有端口C依然保持监听
所以【公网IP:端口C】要访问回我的电脑,必须保证端口A,B的对应关系还在 还是那个问题:
正文
假设你在外地一台拥有【公网IP】的电脑上想要访问你家里面【192.168.78.1:5000】的服务,怎么办???
通过前提知识,访问不回去就是因为【端口A,B】的对应关系不在了
那我们只需要让这个对应关系保持住就可以了,这就是端口映射
就是说,提前告诉路由器,让它把【端口B】永远保持监听,
并且在端口映射表里面登记上:
【我的电脑IP:端口A】----【路由器IP:端口B】
这样【公网】访问【私网192.168.78.1:5000】,就直接变成访问【路由器IP:端口B】
然后依靠【端口映射】就把信息传进【私网192.168.78.1:5000】了