FRP安装配置详解

FRP 安装与配置详解

FRP(Fast Reverse Proxy)是一款内网穿透工具,它帮助内网设备通过公网服务器将服务暴露到外网。以下是详细的安装与配置步骤,帮助你快速部署 FRP。


一、安装 FRP

1. 下载 FRP

FRP 支持多种系统平台(Windows、Linux、MacOS)。从 GitHub 仓库下载最新版本的 FRP:

  • GitHub 仓库:Releases · fatedier/frp · GitHub

选择对应系统的压缩包,如:

  • Linux (64位): frp_x.x.x_linux_amd64.tar.gz
  • Windows (64位): frp_x.x.x_windows_amd64.zip
2. 解压文件

下载完成后,解压缩文件:

# Linux 示例
tar -zxvf frp_x.x.x_linux_amd64.tar.gz# Windows 示例
解压缩到某个目录

解压后,目录下包含如下文件:

  • frps:服务端可执行文件
  • frpc:客户端可执行文件
  • frps.ini:服务端配置文件
  • frpc.ini:客户端配置文件
  • LICENSE:许可文件
  • README.md:说明文档

二、配置 FRP

1. 配置服务端 (frps)

服务端负责接收客户端的请求,并将其转发到内网服务。服务端通常部署在公网服务器上。

编辑 frps.ini 文件,常见配置如下:

[common]
bind_port = 7000                  # 服务端监听的端口,客户端通过这个端口连接
vhost_http_port = 8080            # HTTP 请求的端口(外网访问 HTTP 服务时使用)
vhost_https_port = 8443           # HTTPS 请求的端口
dashboard_port = 7500             # FRP 仪表盘访问端口
dashboard_user = admin            # 仪表盘登录用户名
dashboard_pwd = password          # 仪表盘登录密码
log_file = ./frps.log             # 日志文件路径
log_level = info                  # 日志级别
token = your_secure_token         # 用于客户端和服务端验证的密钥
2. 启动 FRP 服务端

启动命令:

./frps -c ./frps.ini

成功启动后,frps 服务端将监听配置文件中定义的端口。


3. 配置客户端 (frpc)

客户端运行在内网机器上,负责将内网服务代理到外网。

编辑 frpc.ini 文件,典型的配置示例如下:

[common]
server_addr = x.x.x.x               # 公网服务器(frps)的 IP 地址
server_port = 7000                  # frps 监听的端口
token = your_secure_token           # 与服务端一致的密钥[web]
type = http                         # 使用 HTTP 代理
local_port = 80                     # 本地 HTTP 服务的端口
custom_domains = www.example.com     # 外网访问时的域名[ssh]
type = tcp                          # 使用 TCP 代理
local_port = 22                     # 本地 SSH 服务的端口
remote_port = 6000                  # 外网访问的远程端口

上面的配置表示:

  • web 配置:将本地的 HTTP 服务(80 端口)通过自定义域名 www.example.com 暴露到外网。
  • ssh 配置:将本地的 SSH 服务(22 端口)通过公网 6000 端口进行访问。

***注意:避免在配置项的同一行添加注释

4. 启动 FRP 客户端

启动命令:

./frpc -c ./frpc.ini

三、验证与使用

1. 访问 HTTP 服务

在客户端运行后,外网用户可以通过 http://www.example.com 访问客户端的 HTTP 服务。

2. SSH 远程登录

外网用户可以通过以下命令登录客户端的 SSH:

ssh -p 6000 user@x.x.x.x # x.x.x.x 为公网服务器的 IP

四、仪表盘配置与监控

FRP 提供了 Web 仪表盘用于监控代理服务的状态。

  1. 启用仪表盘:确保在 frps.ini 中配置了 dashboard_port 和登录凭据:

    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = password
    

  2. 访问仪表盘:通过浏览器访问 http://x.x.x.x:7500,并使用配置文件中的用户名和密码登录。


五、高级配置

1. 自定义域名与 DNS

如果需要通过域名访问,确保正确配置 DNS 解析。将域名解析到 FRP 公网服务器的 IP 地址。

2. TLS/SSL 安全传输

对于生产环境,建议使用 HTTPS 代理,开启安全传输。可以使用 Let’s Encrypt 等工具生成 SSL 证书,将其配置在 frps 中。

示例:

[common]
vhost_https_port = 443
tls_cert_file = /path/to/cert.pem
tls_key_file = /path/to/key.pem
3. 负载均衡

FRP 支持将同一个服务的多台内网设备配置为负载均衡。可以在多个客户端使用同样的 custom_domainsremote_port

4. 流量控制与限速

你可以通过 bandwidth_limit 限制流量。配置文件中加入以下内容:

bandwidth_limit = 1MB # 限制带宽为 1MB/s

六、常见问题与排查

1. 连接失败
  • 检查防火墙配置,确保 frps 监听的端口已开放。
  • 检查 frpcfrps 是否使用相同的 token
2. 域名无法访问
  • 确认域名解析正确,且 custom_domains 配置无误。
  • 检查服务端配置中的 vhost_http_portvhost_https_port 是否正确。
3. 高并发性能问题
  • 调整服务端和客户端的 max_pool_count 来支持更多连接。
  • 使用较强性能的服务器来运行 frps

总结

FRP 是一种非常强大的内网穿透工具,通过简单的配置即可将内网服务发布到公网。它的多协议支持、自定义域名、加密传输等功能让它适合多种场景,包括远程办公、内网服务外网访问等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/55091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt C++设计模式->享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享相同对象来减少内存使用,尤其适合在大量重复对象的情况下。它通过将对象的可共享部分抽取出来,并在多个上下文中共享,从而避免对象的多次创建…

