使用frp工具实现内网穿透

news2024/11/18 12:19:50

本文使用frp的docker镜像 + JSON格式配置,以http服务为例

一、达到的目的

希望通过已有的公网服务器,直接访问内网中运行的http服务

二、所需条件

/**
 * 公网服务器 ip
 * eg: 8.0.0.0 阿里云
 */

/**
 * 绑定到公网服务器的域名
 * eg: network.com 阿里云
 */

/**
 * 内网http服务
 * eg: 192.168.1.3:6600
 */

三、服务端

下载docker镜像

# 使用的镜像是 snowdreamtech/frps
# 查找镜像 frps
docker search frps

# 拉取镜像
docker pull snowdreamtech/frps

配置frps.json

// frps配置文件本地路径 eg: /var/local/frp/frps.json
{
  "bindPort": 7000, // 供客户端连接的端口
  "vhostHTTPPort": 7700, // http协议穿透访问端口 - http穿透时,必须开启
  "auth": {
    "token": "your_token" // 客户端连接时的认证token
  },
  // 看板服务的配置
  "webServer": {
    "addr": "0.0.0.0",
    "port": 7500,
    "user": "admin",
    "password": "123456"
  }
}

运行frps容器

docker run -d --name frps -p 7000:7000 -p 7500:7500 -p 7700:7700 -v /var/local/frp/frps.json:/frp/frps.json snowdreamtech/frps -c /frp/frps.json

检查运行结果

# 查看frps容器日志
docker logs frps

# 如果有以下日志就是服务已经注册成功了
# 2024-11-12 05:53:51.174 [I] [frps/root.go:105] frps uses config file: /frp/frps.json
# 2024-11-12 05:53:51.427 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
# 2024-11-12 05:53:51.427 [I] [server/service.go:305] http service listen on 0.0.0.0:7700
# 2024-11-12 05:53:51.427 [I] [frps/root.go:114] frps started successfully
# 2024-11-12 05:53:51.427 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500

访问dashboard

# 阿里云安全组 - 入方向 放开7000, 7500, 7700 的端口访问

# 浏览器访问 http://network.com:7500 会提示输入账号密码,然后就可以看到看板页面了

四、客户端

# 使用的镜像是 snowdreamtech/frpc
# 查找镜像 frpc
docker search frpc

# 拉取镜像
docker pull snowdreamtech/frpc
// frpc配置文件本地路径 eg: /var/local/frp/frpc.json
{
  "serverAddr": "8.0.0.0",
  "serverPort": 7000,
  "auth": {
    "token": "your_token"
  },
  "proxies": [
    {
      "name": "abc",
      "type": "http",
      "localIP": "192.168.1.3", // 客户端所在设备可以访问的内网ip地址
      "localPort": 6600, // 内网端口
      "transport": {
        "useEncryption": true,
        "useCompression": true
      },
      "customDomains": ["abc.frp.network.com"]
    }
  ]
}

运行frpc容器

docker run -d --name frpc -v /var/local/frp/frpc.json:/frp/frpc.json snowdreamtech/frpc -c /frp/frpc.json

检查运行结果

# 查看frps容器日志
docker logs frpc

# 或者到dashboard页面看 proxies 中的http有没有映射

访问项目

# 域名配置 - 阿里云域名管理中 添加域名解析规则 frp, *.frp

# 浏览器访问 http://abc.frp.network.com:7700 就可以访问到内网项目

# 在阿里云ssh连接中,使用curl -I http://abc.frp.network.com:7700 也可以测试

到此,整体结束了

五、参考文档

  • frp文档: https://gofrp.org/zh-cn/docs/

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

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

相关文章

软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型

4,1 网络安全体系的主要特征: (1)整体性。网络安全体系从全局、长远的角度实现安全保障,网络安全单元按照一定的规则,相互依赖、相互约束、相互作用而形成人机物一体化的网络安全保护方式。 (2)协同性。网络安全体系依赖于多种安全机制,通过各…

【数据库】如何保证数据库迁移过程中数据的一致性?

在数据库迁移过程中,保证数据的一致性是非常重要的,尤其是在涉及到多个表、多个数据库或分布式系统的情况下。以下是一些确保数据一致性的最佳实践和方法: 1. 备份数据 在开始迁移之前,进行全面的数据备份是确保数据一致性的第…

github 模型下载方法

github 模型权重,如果是项目下载,pth文件有时下载后只有1kb 本人测试ok下载方法: 点击view raw,然后可以下载模型权重文件了。

spring-data-elasticsearch 3.2.4 实现桶bucket排序去重,实现指定字段的聚合搜索

一、背景 es索引有一个文档CourseIndex,下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候&#…

QQ 小程序已发布,但无法被搜索的解决方案

前言 我的 QQ 小程序在 2024 年 8 月就已经审核通过,上架后却一直无法被搜索到。打开后,再在 QQ 上下拉查看 “最近使用”,发现他出现一下又马上消失。 上线是按正常流程走的,开发、备案、审核,没有任何违规&#xf…

快速搭建Android开发环境:Docker部署docker-android并实现远程连接

