[必须]标识头
[common]
是不可或缺的部分
[必须]frps服务端IP
server_addr = 0.0.0.0
0.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务端的服务器(VPS)IP。
[必须]frps服务端通讯端口
server_port = 7000
客户端连接到服务端内网穿透传输数据的端口,请改为服务端已配置的对应端口。
[必须]连接认证密钥-特权模式
privilege_token = www.nat.ee
客户端连接到FRP服务端的登录验证密钥,请改为服务端已配置的对应密钥。
记录运行日志
日志存放路径
log_file = /etc/frp/log/frps.log
请改为需要存放在那里的正确路径。
日志记录类别
log_level = info
可选:trace, debug, info, warn, error
最多保存多少天日志
log_max_days = 7
可自定义保存多少天。
你的内网穿透名称,将显示为 {名称}.{对应服务名称}
user = your_name
请填大小写字母和数字,不要用中文填写。
决定第一次登录失败时是否退出程序,否则连续登录到frps服务端
login_fail_exit = true
可选:false,true
默认是true,否则可以不填此参数或者改为false,则持续连接登录到frps而不退出。
用于连接frps服务端的通讯协议
protocol = tcp
支持tcp和kcp,默认是tcp
注意:kcp需要服务端配置参数已开启,才支持。
使用tcp流复用,默认为true
tcp_mux = true
可选:false,true
必须与frps服务端已经配置参数相同,否则服务端没有,可以不填此参数。
内网穿透服务限制最大连接池上限
pool_count = 5
限制本客户端内网穿透可以创建的总连接池上限,避免大量资源占用。可自定义。默认为0不限制,或者不填此参数。
注意:假如服务端已配置了限制,而你设置的高于服务端的,则按服务端的为准采取限制。
通过http api设置管理frpc动作的管理地址,例如reload
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

【上面用于总体对接frps服务端各参数,下面的用于客户端穿透各应用的配置参数。】

对应穿透服务名称
[name]
建立每个穿透服务,都需要命名一个此服务的名称,不能和其他已建立的相同。
穿透协议类型
type = tcp
可选:tcp,udp,http,https,stcp,xtcp
你要穿透什么应用要搞清楚,此应用是用什么协议的。
本地监听IP
local_ip = 127.0.0.1
可以是本地的局域网IP,也可以是本机的127.0.0.1 IP,
例如你的局域网是互通的,你可以在本设备建立穿透局域网其他IP的应用。
本地监听端口
local_port = 22
用于监听本地设备需要穿透的端口,比如我要穿透到本机的SSH端口,而SSH端口为22,则这样理解。
远程监听端口
remote_port = 6001
用于frps服务端的,分配建立穿透到内网对应应用的公网端口。
需要frps服务端已开放此端口给frpc客户端允许对接使用。
例如我可以连接到此(frps服务端IP:端口),则可以穿透到我的内网对应应用服务。
穿透通讯加密
use_encryption = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯加密。
穿透通讯压缩
use_compression = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯压缩。
分配自定义域名访问穿透服务
custom_domains = demo.com
用于你的穿透服务的唯一访问域名,假如没有域名,则此处请填为frps服务端的服务器(IP)
自己有多个域名,可以配置不同穿透应用服务,用不同域名,只需要将对应域名解析到frps服务端的服务器(IP)既可。
也支持泛解析识别,例如将(demo.com)域名已经泛解析到frps服务端的服务器(IP)
而想通过(abc123.demo.com)访问到对应穿透服务
则在对应穿透服务,custom_domains参数中填abc123.demo.com
分配对应穿透应用服务唯一的子域名,用于访问
subdomain = abc123
假如frps服务端已经配置了subdomain_host参数域名,并且已经泛(*)解析到frps服务端的服务器(VPS)IP,则可以使用此参数,否则不能用。
例如已经泛解析(demo.com)域名并且frps服务端配置好的,使用此subdomain参数,只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,则可以通过(abc123.demo.com)访问
为HTTP协议,添加HTTP用户名和密码安全认证
http_user = admin
自定义用户名
http_pwd = admin
自定义密码
仅支持http,https类型协议。
例如我的WEB页面,访问前,需要进行验证,才可以访问。可以添加此参数。
安全地暴露内网服务
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
sk = abcdefg
可自定义
此参数用于进一步验证,本地访问穿透服务的安全连接,需要双方frpc客户端都需要配置,仅适用于stcp和xtcp协议类型。

