自制frp服务器实现内网穿透

自制frp服务器实现内网穿透,第1张

购买一个极路由,极路由可以安装应用,而且有提供域名解析,可以被用来作为本次内网穿透的实验。

随后给路由器安装frp的应用,在有广域网IP的自己家的路由器上安装frps,在内网安装frpc。
frp的源码可以在 github 上获取,页面上有关于frp的介绍:
服务器端设置,选择版本,服务器地址保持默认的 0000 ,设置特权密码,用于客户端的连接,设置查询用户名和密码。
在客户端进行设置,选择与服务器对应的版本,填入服务器的域名或者IP,因为极路由自己有域名解析非常方便。添加自己设定的密码:

再加入配置文件,比如下面的内容将148和5两台主机的22端口做了分配:

运行客户端,查看运行状态:

以下通过ssh登陆到内网的树莓派上,这个板用安装了moodeaudio系统,可以看到相关的信息:

打开状态网页 >

由于我对一些奇奇怪怪的技术比较感兴趣,就特别想去了解它的原理。
最近看到两个关键词——去中心化,网络穿透。
了解了相关技术我终于明白,为什么当年王欣说:“技术无罪”。
用到这类技术的有:kuaibo (王欣),TeamViewer

简单来说,去中心化之后就是点对点通信。没有服务器作为中介,两个节点直接通信而不通过服务器。

为了更好地理解什么是去中心化网络,先要了解传统的中心化网络。中心化的节点必须是服务器,客户端只能和服务器通信,而不能单独地与另一个客户端直接通信。若客户端想发送信息给另一个客户端,必须通过服务器。在这种模型中,服务器扮演提供服务的角色,而客户端则是被服务的。这样的通信网络,就是传说中的中心化网络。

在去中心化的网络中,实际上是没有客户端和服务器的说法,客户端之间相互地提供服务。客户端之间相互连接,每个客户端同时对外提供相应的服务,同时也使用其他客户端提供的服务。在这种情况下,就没有客户端的说法了,我们可以称它为节点。这样的通信网络,就是传说中的去中心化网络。这种通信网络去除了中心服务器的绝对控制,也提高的网络传输效率,同时中心服务器的压力也变小了。

NAT(Network Address Translation,网络地址映射)是将公网地址映射为子网地址。能够进行映射的网络装置被称为 NAT 路由器。
在子网与外网通信的过程中,子网和公网连接的节点称为路由器。假设子网在19216810网段。路由器的公网IP为1129311432,服务器的公网IP地址为1209324180。当服务器给子网机器发送数据时,实际上是发送到路由器上,路由器能够通过路由器上记录的映射表,将数据映射到子网的机器中;相对的,当子网机器给服务器发送数据时,先将数据发送到路由器,再由路由器发送给服务器。

2019年11月25日,世界互联网组织宣布,最后一个IPv4地址已经分配完毕。现在,我们已经用完了IPv4地址。
在更早之前,由于 IPv4 地址紧缺,提出了NAT理论,通过公网IP地址与端口的组合,映射到子网机器的IP和端口。这样就可以用少量的公网IP来表示更多的子网IP,可以减缓IPv4地址耗尽。

NAT 实现方案有三种:静态转换,动态转换,端口地址映射。
1 静态转换
一个子网IP对应一个公网IP,且配置后不能更改,这并不能节省公网IP。
2 动态转换
公网IP数量大于子网IP数量,公网IP组成一个IP地址池。当子网IP需要转换时,NAT路由器就从地址池中取出一个空闲的公网IP,分配给子网机器,使得子网机器可以和公网进行通信。当数据传输完后,就回收此公网IP到地址池中。
3端口地址映射
通过改变子网机器发送到公网的源端口号(对外的公网IP为路由器的公网IP,修改后的端口号为路由器上的端口号),最大限度地节省IPv4地址。

从NAT功能上做区分,可以将NAT分为四种: 对称NAT 完全锥形NAT IP限制锥形NAT 端口限制锥形NAT

在区分之前,必须先明白一点:NAT 会为子网机器的每一个网络进程都分配一个地址和端口,从而能够将子网网络进程与公网地址做映射。

准备一个子网客户端,两台公网服务器。

准备一个子网客户端,两台公网服务器。

准备一个子网客户端,一台公网服务器。

