问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

不再受限!详解FRP内网穿透,让远程访问变得简单!

创作时间:
作者:
@小白创作中心

不再受限!详解FRP内网穿透,让远程访问变得简单!

引用
CSDN
1.
https://blog.csdn.net/sinat_28521487/article/details/141889491

内网穿透是许多技术人员在工作中经常遇到的需求,无论是远程访问服务器还是实现设备互联,都需要一个稳定可靠的解决方案。FRP(Fast Reverse Proxy)作为一款高性能的反向代理应用,专注于内网穿透,支持多种协议,包括TCP、UDP、HTTP、HTTPS等,并且具备P2P通信功能。本文将详细介绍FRP的工作原理、安装配置步骤以及使用场景,帮助你轻松实现内网服务的公网访问。

工作原理

FRP的基本工作流程如下:

  • 客户端(frpc):部署在内网中,负责将内网服务通过FRP协议发送到公共服务器。
  • 服务器(frps):部署在外网中,接收来自客户端的数据,并将请求转发到相应的内网服务。

当外网用户访问公共服务器上的特定端口时,FRP服务器会将请求转发给相应的FRP客户端,从而实现对内网服务的访问。

FRP的优点

  • 高性能:FRP对流量进行了优化,支持高并发连接。
  • 配置灵活:支持多种协议,且可以对不同服务进行不同的配置。
  • 开源免费:FRP 是一款开源软件,用户可以根据需要自由修改和使用。

FRP的安装与配置

接下来我们将介绍如何在你的服务器和内网设备上安装和配置FRP。所以,要使用 FRP 实现内网穿透,首先需要拥有一台 VPS。关于如何选择和购买 VPS,请参考这篇文章。

环境准备

在开始之前,你需要准备以下环境:

  • 一台公网服务器(用于部署FRP服务器),本案例是采用ubuntu的系统。具体的版本如下所示
  • 一台内网设备(用于部署FRP客户端),内网的机器我采用的是pve系统,具体版本如下所示:

服务器端(frps)安装与配置

FRP 服务端(frps)的安装方式多种多样,您可以选择使用二进制文件或 Docker 进行部署。

二进制部署

通过github获取最新版文件下载,如下图所示:

登录系统后,切换到指定目录。在本例中,我选择了opt目录。

cd /opt

下载frp文件,将wget后面的连接换下最新版本。

wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz

下载完成后执行下面的命令解压文件

sudo tar -zxvf frp_0.60.0_linux_amd64.tar.gz

执行下面的命令对frp应用重命名:

mv frp_0.60.0_linux_amd64 frp_0.60.0

文件介绍:

  • frps:服务端启动文件。
  • frps.toml:服务端的配置文件。

所以,服务端只需要留下frps和frps.toml即可。编辑frps.toml,完成的配置文件选项可访问官方模板。

bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"  # 用于客户端和服务器通信的身份验证令牌
auth.token = "user1@1234"   #秘钥格式建议配置 用户+@+密码 的格式,方便区分用户
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "user"      #管理面板的用户
webServer.password = "密码"  #管理面板的密码
# tls
#transport.tls.force = true
#transport.tls.certFile = "/etc/frp/ssl/server.crt"
#transport.tls.keyFile = "/etc/frp/ssl/server.key"
#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"

配置服务端systemd管理frp,执行下面的命令创建frps.service文件。

vim /etc/systemd/system/frps.service

并在该文件写入如下内容:

[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frp_0.60.0/frps -c /opt/frp_0.60.0/frps.toml
[Install]
WantedBy = multi-user.target

执行下面的命令启用开机自器和启动服务。

systemctl enable frps && sudo systemctl start frps

检查服务是否正常,使用如下命令查看,如果服务异不是active请检查日志。

systemctl status frps

1Panel部署

如果觉得上面的二进制部署方式复杂,可以尝试使用1Panel部署。由于我的VPS已经安装了1Panel,可以直接通过1Panel轻松安装frps。

  • 打开1panel应用商店,直接找到frp服务端,安装
  • 部署完成如下图所示:
  • 认证方式,默认是token,token的设置和获取,在应用市场、已安装,点进入安装目录按钮。

客户端安装配置

客户端只需要留下frpc和frpc.toml文件。编辑frpc.toml,并在该文件添加如下内容:

serverAddr = "x.x.x.x"  #VPS服务器的IP地址(公网IP)
serverPort = 7000       #frps服务端口,对于的上面的frps配置文件bindPort的值
auth.method = "token"
auth.token = "token"   #frps服务认证token,对于的上面的frps配置文件auth.token的值
[[proxies]]
name = "pve-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 1022

上述[[proxies]]代码块的意思是把本地的22端口,通过公网IP的1022端口进行转发。说明白一点就是通过公网的1022端口即可访问内网的本机的22端口。

注意:

  • 这个1022端口需要在VPS的防火墙上进行放通。

配置客户端systemd管理frpc,执行下面的命令创建frpc.service文件。

vim /etc/systemd/system/frpc.service

并在该文件添加如下内容:

[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/frp/frpc/frpc -c /usr/local/frp/frpc/frpc.toml
[Install]
WantedBy = multi-user.target

执行下面的命令启用开机自器和启动服务。

systemctl enable frpc && sudo systemctl start frpc

执行下面的命令检查客户端状态是否正常,如果服务异不是active请检查日志。

systemctl status frpc

访问管理web

默认看板只监听本地 127.0.0.1 地址,如果你通过内网地址请修改webServer.addr = "x.x.x.x"配置字段。

总结

通过本文的介绍,相信你已经对FRP有了较为全面的了解。从基本的安装配置到高级功能的使用,FRP都能满足你不同场景下的内网穿透需求。如果你正在寻找一款高效、易用的内网穿透工具,FRP无疑是一个非常不错的选择。赶快动手试试吧,让你的远程访问不再受限!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号