目录 前言 1. 虚拟化环境检查 2. Android 模拟器部署 3. Ubuntu安装Cpolar 4. 配置公网地址 5. 远程访问 小结 6. 固定Cpolar公网地址 7. 固定地址访问 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊快速搭建Android开发环境&#x…

大麦抢票科技

仅供学习参考,切勿再令您所爱的人耗费高昂的价格去购置黄牛票 ⚠️核心内容参考: 据悉,于购票环节,大麦凭借恶意流量清洗技术,于网络层实时甄别并阻拦凭借自动化手段发起下单请求的流量,强化对刷票脚本、刷票软件以及…

【STM32】基于SPI协议读写SD,详解!

文章目录 0 前言1 SD卡的种类和简介1.1 SD卡的种类1.2 SD卡的整体结构1.3 SD卡运行机制——指令和响应2 SD卡的通信总线2.1 SDIO2.2 SPI3 硬件连接4 代码实践【重点】4.1 HAL库移植4.2 标准库移植4.3 遇到的问题和解决方案5 扩展阅读0 前言 因为项目需要,使用stm32读写sd卡,这…

kafka管理工具

文章目录 前言一、Kafka Assistan1.1 描述1.2、配置安装 二、Conduktor2.1、描述2.2、配置安装 三、kafka-maneger3.1、描述3.2、配置安装3.3、命令启动3.4、[refer to](https://www.ctyun.cn/document/10000120/10033218#section-39755766f4910e4b) 前言 提示:这里…

leetcode_二叉树最大深度

对二叉树的理解 对递归调用的理解 对内存分配的理解 基础数据结构(C版本) - 飞书云文档 每次函数的调用 都会进行一次新的栈内存分配 所以lmax和rmax的值不会混在一起 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

使用 Axios 拦截器优化 HTTP 请求与响应的实践

目录 前言1. Axios 简介与拦截器概念1.1 Axios 的特点1.2 什么是拦截器 2. 请求拦截器的应用与实践2.1 请求拦截器的作用2.2 请求拦截器实现 3. 响应拦截器的应用与实践3.1 响应拦截器的作用3.2 响应拦截器实现 4. 综合实例:一个完整的 Axios 配置5. 使用拦截器的好…

高亚科技签约美妥维志化工,提升业务协同与项目运营效率

近日,中国企业管理软件资深服务商高亚科技与韶关美妥维志化工有限公司(以下简称“美妥维志”)正式签约。基于高亚科技的8Manage PM项目管理软件,美妥维志将实现项目进度、人员审批及问题的统一管理,提升部门间协同效率…

使用真实 Elasticsearch 进行更快的集成测试

作者:来自 Elastic Piotr Przybyl 了解如何使用各种数据初始化和性能改进技术加快 Elasticsearch 的自动化集成测试速度。 在本系列的第 1 部分中,我们探讨了如何编写集成测试,让我们能够在真实的 Elasticsearch 环境中测试软件,并…

数据分布之指数分布(sample database classicmodels _No.10)

数据分布之指数分布(sample database classicmodels _No.10) 准备工作,可以去下载 classicmodels 数据库具体如下 点击:classicmodels 也可以去 下面我的博客资源下载 https://download.csdn.net/download/tomxjc/88685970 文章…

RPC-健康检测机制

什么是健康检测? 在真实环境中服务提供方是以一个集群的方式提供服务,这对于服务调用方来说,就是一个接口会有多个服务提供方同时提供服务,调用方在每次发起请求的时候都可以拿到一个可用的连接。 健康检测,能帮助从连…

Flink_DataStreamAPI_执行环境

DataStreamAPI_执行环境 1创建执行环境1.1getExecutionEnvironment1.2createLocalEnvironment1.3createRemoteEnvironment 2执行模式(Execution Mode)3触发程序执行 Flink程序可以在各种上下文环境中运行:我们可以在本地JVM中执行程序&#x…

Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件

本文将介绍一种手动的轻量级的方式,还原HTTP/TLS协议中传输的文件,为流量数据包中的文件分析提供帮助。 如果捕获的数据包中存在非文本类文件,例如png,jpg等图片文件,或者word,Excel等office文件异或是其他类型的二进…

Golang云原生项目:—实现ping操作

熟悉报文结构 ICMP校验和算法: 报文内容,相邻两个字节拼接到一起组成一个16bit数,将这些数累加求和若长度为奇数,则将剩余一个字节,也累加求和得出总和之后,将和值的高16位与低16位不断求和,直…

基于STM32 HAL库的FFT计算与数学运算:幅值、频率、均方根、平均值、最大值、最小值、峰峰值与标准差

一、用STM32进行FFT计算与数学运算的过程 1. 信号采集 首先,我们需要使用STM32的ADC模块来采集模拟信号,比如三相交流电。ADC将模拟信号(如电压或电流)转换为数字信号,供后续处理。 采样数量:FFT的计算通…

关于Github报错Verify your two-factor authentication (2FA) settings的解决方案

如果我们在使用GitHub出现2FA验证问题:Verify your two-factor authentication (2FA) settings,那么可以参考下面的解决方法解决问题。 当然,如果有国外的手机号直接使用验证码接收就可以,问题是不支持中国手机啊。那么怎么办呢&…