欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

计算机网络] 12, frp 内联网渗透、NAT 渗透 - I. 什么是内联网渗透?

最编程 2024-06-20 16:36:27
...

在了解内网穿透原理之前,我们先说什么是内网穿透。内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

一般而言,在没有固定公网IP的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

内网穿透是什么

内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

该技术除了可以访问隐藏在NAT后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

1.1 NAT

NAT(Network Address Translation,网络地址转换)毫无疑问是一个十分有意义的发明:其通过在互联网中分隔出一个个的专用内网,极大地解决了 IP 地址不足的问题,且有效地避免了主机经受外部网络的攻击。然而,对于开发者而言,NAT 有时又令人头疼:想搭一个个人网站,可家用宽带又不提供固定 IP;建了一个 NAS 服务,可离开内网就访问不了;公司内网服务器出了问题,防火墙和 NAT 让人不得不赶回公司。内网穿透技术应运而生,为开发者们提供了便利。Frp(Fast Reverse Proxy,快速反向代理)就是一个十分有用的内网穿透工具。

具体操作方式是:把其客户端 frpc 放置在内网服务器上,把服务端 frps 放置在具有外网 IP 的服务器上。用户需要访问内网服务时,首先向外网服务器发送请求,经过 frps 代理的转发,送达对应的内网服务,内网服务进行响应,并再次通过代理把响应返回到用户。

frp :A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet。是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

背景:从公网中访问自己的私有设备向来是一件难事儿。
自己的主力台式机、NAS等等设备,它们可能处于路由器后,或者运营商因为IP地址短缺不给你分配公网IP地址。如果我们想直接访问到这些设备(远程桌面,远程文件,SSH等等),一般来说要通过一些转发或者P2P组网软件的帮助。
我有一台计算机位于一个很复杂的局域网中,我想要实现远程桌面和文件访问,目前来看其所处的网络环境很难通过简单的端口映射将其暴露在公网之中,有如下方法:

  • TeamViewer、向日葵、ToDesk:需要两端都有此软件,不方便
  • 蒲公英VPN软件进行组网,可用,但免费版本网络速度极慢,体验不佳,几乎无法正常使用。
  • 花生壳软件进行DDNS解析,可用,但同第二点所述,免费版本有带宽限制,无法实际使用。
  • 搭建frp服务器进行内网穿透,可用且推荐,可以达到不错的速度,且理论上可以开放任何想要的端口,可以实现的功能远不止远程桌面或者文件共享。

准备工作:搭建一个完整的frp服务链,我们需要

  • VPS一台(也可以是具有公网IP的实体机)
  • 访问目标设备(就是你最终要访问的设备)