frp http转发

简介: 通过FRP实现HTTP转发,可以方便地将内网服务暴露到外网,解决了内网穿透问题。在实际应用中,通过合理配置FRP和增强安全措施,可以实现稳定、高效和安全的内网服务外网访问。


FRP HTTP转发

FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,用于内网穿透。它可以将内网服务暴露到外网,使得外网用户能够访问内网服务。本文将详细介绍如何使用FRP进行HTTP转发。

安装FRP

首先需要下载并安装FRP。可以从FRP的GitHub页面获取最新的发布版本。

下载FRP

  1. 前往FRP的发布页面下载适合你的操作系统的压缩包。
  2. 解压下载的压缩包,里面包含了 frps(服务端)和 frpc(客户端)两个可执行文件。

配置FRP服务端

FRP服务端负责接收外网请求并将其转发到内网。需要配置 frps.ini文件。

frps.ini 示例

[common]
bind_port = 7000

# Dashboard 配置(可选)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
​

将配置文件保存为 frps.ini,然后启动FRP服务端:

./frps -c frps.ini
​

配置FRP客户端

FRP客户端用于将本地服务映射到FRP服务端。需要配置 frpc.ini文件。

frpc.ini 示例

假设我们要将本地的HTTP服务映射到外网,具体配置如下:

[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = yourdomain.com
​

在这个示例中:

  • server_addr 是FRP服务端的IP地址或域名。
  • server_port 是FRP服务端绑定的端口。
  • [web] 定义了一个名为“web”的代理服务,类型为 http
  • local_port 是本地HTTP服务监听的端口。
  • custom_domains 是用于访问本地服务的自定义域名。

将配置文件保存为 frpc.ini,然后启动FRP客户端:

./frpc -c frpc.ini
​

实现流程

  1. FRP服务端接收外部请求:FRP服务端在配置的 bind_port端口上监听来自外网的请求。
  2. FRP服务端将请求转发到FRP客户端:当接收到外部请求后,FRP服务端将请求转发到连接的FRP客户端。
  3. FRP客户端将请求转发到本地服务:FRP客户端接收请求,并将其转发到本地HTTP服务。
  4. 本地服务处理请求并返回响应:本地HTTP服务处理请求,并将响应通过FRP客户端传回给FRP服务端,再由FRP服务端返回给外部用户。

典型应用场景

  • 内网服务外网访问:通过FRP将公司内部的Web应用暴露到外网,方便远程办公。
  • 动态IP地址映射:家庭宽带等动态IP环境下,通过FRP实现稳定的外网访问。
  • 多服务代理:同时代理多个本地服务到外网,满足复杂业务需求。

安全性考量

为了确保安全性,可以在配置中添加身份验证、TLS加密等措施。

示例:启用身份验证

frps.ini中:

[common]
bind_port = 7000
token = your_secure_token
​

frpc.ini中:

[common]
server_addr = x.x.x.x
server_port = 7000
token = your_secure_token

[web]
type = http
local_port = 80
custom_domains = yourdomain.com
​

分析说明表

步骤 说明
下载并解压FRP 获取FRP的最新版本并解压
配置FRP服务端(frps.ini) 设置服务端监听端口及可选的Dashboard配置
启动FRP服务端 使用配置文件启动FRP服务端
配置FRP客户端(frpc.ini) 设置客户端连接信息及要代理的本地服务
启动FRP客户端 使用配置文件启动FRP客户端
实现HTTP转发 FRP服务端接收外部请求并转发至本地HTTP服务
安全性配置 添加身份验证和加密措施确保连接安全

思维导图

FRP HTTP转发

安装FRP

配置FRP服务端

配置FRP客户端

实现HTTP转发

安全性考量

设置bind_port

可选Dashboard配置

设置server_addr

设置local_port和custom_domains

启用身份验证

TLS加密

结论

通过FRP实现HTTP转发,可以方便地将内网服务暴露到外网,解决了内网穿透问题。在实际应用中,通过合理配置FRP和增强安全措施,可以实现稳定、高效和安全的内网服务外网访问。

目录
相关文章
|
网络协议 安全 网络安全
使用frp端口映射实现内网穿透(SSH、HTTP服务)
使用frp端口映射实现内网穿透(SSH、HTTP服务) 一、下载
|
域名解析 网络协议 应用服务中间件
快速搭建frp的ssh和http的内网穿透
快速搭建frp的ssh和http的内网穿透
快速搭建frp的ssh和http的内网穿透
|
Web App开发 新零售 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.尽可能地了解需求,系统层面适用开闭原则 2.模块化,低耦合,能快速响应变化,也可以避免一个子系统的问题波及整个大系统 3.
876 0
|
Java Apache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
hbase从集群中有8台regionserver服务器,已稳定运行了5个多月,8月15号,发现集群中4个datanode进程死了,经查原因是内存 outofMemory了(因为这几台机器上部署了spark,给spark开的...
940 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Found lingering reference异常 ERROR: Found lingering reference file hdfs://jiujiang1:9000/hbase/month_hotstatic/...
835 0
|
Web App开发 大数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
                                                                               1.
1890 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.HBase依赖于HDFS,HBase按照列族将数据存储在不同的hdfs文件中;MongoDB直接存储在本地磁盘中,MongoDB不分列,整个文档都存储在一个(或者说一组)文件中 (存储) 2.
855 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
PipeMapRed.waitOutputThreads(): subprocess failed with code X ,这里code X对应的信息如下:error code 1: Operation not perm...
1096 0
|
Web App开发 Apache
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
1017 0