1、背景
首先,IP有限,有了局域网,不同局域网内的IP可以相同。访问公网的时候:
局域网内的,
IP+端口
映射到
网关的,
公网IP+端口
相当于,用不同的端口号来区分了内部的IP,并且会在内网访问外网的过程中,在路由表中记下来映射关系。
所以,局域网=>公网,表中有记录,返回的数据也能正确交给局域网中的电脑。
但是,公网=>内网,表中没记录,无法知道内网中的IP在哪里。
2、内网穿透的原理
1.理论上,在路由表中添加映射关系就可以,但实际中肯定不是老是人为去改路由器
2.工具,花生壳、Cpolar等,电脑上运行一个客户端,与他们的服务端通信,这个客户端再与内网中的电脑应用进行端口映射。QQ、微信也一样,都要有服务端才能做到不同局域网中的A能联系到B。
3、连接局域网的服务器
使用工具映射SSH的22端口,得到公网地址与端口号
可以使用vscode等再连接这个公网地址和端口号即可。
4、遇到的小问题
使用Cpolar映射基于Django的web服务时,需要设置
1 | DEBUG = True |