frp服务配置及应用

frp服务配置及应用


前言

提示:部署frp服务需要有公网IP(固定IP或者动态IP)


一、frp是什么?

frp官网:https://gofrp.org/
github主页:https://github.com/fatedier/frp

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

frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。

以上摘自frp官网。更多信息请查阅官方页面。

二、为什么使用 frp ?

以下引自frp官网

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

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

三、原理及概念

原理

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP
的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。 内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。
用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。

代理

在 frp 中一个代理对应一个需要暴露的内网服务。一个客户端支持同时配置多个代理。

代理类型

frp 支持多种代理类型来适配不同的使用场景。

类型描述
tcp单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
udp单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
http针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。
https针对 HTTPS 应用定制了一些额外的功能。
stcp安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
xtcp点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。
sudp安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
tcpmux支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。

功能特性

https://gofrp.org/docs/features/

四、安装部署

参考项目官网即可 https://gofrp.org/docs/setup/

五、配置实例

5.1 frps配置

5.1.1 公网IP配置

  1. frps所在主机直接接入公网
    网络拓扑如下:

    互联网
    frps主机
    主机1
    ......
    主机n

    这部分没啥重点,主要分2种情况:
    - 公网IP是固定的,直接使用即可。
    - 公网IP是动态变化的,需要使用DDNS服务,将变化的IP,解析到指定的域名上。

  2. frps所在主机位于局域网内 多数属于这种网络
    在这种情况下,我们按照最简单的情况为例:frps主机位于主路由器下。网络拓扑如下:

    互联网
    主路由器
    frps主机
    主机1
    ......
    主机n

    此时主路由器 必须 有公网IP(固定IP或者动态IP均可,DDNS解析看情况配置),然后在主路器由上设置虚拟服务器,将frps及frpc所使用的端口映射到主路由器的外部端口上,并且要设置frps主机的防火墙规则。具体设置参看下一章节。

5.1.2 端口配置

frps和frpc通信,需要指定一个固定的接收客户端连接的端口,假设端口是11111;同时如果frp客户端使用了remote_port,假设端口号为22222,则需要在frps主机上设置允许上述端口的流量进入,如果frps主机在内网中,则需要同时设置虚拟服务器,将上述端口映射到frps主机。其他更详细的端口设置参考官网:示例 以及 服务端详细配置参考

5.2 frpc配置

参考示例
客户端详细配置参考
代理配置参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值