一般来说网络服务需要部署在具有外网IP的机器上,否则只能同网络的机器访问,内网穿透的目的是为了实现内网机器上部署的服务也能同公网机器部署的服务一样所有联网的机器都能访问它。
内网穿透的意义:
-
出于安全或者信息隐藏,比如通过反向代理内网的http 服务
-
低成本部署网络服务
-
学习研究
内网环境示意图
我们只有对PC1/2/3的控制权,部署在PC1上的服务只能同网络的 PC2,PC3 访问,外部用户A因为不知道地址无法访问,也不能穿过层层的NAT 防火墙,内网穿透的目的就是让外网用户A 可以访问到部署在内网PC1上的服务。
内网穿透的方法
-
通过反向代理转发数据包
-
使用公网机器中转数据包
-
直连穿透,在用户和内网两个nat 防火墙之间直接对发数据包
下面我们分别研究下这三种方法的部署情况和可能面临的问题。
反向代理内网穿透
在对各层级的NAT服务器有控制权的情况下可以配置端口转发实现内