frp技术

说明:frp(https://github.com/fatedier/frp) 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。(官方语)

本文介绍如何使用frp,借助阿里云公网IP访问内网应用。

下载

frp分客户端和服务器端,服务器端部署在有公网IP的阿里云服务器上,客户端部署在需要被穿透的内网设备上。

首先,去Github上(https://github.com/fatedier/frp/releases)下载程序包,我的阿里云服务器是CentOS 7,客户端设备是Windows系统,需要下载以下两个包。

一份留本地,一份上传到阿里云服务器上。

服务器端

花开两朵,各表一枝。先讲阿里云服务器上的这个,解压后如下:

frp程序包文件结构非常简单,解压后就这五个文件,两个执行程序,两个配置文件,分别对应客户端、服务器端,剩余一个是开源协议。

阿里云上我们只用得上frps,即frp服务器端,默认使用的端口是7000,输入./frps启动frp服务器。

客户端

frp客户端解压后如下

客户端只用启动frpc.exe,对应的配置文件内容如下:

properties 复制代码
serverAddr = "127.0.0.1"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

这个配置文件需要根据需要修改,其中

  • serverAddr,是阿里云公网IP;

  • serverPort,是阿里云上frps的绑定端口,默认7000;

  • localIP,是内网穿透的本地IP,设置127.0.0.1即可;

  • localPort,本地端口,与remotePort对应;

  • remotePort,远程端口,即部署frps的公网IP端口;

最后两个端口设置,表示使用阿里云公网IP:远程端口,映射的本地的什么端口。下面通过一个例子实践一下。

XXL-JOB

现在,我本地有个xxl-job-admin,可在浏览器上输入http://127.0.0.1:8080/xxl-job-admin/进入xxl-job任务调度中心,如下:

我现在用内网穿透技术frp,将这个应用通过阿里云公网IP映射出去,通过阿里云的公网IP访问到我本地内网下的这个xxl-job任务调度中心。

frpc配置文件frpc.toml设置如下:

properties 复制代码
serverAddr = "公网IP"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 6001

其中,最后两行表示使用公网IP:6001可访问到127.0.0.1:8080,设置完成后,输入下面的命令启动frpc.exe

powershell 复制代码
frpc.exe -c frpc.toml

启动完之后,使用http://公网IP:6001/xxl-job-admin/访问xxl-job任务调度中心,如下:

(注:如果无法访问,需考虑阿里云服务器7000、6001端口是否已开放)

大功告成,这个地址发给其他人,其他人就能访问你本地内网的xxl-job任务调度中心了。

总结

本文介绍了如何使用frp,实现内网穿透,借助公网IP访问内网的xxl-job任务调度中心。除此之外,如果你和前端同事联调接口,但是你们不在同一个网络下,网络不通,就能通过这种方式,配置一个公网IP地址给前端,这样就可以访问了,当然前提是你需要有一个有公网IP的服务器。

更多参考frp中文文档:https://gofrp.org/zh-cn/docs/

本文参考:使用frp实现内网穿透教程

相关推荐
岳不谢19 分钟前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为
follycat28 分钟前
信息收集--CDN绕过
网络·安全·网络安全
宛唐羁客2 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
Beekeeper&&P...2 小时前
web钩子什么意思
前端·网络
清风.春不晚3 小时前
shell脚本2---清风
网络·网络安全
枫叶丹43 小时前
【在Linux世界中追寻伟大的One Piece】手写序列化与反序列化
linux·运维·网络
C++忠实粉丝4 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp
添砖java_8574 小时前
UDP数据报套接字编程
网络·网络协议·udp
9527华安4 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
风走茶未凉5 小时前
转置卷积与全卷积网络FCN在语义分割中的应用
网络·深度学习·cnn