内网穿透frp之进阶配置——stcp与p2p模式配置

内网穿透frp之进阶配置——stcp与p2p模式配置,第1张

Frp的TCP模式问题,这里主要存在2个问题。

试想一下,frp的tcp模式相当于你的设备直接向公网暴露了一个tcp端口。任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。

我的所有请求都需要进行frp的服务器进行中转,这里势必会造成比较大的网络延时。以及耗掉服务器流量,这对我们的服务响应速度和经济价值会造成较大影响。

对于安全问题,frp的思路是,既然这些服务有可能被坏人攻击,那我们只要限制特定设备能够使用这个端口就好了。

那么问题来了,我怎么知道哪些设备是允许使用的呢?

服务端配置?那就又陷入了内网穿透的问题。

最简单的方法是使用密钥验证。这就是frp的Secret TCP(stcp)模式的思路。

如下图所示,frp客户端1需要暴露一个tcp端口。于是他在向服务端注册时,额外传了一个密钥。

所有其他设备期望访问这个端口,必须要先验证这个密钥。

这样一来,我们就需要在发起请求的设备上也配置一个frp客户端,通过这个客户端带着密钥发起请求。
# frpcini 配置:

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp]

type = stcp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

local_ip = 127001

# 远程桌面的本地端口号

local_port = 3389

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp_visitor]

type = stcp

# stcp 的访问者

role = visitor

# 要访问的 stcp 代理的名字

server_name = rdp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

# 绑定本地端口用于访问 远程桌面 服务

bind_addr = 127001

bind_port = 6000

此时,你在客户端2,使用127001:6000即可访问客户端1的远程服务。
思考一下,我们的frp服务器主要目的是为了解决两台设备相互识别的情况。在正式运行时,其实并不需要服务端做什么事情。

frp客户端就好比两个相亲的对象,frp服务端是媒婆。媒婆介绍完之后,就应该有相亲对象自己聊天了。

这个就是点对点模式(p2p)。在frp中,这个可以通过设置xtcp实现。

服务端:配置需要增加一个udp端口 7001,增加完之后就是如下

# frpsini

[common]

bind_port = 7000

bind_udp_port = 7001

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp]

type = xtcp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

local_ip = 127001

# 远程桌面的本地端口号

local_port = 3389

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp_visitor]

type = xtcp

# stcp 的访问者

role = visitor

# 要访问的 stcp 代理的名字

server_name = rdp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

# 绑定本地端口用于访问 远程桌面 服务

bind_addr = 127001

bind_port = 6000
此时,你在客户端2,使用同样的方式,以127001:6000即可访问客户端1的远程服务。

不过需要注意的是,目前frp的p2p服务还不完善,很多nat设备还是不能够穿透的。

此时大家还是需要切换回stcp来使用。

受到新冠疫情影响,很多企业都开始了远程居家办公,最近一年我们一直在尝试远程协作,也积累了一些经验。今天就来捋一捋远程办公需要用到的技术和产品。首先所有的远程访问工具都离不开一个基本的技术,它就是内网穿透,提到内网穿透,相信小伙伴们有些一知半解,到底什么是内网穿透呢!什么情况下需要内网穿透呢!接下来给大家简单的述说一下原理,内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。
总体来说,主要是用于没有公网IP ,同时并且需要别的局域网能够访问到自己家或公司的,电脑或服务器上的项目,比如公司OA办公软件、CRM、ERP 等,使用起来非常方便。

目前市面上常见的一共分为 二大类别,一种是自营并拥有自己的核心技术,第二种就是网友平时利用空余的时间自己个人开发的一种开源项目。

先说一下,目前做的比较好自营的。

神卓互联

神卓互联-采用自主研发的 WanGooe Tunnel 通信协议,WanGooe Tunnel通信协议采用C语言开发,支持高可用,低内存消耗,支持热部署,单机支持百万并发,拥有自己的核心引擎具有无需公网IP,搭建速度快等特点,自营且可长期运行使用。

优点:运行速度快、稳定可靠,使用比较方便,有完善售后支持,很多企业用户在使用,主要客户包括中国科学院空天信息研究院、紫金山天文台、南方电网、国防科技大学、徐州重工集团、江西省气象局等。

优点2:安全性比较高,自动识别和拦截境外恶意访问请求,能智能识别威胁请求,保证用户访问安全。
图示为神卓互联客户端截图,来自于网络。
花生壳

花生壳拥有自己的核心技术,让应用无需公网IP也能随时访问,支持>

FRP工具采用C/S模型,将FRP服务端部署在具有固定公网IP的机器上,FRP客户端部署在内网机器上,通过访问暴露在服务端上的端口,反向代理到位于内网的服务。在此基础上,FRP支持 TCP、UDP、>运行环境:

1阿里云服务器做frp服务器

2路由器做frp客户端。

  在被动方式FTP中,命令连接和数据连接都由客户端发起。FRP映射内网服务器的21端口,和至少1个数据传输端口,数据端口貌似不能太大(我用50000不可以),如25840-25842即可。

路由器设置被动端口范围。

所以需开启阿里云安全组端口25840/25842。
本地frp客户端配置文件参考:

运行frp :
现在就可以通过服务器ip:2121连接到内网ftp服务器了。

frp内网穿透的需求现在非常大。原因如下:
首先,从技术上来说,frp内网穿透技术可以帮助用户方便地远程访问家庭或公司的设备,比如远程访问家庭路由器、监控摄像头、服务器等。这对于需要远程办公、远程监控、远程管理设备的用户来说非常方便,可以大大提高工作效率和便捷性。
其次,从市场需求来说,随着越来越多的企业和个人开始将自己的业务托管在云服务器上,内网穿透技术也逐渐成为了必备技能。内网穿透技术可以帮助企业或个人将内部的服务或应用快速、安全地对外发布,这对于企业或个人的业务拓展和发展具有非常重要的意义。
此外,随着物联网技术的不断发展,越来越多的设备需要通过互联网进行远程控制和访问,内网穿透技术也成为了物联网领域中不可或缺的一部分。因此,可以预见,未来frp内网穿透技术的需求会越来越大。
总之,随着人们对远程访问和远程管理的需求不断增加,frp内网穿透技术的需求也会随之而来。

使用frp,至少需要一台有公网IP的服务器,一台需要实现内网穿透的机器,SSH工具,以及一个域名(如果只是建立SSH反向代理则不需要域名)。
其实访问NAS的没这必要太麻烦了,用花生壳DDNS不就行了,或是他们家的蒲公英异地组网也可以,简单很多。

对于frp特殊网址的配置,首先要确定frp服务器的地址以及端口。然后,在服务器的配置文件中添加一个子域名映射,如“vpsmyservercom”,将其指向服务器的IP地址,使用特定端口提供外网访问服务,比如“8080”。最后,访问你设定的特殊网址,即可连接到服务器


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

原文地址:https://54852.com/zz/10421037.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存