一个非常棒的内网穿透工具

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

我在开发微信公众号时用到了,当我们调试公众号消息时,需要用到公网环境,如果没有内网穿透,微信公众号消息就无法送达到我们的服务,如果你没有公网服务器,我以前写过一篇文章,是使用 ngrok 调试微信公众号开发的。这次我们讲下,使用 frp 实现内网穿透服务。

我先讲下为何使用 frp?

首先,我们看下 frp 的特性。它通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
 
  • 客户端服务端通信支持 TCP 、 QUIC 、 KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
  • 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP 、 SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

然后,我讲下我的现场环境,我有一台公网云服务器,这台服务器运行我的公众号服务,现在我要在本地开发公众号服务并进行调试。我需要借助服务器的公网环境。如果你没有公网云服务器,你想要一台公网云服务器,从下面的链接购买有优惠。

 

想在阿里云购买,请使用这个链接:

https://www.aliyun.com/minisite/goods?userCode=zrqh6alb

想在腾讯云购买,请使用这个链接:

https://curl.qcloud.com/XX6que5w

通过以上链接购买,有很大优惠。

现在,我讲下如何安装配置 frp 。

frp 采用 Golang 语言编写,支持跨平台,只需下载适合的二进制文件即可执行,无需额外依赖。可以在项目的 Release 中进行下载。我们需要将 frpc 复制到您的内网主机,将 frps 复制到您的拥有公网 IP 的服务器上。

我们以微信公众号开发环境为例来进行配置。

一、在你的本地内网主机,配置 frpc.toml 文件。

serverAddr = "x.x.x.x"serverPort = 7000
[[proxies]]name = "test_htts2http"type = "https"customDomains = ["test.yourdomain.com"]
[proxies.plugin]type = "https2http"localAddr = "127.0.0.1:80"
# HTTPS 证书相关的配置crtPath = "./server.crt"keyPath = "./server.key"hostHeaderRewrite = "127.0.0.1"requestHeaders.set.x-from-where = "frp"

注意:

1,HTTP SSL 证书可以使用阿里云、或腾讯云的免费 SSL 证书,可以使用 3 个月。

2,它还需要 https2http 插件,它可以将本地 HTTP 服务转换为 HTTPS 服务,以供外部访问。

3,需要将 test.yourdomain.com 域名解析到你的公网 IP 上,即 serverAddr 对应的 IP 地址。

二、在你的公网服务器上,配置 frps.toml 文件。

bindPort = 7000vhostHTTPSPort = 443

注意:bindPort 是 frpc 客户端连接的端口,vhostHTTPSPort 是对外提供 HTTPS 服务的端口。您需要将服务器的防火墙放开 7000 和 443 端口。

三、启动服务

我们需要分别启动 frps 和 frpc,启动命令如下:

./frps -c ./frps.toml./frpc -c ./frpc.toml

四、访问 HTTPS 服务

打开您的 Web 浏览器,访问 https://test.yourdomain.com 。就可以访问您的内网服务了。微信公众号开发则需将域名地址配置到公众号管理后台。然后本地就可以进行公众号开发调试了。

frp 除了可以支持处理 HTTP 服务外,还支持其它多种服务。我觉得其中不错的功能还有处理 SSH 服务,可以配置 frp 实现通过公网访问内网 SSH 服务,这个可以用在家里的小主机上,可实现远程访问内网服务器。我还使用 frp 进行过集成支付宝联调。 frp 还有一些其它应用场景,可能你会用到。想要了解更多的内容请查看 frp 项目地址:

https://github.com/fatedier/frp

最后,发个推荐:
豆子工具是一个微信小程序,内含 IP 地址查询、音频格式转换、网络调试等工具。欢迎浏览收藏。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

《一个非常棒的内网穿透工具》留言数:0

发表留言