参考链接
https://blog.csdn.net/fjh1997/article/details/100850756
https://zhuanlan.zhihu.com/p/45445979
最近在搭建学校的网络安全训练平台,使用的是CTFD+CTF-Whale组件生成动态独立靶机,由此引发了对内网穿透的思考。
首先理解什么是内网穿透
内网穿透的概念
了解内网穿透前,需要了解内网穿透这个需求出现的原因。
ipv4地址稀缺,于是出现了NAT,NAPT技术实现IP”复用”。
NAT:
将私网地址通过NAT网关转换成公网地址,同时通信的数量受NAT网关公网地址数限制。
NAPT:
将私网地址和端口号通过NAPT网关转换成公网地址:端口号,NAPT网关维护一张映射表,记录公网ip:port和私网ip:port的对应关系。
这样可以大幅度降低对公网IP的需求量。
为什么需要内网穿透?
我家电脑是移动的,没有给分配独立的公网IP,我在本机搭建的http服务无法被公网看到。为了解决这类问题,内网穿透技术应需求而生。
比如访问我家电脑8888端口的web服务,直接访问我ipip.net看到的ip地址:8888是无法访问的,因为NAT网关没有8888出站记录 的映射关系。
内网穿透概念(复制):
内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在交换机上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。
看了两张图感觉写的比较好
内网穿透的思路
内网电脑主动发消息给公网服务器,相当于公网服务器在转发内网服务器的数据,使用第三台机器访问公网服务器的时候即可访问内网服务器提供的服务。这受公网服务器带宽限制。
内网穿透实现(frp)
网络结构: 服务器为Windows10,移动大内网xD,服务器是我科学上网用的vps,有独立的公网IP。
软件安装:首先在github上下载对应系统架构的frp,Windows比较好选,我出问题的是vps的版本选择,一开始选的是amd64版本,但是无法执行bin file,使用arch命令查看架构后才发现架构为i686,是32位系统。。。哎。
软件配置: 软件配置参考https://zhuanlan.zhihu.com/p/45445979 这里不想在详细展开说,注意几点,就是不能人家写什么你就写什么,需要明白各个配置的意义,否则你搁这穿什么呢?
vhost_http_port 参数配置的是web服务的端口,需要在frpc客户端定义domain(没有的话就写服务器ip),指明本地web服务端口。