官网: https://gofrp.org/

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

frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

由于采用 Golang 编写,所以系统需求和最新的 Golang 对系统和平台的要求一致

下载

https://github.com/fatedier/frp/releases
目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

mac 一般下载列表中第一个
Linux 一般下载列表中第一个
Windows一般下载列表中第一个

部署

解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。

编写配置文件,先通过 ./frps -c ./frps.ini 启动服务端,再通过 ./frpc -c ./frpc.ini 启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemd 和 supervisor。

原理

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。

用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。

代理

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

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

示例

通过 SSH 访问内网机器

这个示例通过简单配置 TCP 类型的代理让用户访问到内网的服务器。

  1. 在具有公网 IP 的机器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000
  1. 在需要被访问的内网机器上(SSH 服务通常监听在 22 端口)部署 frpc,修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:
server_addr = x.x.x.x
server_port = 7000[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

local_ip 和 local_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

  1. 分别启动 frps 和 frpc。

  2. 通过 SSH 访问内网机器,假设用户名为 test:
    ssh -oPort=6000 test@x.x.x.x
    frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口。

通过自定义域名访问内网的 Web 服务

这个示例通过简单配置 HTTP 类型的代理让用户访问到内网的 Web 服务。

HTTP 类型的代理相比于 TCP 类型,不仅在服务端只需要监听一个额外的端口 vhost_http_port 用于接收 HTTP 请求,还额外提供了基于 HTTP 协议的诸多功能。

  1. 修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080:
[common]
bind_port = 7000
vhost_http_port = 8080
  1. 修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名为 custom_domains。

常见报错:

zsh: exec format error:

你可能需要更换别的安装包进行尝试

bad cpu xxxx

你可能需要更换别的安装包进行尝试

start error: port unavailable

可能是公网ip服务器端的端口被占用

frp ---- golang编写的内网穿透工具简介相关推荐

  1. frp 后台地址_内网穿透工具frp搭建与使用详细教程

    简介:FRP(Fast Reverse Proxy) 是一款简单,好用,稳定的隧道工具.FRP 使用 Go 语言开发,它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务.FRP 支持 ...

  2. 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明

    内网穿透工具 FRP 公网服务端.内网客户端 frps.ini .frpc.ini 配置文件常用设置展示及说明 公网服务端 frps.ini 配置文件常用设置 公网服务端配置文件:frps.ini [ ...

  3. 中秋征文 | 【云原生之Docker】使用docker部署内网穿透工具FRP

    中秋征文 | [云原生之Docker]使用docker部署内网穿透工具FRP 一.卷首语 二.FRP介绍 1.frp简介 2.frp支持的系统 3.本次frp部署目的 三.检查本地docker状态 1 ...

  4. frp内网穿透工具实现内网穿透

    frp实现内网穿透 前言 frp简介 frp是什么 frp 的作用 frp的架构 准备工作 frp下载地址 frp的文件结构 frp配置与使用 linux公网服务器的配置(windows配置同理,这里 ...

  5. 一款很好用的内网穿透工具--FRP

    前言 对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题. 今天给大家介绍一款好用内网穿透工具 FRP,FRP 全名:Fast Reverse Proxy.FRP 是一 ...

  6. 推荐 4 款超好用的内网穿透工具,总有一款适合你

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps- ...

  7. 推荐几款实用的内网穿透工具

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者:V0W' 来源:v0w.top/2020/08/11/IntranetProxy ...

  8. 安排几款实用的内网穿透工具(加教程)

    点击关注公众号,利用碎片时间学习 0x00 前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps-npc 1.1 简介 nps是一款轻量级.高 ...

  9. 几款实用的内网穿透工具

    本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 01 nps-npc 1.1 简介 nps是一款轻量级.高性能.功能强大的内网穿透代理服务器.目前支持tcp.u ...

最新文章

  1. Google发布新的图像压缩技术,最高可节省75%带宽
  2. Python--day7--面向对象编程进阶
  3. 《Effective Java》—— 对于所有对象都通用的方法
  4. localdatetime 获取天_LocalDateTime的一些用法
  5. cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
  6. 亚马逊分类目录_新版亚马逊分类目录v2.4程序源码官方分享下载
  7. 商业智能BI和报表的区别?
  8. Sql Update Alter Rename
  9. webpack环境的配置
  10. 如何修改ns服务器,Godaddy如何修改NS信息
  11. Python——飞机大战源码(含飞机爆炸效果动图)
  12. Unity-遮挡剔除
  13. 无法删除IE图标(被劫持)
  14. 基于STM32设计的云端健康管理系统(采用阿里云物联网平台)
  15. 成为设计师必看的40本书
  16. 全球开发者各出奇招:我们想这样适配iPhone X
  17. 讲明白——K8S各核心架构组件
  18. 关于百度题库题目答案遮挡的问题的解决方法
  19. 爬取猫眼电影top100
  20. 卸载win10自带的OneNote

热门文章

  1. 【电子书分享】决战大数据-驾驭未来商业的利器.pdf(附下载链接)
  2. 知乎高赞:遇到问题,有哪些有效的分析方法?
  3. 通俗易懂!视觉slam第十一部分——线性系统和卡尔曼滤波
  4. leetcode力扣105. 从前序与中序遍历序列构造二叉树
  5. 海外仓ERP系统功能怎么样?
  6. iphone通知和android,手机App 通知数量太多,让你备感压力吗?教你如何消除令人心烦的信息通知(iPhone、Android)...
  7. 一些意想不到的bug
  8. 四月份面试题汇总(一)
  9. Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
  10. 计算机网络设备配置遇到的问题,网络设备使用与维护