基于FRP实现内网穿透

基于FRP实现内网穿透

一、FRP是什么?

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

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
  • 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

二、安装FRP

下载地址

https://github.com/fatedier/frp/releases

文档地址

https://gofrp.org/zh-cn/docs/reference/common/

根据部署环境下载对应的tar包

FRP对应程序介绍:

frpc:反向代理客户端应用,部署位置在需要进行内网穿透的机器

frps:反向代理服务端应用,部署位置在具备公网ip的服务器上

启动并命令

# 服务端启动命令
./frps -c ./frps.toml
# 客户端启动命令
./frpc -c ./frpc.toml

三、对应配置文件

frps.toml

# 服务端监听地址,用于接收 frpc 的连接,默认监听 0.0.0.0
bindPort = 7000
# HTTP 类型代理监听的端口,启用后才能支持 HTTP 类型的代理。
vhostHTTPPort = 8080
# 客户端需要设置一样的值才能鉴权通过
[auth]
token= 123456

frpc.toml

# 连接服务端的地址。
serverAddr = 
# 连接服务端的端口,默认为 7000。
serverPort = 7000
[auth]
# 鉴权token
token= 123456

# 代理配置
[[proxies]]
# 代理名称
name = "web"
# 代理类型,可选值为 tcp, udp, http, https, tcpmux, stcp, sudp, xtcp
type = "http"
# 被代理的本地服务端口
localPort = 80
# 自定义域名列表
customDomains = ["www.yourdomain.com"]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容