搭建自己的内网穿透,告别ngrok速度慢的问题,调试本地服务(两种方式,源码部署或者部署包部署,新手直接部署包部署)

本文主要是介绍搭建自己的内网穿透,告别ngrok速度慢的问题,调试本地服务(两种方式,源码部署或者部署包部署,新手直接部署包部署),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内网穿透frp

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

frp开源地址链接

golang源码部署

  • 下载源码

在这里插入图片描述

  • 配置客户端
    在这里插入图片描述
  • 在frpc 目录下面添加配置文件 frpc.ini
[common]
server_addr = xx.xx.xx.xx 注意替换成自己的服务器公网ip端口
server_port = 7000[web01]
type = http
#访问协议 内网端口
local_port = 8181#内网web服务的端口号,也就是我们想展示的页面的端口号
custom_domains =  xx.xx.xx.xx 注意替换成自己的服务器公网ip端口
  • 配置服务端
[common]
bind_port = 7000
#与客户端绑定的进行通信的端口
vhost_http_port = 9098
#访问客户端web服务自定义的端口号,也就是最终用公网ip访问时的端口号
#./frps -c frps.ini
#GOOS=linux GOARCH=amd64 go build -o frps *.go  打包部署到服务器
  • 最终目录结构
    在这里插入图片描述

  • 测试效果
    1.启动服务端,在fprs 目录下运行

	go run *.go -c ./frps.ini2021/07/06 15:14:07 [I] [root.go:200] frps uses config file: ./frps.ini
2021/07/06 15:14:07 [I] [service.go:192] frps tcp listen on 0.0.0.0:7000
2021/07/06 15:14:07 [I] [service.go:235] http service listen on 0.0.0.0:9098
2021/07/06 15:14:07 [I] [root.go:209] frps started successfully
  1. 启动客户端,在fprc目录下面执行
 go run *.go -c frpc.ini   2021/07/06 15:15:40 [I] [service.go:304] [6af11efc2f567073] login to server success, get run id [6af11efc2f567073], server udp port [0]
2021/07/06 15:15:40 [I] [proxy_manager.go:144] [6af11efc2f567073] proxy added: [web01]
2021/07/06 15:15:40 [I] [control.go:180] [6af11efc2f567073] [web01] start proxy success
  1. 成功访问 http://127.0.0.1:9098/ (该127.0.0.1 实际需要替换你的公网ip地址),通过9098端口转发到内网端口 8181
    在这里插入图片描述
  • 自己打包编译
	服务端centos:  GOOS=linux GOARCH=amd64 go build -o frps *.go客户端: go build

第二种方式部署包,不依赖本地环境

  • 复制 上面所说的 frps.ini 和 frpc.ini 放置当前软件同级目录
  • 下载windows, mac 和 linux 部署包,linux部署包需要部署到自己的服务器 , 客户端包需要本地运行,部署包下载地址
  • 启动服务端 ./frps -c frps.ini
  • 本地启动客户端 ./frpc -c frpc.ini

这篇关于搭建自己的内网穿透,告别ngrok速度慢的问题,调试本地服务(两种方式,源码部署或者部署包部署,新手直接部署包部署)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508253

相关文章

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty