使用FRP进行内网穿透实现远程访问

温馨提示:本文最后更新于2025-05-02 00:20:00,某些文章具有时效性,若有错误或已失效,请在文末评论区留言

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

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

内网穿透原理

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

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

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

图片[1]-使用FRP进行内网穿透实现远程访问-十一张

FRP是什么

FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 FRP 工具,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

开源仓库:https://github.com/fatedier/frp

FRP特性

通过在具有公网 IP 的节点上部署 FRP 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:

多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
●代理组间的负载均衡。
端口复用:多个服务可以通过同一个服务端端口暴露。
P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。

FRP下载

FRP 分为两个部分:服务端(frps)、客户端(frpc)。

服务端(frps):一般部署在公网服务器上,例如:阿里云、腾讯云 等。
客户端(frpc):部署在需要穿透的客户端,例如:NAS、软路由 等。

下载地址:https://github.com/fatedier/frp/releases

访问 GitHub 开源仓库不方便的童鞋,可以从我的网盘下载:

●普通下载:https://url57.ctfile.com/d/16898257-67240600-69c433?p=1140,访问密码:1140
●其它网盘:

请根据自己的系统架构选择合适版本下载,例如,我的服务器是 x86-64 的 CentOS 系统,因此,下载的 FRP 版本是 frp_0.62.1_linux_amd64.tar.gz,如下图。

图片[2]-使用FRP进行内网穿透实现远程访问-十一张

FRP目录结构

从 v0.52.0 版本开始,FRP 开始支持 TOML、YAML 和 JSON 作为配置文件格式。INI 已被弃用,并将在未来的发布中移除。新功能只能在TOML、YAML 或 JSON 中使用,希望使用这些新功能的用户应相应地切换其配置格式。

通过 FRP 开源仓库地址下载 FRP 工具,FRP 的服务端(frps)和客户端(frpc)都在一个压缩包中。

FRP 解压后文件说明:

文件
说明
作用
frps
服务端核心程序
服务端(Server)的可执行文件,运行在具有公网 IP 的服务器上
frps.toml
服务端配置文件
服务端的配置文件,同样使用 TOML 格式
frpc
客户端核心程序
客户端(Client)的可执行文件,运行在需要穿透的内网设备上
frpc.toml
客户端配置文件
客户端的配置文件,使用 TOML 格式编写
LICENSE
许可证文件
frp 的开源许可证文件,说明软件的使用条款
图片[3]-使用FRP进行内网穿透实现远程访问-十一张

frps(服务端)部署

下面,十一张(www.11zhang.com)来演示一下如何在 CentOS 系统上部署 FRP 服务端。

1、将下载好的 Linux 版本 FRP 压缩包(如 frp_0.62.1_linux_amd64.tar.gz) 上传到 /root 目录,或者使用 wget 命令直接下载 FRP 的压缩包到 /root 目录,如下图;

cd root
wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz
图片[4]-使用FRP进行内网穿透实现远程访问-十一张
图片[5]-使用FRP进行内网穿透实现远程访问-十一张

2、使用以下命令解压 FRP 压缩包,如下图:

tar xvf frp_0.62.1_linux_amd64.tar.gz
图片[6]-使用FRP进行内网穿透实现远程访问-十一张

3、进入解压后的 FRP 目录;

cd frp_0.62.1_linux_amd64
图片[7]-使用FRP进行内网穿透实现远程访问-十一张

4、在解压后的 FRP 目录中,你会找到一个 frps.toml 文件,这是 FRP 服务端的配置文件。你需要根据实际需求编辑这个文件,以下是一个基本的 frps.toml 配置示例:

# ========== 服务端配置 ==========
auth.method = "token"
auth.token = "abcd1234"
bindAddr= "0.0.0.0"
bindPort = 7000
vhostHTTPPort = 8123

# ========== 仪表盘设置 ==========
webServer.addr = "172.16.0.3"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "11zhang"
图片[8]-使用FRP进行内网穿透实现远程访问-十一张

PS:以上配置仅保证基本用法,一般场景也够用了!高级用法请自行查看官方配置文件说明,根据需求进行调整。若需要站长协助设置的,可联系站长微信(a328695615)有偿服务!frps.toml 配置文件说明:https://gofrp.org/zh-cn/docs/reference/server-configures/

5、在配置好 frps.toml 文件后,你可以通过以下命令启动 FRP 服务端:


./frps -c ./frps.toml
图片[9]-使用FRP进行内网穿透实现远程访问-十一张

PS:出现如上图所示表示启动成功。

6、如果你在 CentOS 上使用了防火墙(例如 firewalld),你还需要允许 7000、7500 等端口通过防火墙;

frps(服务端)设置开机启动

通过遵循上述步骤,您可以轻松地使用 systemd 来管理 frps 服务,实现启动、停止、自动运行和开机自启动。确保替换路径和配置文件名称以匹配您的实际安装。

另外,我们可以通过以下命令获取 frps 使用的端口号,如下图;

netstat -pant | grep frps | grep LISTEN
图片[10]-使用FRP进行内网穿透实现远程访问-十一张

frpc(客户端)运行

frpc(客户端)运行有两种方式,分别是使用原版frpc客户端和frpc-desktop客户端,自行选择合适的方式。

1、原版frpc客户端

下面十一张(www.11zhang.com)在 Windows 客户端上演示以下运行 FRP 客户端。同样,你也需要下载并配置 FRP 客户端,FRP 客户端的配置通常包括指向服务端的地址和端口,以及需要转发的服务信息,以下是一个基本的 frpc.toml 配置示例:

# ========== 服务端配置 ==========
serverAddr = "116.198.204.6" 
serverPort = 7000
auth.method = "token"
auth.token = "abcd1234"
loginFailExit = false

[[proxies]]
name = "RDP"
type = "tcp"
localIP = "192.168.50.63"
localPort = 3389
remotePort = 8789

[[proxies]]
name = "web"
type = "http"
localIP = "192.168.50.63"
localPort = 8123
customDomains = ["116.198.204.6"]
图片[11]-使用FRP进行内网穿透实现远程访问-十一张

备注:frpc(客户端)的配置,请根据自己的需求进行调整。若需要站长协助设置的,可联系站长微信(a328695615)有偿服务!frpc.toml 官方配置文件说明:https://gofrp.org/zh-cn/docs/reference/client-configures/

2、在 Windows 客户端上配置好 frpc.toml 文件参数之后,我们需要启动 FRP 客户端,步骤:先打开 frp 文件夹,在上面的目录地址栏中输入 cmd 后回车,然后输入以下命令启动;

frpc -c frpc.toml
图片[12]-使用FRP进行内网穿透实现远程访问-十一张
图片[13]-使用FRP进行内网穿透实现远程访问-十一张

PS:出现如上图所示表示启动成功,我录了一个启动 FRP 客户端的动画,操作看起来会流畅一点!

图片[14]-使用FRP进行内网穿透实现远程访问-十一张

3、使用 Windows 系统远程桌面连接测试一下,输入“域名/IP+端口”即可访问内网机器上的 3389 端口服务,如下图。

图片[15]-使用FRP进行内网穿透实现远程访问-十一张

2、frpc-desktop客户端

frpc-desktop客户端的运行,请移步之前的文章,此处省略!

© 版权声明
THE END
如果觉得这篇文章对您有帮助,可以收藏本网址,方便下次访问!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容