frp简介

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

为什么使用 frp ?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  1. 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  2. 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  3. 代理组间的负载均衡。
  4. 端口复用,多个服务通过同一个服务端端口暴露。
  5. 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  6. 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  7. 服务端和客户端 UI 页面。

应用场景

把内网做好的系统,通过公网IP实现内网穿透反向代理应用,常用来支持使用开发环境,提供给客户测试系统和演示系统。

环境准备

1、安装Oracle VM VirtualBox

2、安装Centos7.x

3、MobaXterm终端

源码编译步骤

配置Go环境,安装依赖

sudo yum install gcc

下载安装Go

# 下载当前最新版的
wget https://dl.google.com/go/go1.18.linux-amd64.tar.gz

解压到/usr/local

sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz

配置环境变量

# 添加环境变量
vim /etc/profile
在文件的底部添加以下两行:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/gopath
#:wq 保存退出后,重新加载profile文件
source /etc/profile

测试Go环境

go version

出现如下界面:表示安装成功

下载frp的源码包:v0.58.1

通过MobaXterm上传至/usr/local目录

#解压至/usr/local/目录

定制404错误页

frp 的http 404页面写死在frp目录的pkg/util/vhost/resource.go文件里,在resource.go文件里面的const这节,可以很清楚看到http 404的html配置,做一下简单的修改,去掉能暴露出来的frp的标识。

cd /usr/local/frp-0.58.1
#编辑404错误页
vim pkg/util/vhost/resource.go

编辑resource.go

设置代理

若不设置,下载依赖包会因为网络连接问题报错

go env -w GOPROXY=https://goproxy.cn

编译源码

make -f Makefile.cross-compiles 或者 make

生成一个bin目录,可执行文件frpc和frps。

把frp_0.46.1_linux_amd64.tar.gz其中frps文件替换即可

测试编写一个shell脚本

#! /bin/bash
basepath=/usr/local/frp_0.46.1_linux_amd64
nohup ${basepath}/frps -c ${basepath}/frps.ini > ./test.out 2>&1 &

内网穿透的高性能的反向代理应用FRP-自定义404错误页【实践可行版】的更多相关文章

  1. 借助FRP反向代理实现内网穿透

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

  2. 使用FRP做内网穿透

    Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...

  3. frp内网穿透学习

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

  4. frp + nginx 配置多人共用的http 内网穿透服务

    来源:简书   https://www.jianshu.com/p/c9d7527d607b 一. 前言 frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp ...

  5. frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...

  6. 使用frp进行内网穿透

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

  7. 使用阿里云服务器配置frp实现Windows系统RDP内网穿透

    1.frp服务器采用阿里云ecs的centos7.5系统,客户端是台windows10的系统,做一个RDP服务的内网穿透用. 2.首先下载frp到服务器(链接:https://github.com/f ...

  8. QuantumTunnel:内网穿透服务设计

    背景 最近工作中有公网访问内网服务的需求,便了解了内网穿透相关的知识.发现原理和实现都不复杂,遂产生了设计一个内网穿透的想法. 名字想好了,就叫QuantumTunnel,量子隧道,名字来源于量子纠缠 ...

  9. frp实现基于反向代理的内网穿透

    个人博客主页: xzajyjs.cn frp是什么 简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP.TCP.UDP等众多协议 ...

  10. 【代理】内网穿透工具 frp&frps

    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发. ### frp 的作 ...

随机推荐

  1. 数据库—SQL语言学习

    文章目录 SQL 数据类型 重要的关键字 定义数据库 数据库的文件 table创建与删除 表的定义 表的alter 表的删除 视图 定义视图 删除视图 更新视图 插入视图 视图总结 索引 SQL单表查 ...

  2. uniapp-vue3-oadmin手机后台实例|vite5.x+uniapp多端仿ios管理系统

    原创vue3+uniapp+uni-ui跨端仿ios桌面后台OA管理模板Uni-Vue3-WeOS. uniapp-vue3-os一款基于uni-app+vite5.x+pinia等技术开发的仿ios ...

  3. C# winform GDI+ 五子棋 (一):基本界面和胜负判断

    棋盘和棋子采用GDI+画上去的.棋盘18*18.棋子是用DrawElipse画的,白棋和黑棋分两个List集合存储,方便判断五子连线的情况. 主要说一下,五子连线的思路,把集合按行和按列以及按正斜和反 ...

  4. C#命令行参数解析库System.CommandLine介绍

    命令行参数 平常在日常的开发过程中,会经常用到命令行工具.如cmd下的各种命令. 以下为sc命令执行后的截图,可以看到,由于没有输入任何附带参数,所以程序并未执行任何操作,只是输出了描述和用法. 系统 ...

  5. .net版OCR紧随PP-OCRv3重磅发布

    .net版OCR地址PaddleOCRSharp PaddleOCRSharp是一个基于PaddleOCR的C++代码修改并封装的.NET的工具类库.包含文本识别.文本检测.基于文本检测结果的统计分析 ...

  6. Aspire项目发布到远程k8s集群

    前提 你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验 Aspirate (Aspir8) Aspirate 是将aspire项目发布到k8s集群的工具 安装aspirate ...

  7. jquery的树状菜单

    <body>     <ul>         <li>一级菜单                 <ol>                 <li ...

  8. Node安装mongodb

    Node操作mongodb Mongoose介绍 网址:http://www.mongoosejs.net/docs/index.html mongoose是Node环境下异步操作mongodb数据库 ...

  9. linux系统下,redis如何设置密码

    1.命令方式 首先查看下密码是否存在,发现并未设置为空. -bash-4.2# cd /usr/local/redis-6.2.6/src -bash-4.2# ./redis-cli 127.0.0 ...

  10. Vector + ClickHouse 收集日志

    目前业界的日志生态,最常用的是 ELK,其次就是 ClickHouse,本文会演示如何使用 Vector + ClickHouse 来采集 Nginx 日志并做清洗,最终写入 ClickHouse.至 ...