修改 Host Header
通常情况下 frp 不会修改转发的任何数据。但有一些后端服务会根据 http 请求 header 中的 host 字段来展现不同的网站,例如 nginx 的虚拟主机服务,启用 host-header 的修改功能可以动态修改 http 请求中的 host 字段。该功能仅限于 http 类型的代理。
frpc.ini
[web]
type = http
local_port = 80
custom_domains = test.yourdomain.com
host_header_rewrite = dev.yourdomain.com
原来 http 请求中的 host 字段 test.yourdomain.com 转发到后端服务时会被替换为 dev.yourdomain.com。
URL 路由
frp 支持根据请求的 URL 路径路由转发到不同的后端服务。
通过配置文件中的 locations 字段指定一个或多个 proxy 能够匹配的 URL 前缀(目前仅支持最大前缀匹配,之后会考虑正则匹配)。例如指定 locations = /news,则所有 URL 以 /news 开头的请求都会被转发到这个服务。
frpc.ini
[web01]
type = http
local_port = 80
custom_domains = web.yourdomain.com
locations = /
[web02]
type = http
local_port = 81
custom_domains = web.yourdomain.com
locations = /news,/about
按照上述的示例配置后,web.yourdomain.com 这个域名下所有以 /news 以及 /about 作为前缀的 URL 请求都会被转发到 web02,其余的请求会被转发到 web01。
通过代理连接 frps
在只能通过代理访问外网的环境内,frpc 支持通过 HTTP PROXY 和 frps 进行通信。
可以通过设置 HTTP_PROXY 系统环境变量或者通过在 frpc 的配置文件中设置 http_proxy 参数来使用此功能。
仅在 protocol = tcp 时生效
frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:pwd@192.168.1.128:8080
插件
默认情况下,frpc 只会转发请求到本地 tcp 或 udp 端口。
插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5。
通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
plugin_http_user 和 plugin_http_passwd 即为 http_proxy 插件可选的配置参数。
范围端口映射
在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。
这一功能通过 range: 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。
例如要映射本地 6000-6005, 6007 这6个端口,主要配置如下:
frpc.ini
[range:test_tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6006,6007
remote_port = 6000-6006,6007

实际连接成功后会创建 6 个 proxy,命名为 test_tcp_0, test_tcp_1 ... test_tcp_5。

五、frp内网穿透客户端frpc.ini各配置参数详解的更多相关文章

  1. 四、frp内网穿透服务端frps.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]服务器IPbind_addr = 0.0.0.00.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中 ...

  2. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  3. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...

  4. 树莓派FRP内网穿透及自启动

    内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...

  5. frp 内网穿透访问内网Web服务

    ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...

  6. frp内网穿透学习

    前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...

  7. frp内网穿透实战

    什么是frp frp是一个使用非常简单的开源内网穿透软件,代码地址:https://github.com/fatedier/frp ,使用条前提你需要有一台公网服务器,大致原理是:公网服务器监听某个端 ...

  8. 【网络】内网穿透方案&FRP内网穿透实战(基础版)

    目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...

  9. frp内网穿透

    原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...

随机推荐

  1. 数论之欧几里德gcd

    序:这篇博客我最开始学的时候写的,后来又学了一遍,自我感觉这篇好像有问题,扩展欧几里得建议走这边 首先先说,欧几里德一共有俩,欧几里德和扩展欧几里德,前者非常简单,后者直接变态(因为我太菜) gcd ...

  2. .net webapi 实现 接口版本控制并打通swagger支持

    我们在开发 webapi 项目时如果遇到 api 接口需要同时支持多个版本的时候,比如接口修改了入参之后但是又希望支持老版本的前端(这里的前端可能是网页,可能是app,小程序 等等)进行调用,这种情况 ...

  3. 动手实践丨手把手教你用STM32做一个智能鱼缸

    摘要:本文基于STM32单片机设计了一款基于物联网的智能鱼缸. 本文分享自华为云社区<基于STM32+华为云IOT设计的物联网鱼缸[玩转华为云]>,作者: DS小龙哥 . 1. 前言 为了 ...

  4. Java开发学习(十五)----AOP入门案例及其工作流程解析

    一.AOP简介 1.1 什么是AOP AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. OOP(Object Oriented ...

  5. 彻底搞懂kubernetes调度框架与插件

    调度框架 [1] 本文基于 kubernetes 1.24 进行分析 调度框架(Scheduling Framework)是Kubernetes 的调度器 kube-scheduler 设计的的可插拔 ...

  6. RabbitMQ延迟消息:死信队列 | 延迟插件 | 二合一用法+踩坑手记+最佳使用心得

    前言 前段时间写过一篇: # RabbitMQ:消息丢失 | 消息重复 | 消息积压的原因+解决方案+网上学不到的使用心得 很多人加了我好友,说很喜欢这篇文章,也问了我一些问题. 因为最近工作比较忙, ...

  7. 企业级数据治理工作怎么开展?Datahub这样做

    大数据发展到今天,扮演了越来越重要的作用.数据可以为各种组织和企业提供关键决策的支持,也可以通过数据分析帮助发现更多的有价值的东西,如商机.风险等等. 在数据治理工作开展的时候,往往会有一个专门负责数 ...

  8. 花一分钟体验 Apache DolphinScheduler 第一个官方 Docker 镜像

    先前Apache DolphinScheduler 社区一直是发布 Dockerfile 和 K8s Chart.yaml 文件,由用户自行 build 镜像.随着越来越多的用户伙伴们的呼声高涨,社区 ...

  9. Go语言 context包源码学习

    你必须非常努力,才能看起来毫不费力! 微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero ! 前言 日常 Go 开发中,Context 包是用的最多的一个了,几乎所有函数 ...

  10. C# 创建标签PDF文件

    Q1:关于"标签PDF文件(Tagged PDF)" 标签PDF文件包含描述文档结构和各种文档元素顺序的元数据,是一种包含后端提供的可访问标记,管理阅读顺序和文档内容表示的逻辑结构 ...