找了好久才发现FRP这款反向代理软件,并且支持内网穿透,不过需要一台具有公网IP的机器这点很重要。我是买了一台云服务器
做好了以上准备我们开始进行讲解(云服务器上安全规则已经开启了7000端口,7500端口 ,80端口,443端口):
1、FRP的介绍
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
其优点如下:
- 多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
- TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
- 代理组间的负载均衡。
- 端口复用:多个服务可以通过同一个服务端端口暴露。
- P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
- 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
- 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
- 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便
FRP的官网地址:frp
2、frp的工作原理:
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
(此图使用了 frp图解 附最新.toml配置文件 - 纯真丁一郎です - 博客园 作者提供的作品图片)
3、frps 安装
3.1 下载文件并解压 【本人目录为 /home/software】
执行命令 : wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -xzvf frp_0.61.0_linux_amd64.tar.gz #解压缩包
3.2 编辑配置文件
进入目录编辑 frps.toml
vim frps.toml
文件内容如下:
# 监听端口
bindPort = 7000
# 服务端将只接受 TLS链接
transport.tls.force = true
# 本地请求服务端连接身份认证
auth.method = "token"
# 身份认证连接密码
auth.token = "认证密码根据个人录入"
webServer.addr = "0.0.0.0"
#web面板
webServer.port = 7500 # frp后台端口
webServer.user = "自定义用户" # frp后台账号
webServer.password = "自定义密码" # frp后台密码
执行命令尝试启动:
./frps -c frps.toml
出现一下日志则标识服务启动成功
3.3 设置开机启动:
1、使用文本编辑器,本人是CentOS7 使用 vim 创建并编辑 frps.service,
文件路径与命令:
vim /etc/systemd/system/frps.service
编辑内容如下:
-----------------------------------------------------------------------------------------------文件开始
[Unit]
#服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
#启动frps的命令,安装路径为:/home/software/frp_0.61.0_linux_amd64 【根据实际编写】
ExecStart = /home/software/frp_0.61.0_linux_amd64/frps -c /home/software/frp_0.61.0_linux_amd64/frps.toml
[Install]
WantedBy = multi-user.target
----------------------------------------------------------------------------------------------文件结束
2、启动操作frps:
2.1 启动frp : systemctl start frps
2.2 停止frp : systemctl stop frps
2.3 重启frp : systemctl restart frps
2.4 查看frp状态 :systemctl status frps
2.5 开机自启:systemctl enable frps
命令测试结果:
3、启动后 打开浏览器输入云服务器的地址