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
系统的升级涉及各个架构组件,细节很多。常年累月的修修补补使老系统积累了很多问题。 系统升级则意味着需要repair之前埋下的雷,那为何还要升级,可以考虑以下几个方面 成熟老系统常见问题: 1. 缺乏文档(这应该是大小公司都存在的问题。
627 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
Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block  解决办法:Hbase侧配置的dfs.socket.timeout值过小,与DataNode侧配置的 dfs.socket.timeout的配置不一致,将hbase和datanode的该配置调成大并一致。
804 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
Every Programmer Should Know These Latency Numbers 1秒=1000毫秒(ms) 1秒=1,000,000 微秒(μs) 1秒=1,000,000,000 纳秒(ns) 1秒=1,000,000,000,000 皮秒(ps) L1 cache reference .
652 0
|
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
java链接MongoDB处理大量数据时经常碰到cursor not found 的异常,其实是超时所致 Exception in thread "main" com.
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
负载均衡: LVS(Layer 4), HAProxy(Layer 4、 7),Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存...
764 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
从hadoop移除机器把需要移除的机器增加到exclueds文件中,强制刷新datanode列表,等待decommission 状态正常后,即可停机下架,如有必要在namenode执行balancer操作。
686 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
可伸缩系统的架构经验 Feb 27th, 2013 | Comments 最近,阅读了Will Larson的文章Introduction to Architecting System for Scale,感觉很有价值。
2220 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
基于大数据的精准营销与应用场景 2015年08月11日 大数据 大数据营销时代来临营销学领域过去半个多世纪的发展让我们见证了从“以产品为中心”到“以客户为中心”的转变。
922 0