网络穿透,就是能够让公网的机器(多数指的是网关)找到子网的机器。
穿透下图中的两个网关,使得在两个在不同子网下的机器可以相互通信。网络穿透的本质就是一个子网的机器给另一个网关的公网IP地址和端口发送数据,利用其记录的映射表,使得另一个子网的机器可以接收到数据。
举个栗子,子网机器19216813:2341给公网机器180934546:8888发送数据的过程中,在网关(NAT1)会产生一条映射记录。后续其他公网或者子网的机器发送数据到112931356:43891,就可以让子网机器19216813:2341收到数据。

两端的NAT,只要有一方是完全锥形NAT,就可以穿透。

下面以限制锥形NAT(NAT1),穿透对称NAT为例

(均来自网络)

感谢King老师

2020326 23:37 广州

bind_port是服务器的端口,一般默认这个端口就行,但是如果有其他进程占用这个端口请使用其他端口

6至此服务器端配置就完成了✅

表示客户端启动成功,此时可以在其他任意计算机上通过远程连接访问你的服务器ip测试是否成功连接

Shareaza——畅游P2P网络的利器
·100MB的诱惑,QQ邮箱热力评测! ·人性化设计!新版Blogger试用报告
·制作自动循环播放MP3播放器(上) ·SP2 RC2推迟直接影响Longhorn
·国内已实现PC上装Mac OS X ·Messenger Plus! 3使用详解
·网际畅游:MyIE2各种应用问题 ·经验分享:WinXP SP2安装设置指南
·Photoshop制作一条鲜活的金鱼 ·Flash趣味鼠标特效大作战
·CorelDraw打造可爱心奇小老鼠 ·Flash中制作漂亮的动感水珠
·100MB的诱惑,QQ邮箱热力评测! ·人性化设计!新版Blogger试用报告
·制作自动循环播放MP3播放器(上) ·SP2 RC2推迟直接影响Longhorn
·国内已实现PC上装Mac OS X ·Messenger Plus! 3使用详解
·网际畅游:MyIE2各种应用问题 ·经验分享:WinXP SP2安装设置指南
·Photoshop制作一条鲜活的金鱼 ·Flash趣味鼠标特效大作战
·CorelDraw打造可爱心奇小老鼠 ·Flash中制作漂亮的动感水珠
·100MB的诱惑,QQ邮箱热力评测! ·人性化设计!新版Blogger试用报告
·制作自动循环播放MP3播放器(上) ·SP2 RC2推迟直接影响Longhorn
·国内已实现PC上装Mac OS X ·Messenger Plus! 3使用详解
·网际畅游:MyIE2各种应用问题 ·经验分享:WinXP SP2安装设置指南
·Photoshop制作一条鲜活的金鱼 ·Flash趣味鼠标特效大作战
·CorelDraw打造可爱心奇小老鼠 ·Flash中制作漂亮的动感水珠
Shareaza是一种兼容多种网络的P2P软件,它可以在eDonkey2000、Guntella1、Guntella2这三种P2P网络的服务器上搜索文件并点对点的传输文件。另外,Shareaza还支持BT下载、>假设有两台分别处于各自的私有网络中的主机:A和B;N1和N2是两个NAT设备;S是一个使用了一个众所周知的、从全球任何地方都能访问得到的IP地址的公共服务器
步骤一:A和B分别和S建立UDP连接;NAT设备N1和N2创建UDP转换状态并分配临时的外部端口号
步骤二:S将这些端口号传回A和B
步骤三:A和B通过转换好的端口直接联系到对方的NAT设备;NAT设备则利用先前创建的转换状态将分组发往A和B
源码已发送请查收

标签(空格分隔): 开发工具 前端

[toc]

前端开发,有时候需要给外网的测试人员浏览,此时若没有专门的测试服务器,那么使用内网穿透就是最简便通用的方式了。一个常见的选择就是 ngrok 。 也有 frp

ngrok官网

本地客户端跑起,搭建内网端口隧道给外网服务器,用户访问外网服务器对应地址,自动映射到本地对应地址。

这个方案很简单,也很慢,超慢,无法忍受的慢。

官网教程参看 >P2PSearcher穿透模式是什么
软件左下角有一项p2p网络连接判断,如果是 “服务器已连接” ,证明p2p网络未被封杀。
如果是“已进入穿透模式”则表明p2p网络被封杀,需要通过穿透模块完成资源搜索。
p2p未被封杀情况下,如何进入穿透模式
经过几个版本的改进,穿透模式下资源已经逐渐丰富。某些情况下,穿透模式效果甚至优于正常情况。如果在p2p网络正常想进入穿透模式,可以在软件安装目录下新建一个名为 woyaochuanyuetxt 的空白文档,重启软件即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13350394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存