Tomcat为什么要打破双亲委派?怎么保证安全

Tomcat打破双亲委派模型的原因主要是为了解决Web应用程序中的类加载冲突问题,并提供更好的灵活性和可扩展性。在Java中,双亲委派模型是一种类加载机制,它确保了类加载的安全性和一致性,但在Web应用程序的场景下,它可能…

MySQL和Doris开窗函数LAG执行时的区别

目标表的表结构 CREATE TABLE point_value_status_color_tmp ( id bigint NOT NULL, org_id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, device_id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, origin_ti…

数据库课程设计案例:在线教育管理系统

一、项目背景 随着在线教育的兴起,传统的教学管理模式面临着新的挑战。在线教育管理系统旨在为学生、教师和管理员提供一个高效、便捷的学习与管理平台,以提升学习效果和管理效率。 二、系统功能需求 用户管理 用户注册与登录角色管理(学生…

CSS面试真题 part1

CSS面试真题 part1 1、说说你对盒子模型的理解2、谈谈你对BFC的理解3、什么是响应式设计?响应式设计的基本原理是什么?如何做?4、元素水平垂直居中的方法有哪些?如果元素不定宽高呢?5、如何实现两栏布局,右…

目标检测——VOC2007数据集

目标检测入门code 文件目录 下载数据集——在官网下载VOC2007数据集 下载训练数据集 TRAIN data 下载测试数据集 TEST data 解压数据集 解压——训练数据集,在服务器上,目录为VOCdevkit 部分文件目录 全部文件总目录 解压——测试数据集 (…

Unity 与虚幻引擎对比:两大游戏开发引擎的优劣分析

在游戏开发领域,Unity 和虚幻引擎(Unreal Engine)是两款最为知名且广泛使用的引擎。它们各有特点,适合不同类型的开发者和项目。在这篇博客中,我们将深入探讨这两大引擎的核心功能、适用场景、优缺点,以及如…

DMDSC更换DCR和VOTE磁盘

DMDSC更换DCR和VOTE磁盘 为了提高DMDSC集群运行速度和节点之间通信协调的效率,需要将运行在机械盘上的dcr和vote磁盘替换到SSD高效磁盘上。将原来200M的dcr和vote机械磁盘,换成500M的SSD高效磁盘。 磁盘替换规划信息如下所示: 信息说明 替…

什么是IPv6

目前国内的网络正在快速的向IPv6升级中,从网络基础设施如运营商骨干网、城域网,到互联网服务商如各类云服务,以及各类终端设备厂商如手机、电脑、路由器、交换机等。目前运营商提供的IPv6线路主要分为支持前缀授权和不支持前缀授权两种。 说…

Python酷玩之旅_如何连接MySQL(mysql-connector-python)

前言 Python作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。 正如Java中的JdbcDriver一样…

真正的Open AI ——LLaMA颠覆开源大模型

1. LLaMA 简介 LLaMA(Large Language Model Meta AI)是由Meta(原Facebook)推出的一个大型语言模型系列,旨在通过更小的模型规模和更少的计算资源,实现与其他主流语言模型(如GPT)相媲…

【解密 Kotlin 扩展函数】扩展属性与扩展函数类似(十九)

导读大纲 1.1.1 扩展属性的创建和使用 1.1.1 扩展属性的创建和使用 之前, 我们已经了解声明 Kotlin 属性的语法 Kotlin中的顶级属性–传送门就像扩展函数一样,我们也可以指定扩展属性就像之前所说,属性和函数的区别在于前者是特征,后者是行为 相比扩展函…

【漏洞复现】金和OA C6 GeneralXmlhttpPage.aspx Sql注入漏洞

免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…

编程思维之函数返回函数

当我们有一个函数1他需要封装成公共函数,但是了他需要传入一个组件内的值1才能进行逻辑,而我们在使用她的时候又不想传入两个参数,可以把函数1封装成返回函数2的一个函数,函数1需要传入值1在决定函数2. 然后在组件内得到函数2&…

《后端程序猿 · Spring事务失效场景》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

git commit -am 仅提交已修改文件

git commit -am 是一个 Git 命令,用于将所有已跟踪(tracked)文件的修改添加到暂存区,并同时创建一个新的提交。 具体解释: -a:表示自动暂存所有已跟踪的文件的修改(包括修改和删除&#xff09…

2024/9/29周报

文章目录 摘要Abstract污水处理工艺流程整体介绍粗格栅细格栅曝气沉砂池提升泵房峰谷平策略 初沉池(一级处理)工作原理运行管理 氧化沟生化池(二级处理)二沉池工作原理运行参数 高效沉淀池功能与特点工作原理 深度处理&#xff08…

LeetCode 918. 环形子数组的最大和

原题链接:. - 力扣(LeetCode) 给定一个长度为 n 的环形整数数组 nums ,返回 nums 的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上, nums[i] 的下一个元素是 nums[(i 1) % n…

防止错误输入!Excel单元格限制输入内容的三种有效方式

在Excel中,限制单元格输入内容可以帮助避免数据输入错误,确保数据的一致性和准确性。今天小编分享三种方法,可以轻松限制Excel单元格的输入内容,确保数据输入符合预期要求,一起来看看吧! 方法一&#xff1a…

Register Two Point Sets 注册两个点集

文章目录 Register Two Point Sets 注册两个点集Visualize Gradient Descent 可视化梯度下降Hyperparameter Search 超参数搜索JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4类说明 原文url: https://examples.itk.org/src/registration/metricsv4/registertwopointse…