构建自己的Ngrok服务器_ufocode的博客-CSDN博客_ngrok带宽


本站和网页 https://blog.csdn.net/ufocode/article/details/52749479 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

构建自己的Ngrok服务器_ufocode的博客-CSDN博客_ngrok带宽
构建自己的Ngrok服务器
ufocode
于 2016-10-07 15:50:25 发布
2482
收藏
分类专栏:
前端技术
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ufocode/article/details/52749479
版权
前端技术
专栏收录该内容
6 篇文章
0 订阅
订阅专栏
ngrok是什么(借别人的一段来说明)?
做前端开发的童鞋或许不会太陌生。 如果你完全不知道它是什么东西,可以在它的github项目上了解下:https://github.com/inconshreveable/ngrok 这里只提下它的核心功能:能够将你本机的HTTP服务(站点)或TCP服务,通过部署有ngrok服务的外网伺服器暴露给外网访问!
如上封面图所示,举一个栗子。
橘色屏幕的笔记本是你的工作机器,安装了ngrok客户端 ngrok.com所在的服务器安装了ngrok的服务端(ngrokd) 利用ngrok 8080命令可以将你本机的8080端口暴露给反向代理至ngrok.com的某个二级域名如:xxx.ngrok.com 别人通过xxx.ngrok.com就可以访问你本机8080端口上的站点内容了。
由此可见,除了Weinre、browsersync 这些惯用的手段外,借助ngrok,也一样可以解决前端开发过程经常遇到的“本地开发,外网调试”老大难题。
囧的是:ngrok.com被墙了,我们已无法用它官方的服务~ 国内虽然有一些第三方的ngrok服务,但是也无法保证其稳定性。 还好ngrok是开源的,我们可以通过它的源码在自己的外网服务器上搭建自己的ngrok服务。
前提条件是:一台外网可访问的主机,且有域名解析至该主机上。
我服务器环境为:
内存:8G 带宽 :5M 
搭建服务器端Ngrokd
1、安装go语言开发环境
ngrok是利用go语言开发的,所以先要在服务器上安装go语言开发环境。 以CentOS的服务器示例,安装Go语言很简单的:
sudo yum install golang
安装完毕后,利用go version来验证是否安装成功。 go安装好后,我们再设置下go的环境变量:
在~/.bash_profile文件内,加入以下环境变量配置内容:
export GOPATH=
$HOME/go
PATH=
$PATH:
$HOME/.local/bin:
$HOME/bin:
$GOPATH/bin
保存后,重新给shell加载下配置文件:source ~/.bash_profile
最后可通过go env查看是否配置成功。
 2、安装git
由于我机器上自带已安装git,所以这里省略了安装办法,各位请自行搜索一下安装 方法
3、fork并拉取ngrok源码
下面编译过程需要改官方的部分源码,所以最好fork一份源码至自己的github账户。
$ mkdir -p ~/go/src/github.com/mamboer
cd ~/go/src/github.com/mamboer
$ git
clone https://github.com/mamboer/ngrok.git
源码拉取下来后,需要修改一个地方: 打开src/ngrok/log/logger.go文件 将code.google.com/p/log4go 修改为:github.com/alecthomas/log4go
googlecode已经寿终了,我们将依赖的log4go替换成github的版本。
不过我拉取的源码,里面已修改了。
在编译ngrok的源码之前,我们还需要改下官方源码用到的签名证书。
4、生成自签名证书
使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。
证书生成过程需要一个NGROK_BASE_DOMAIN。 以ngrok官方随机生成的地址693c358d.ngrok.com为例,其NGROK_BASE_DOMAIN就是”ngrok.com”,如果你要 提供服务的地址为”example.ngrok.xxx.com”,那NGROK_BASE_DOMAIN就应该 是”ngrok.xxx.com”。
我们这里以NGROK_BASE_DOMAIN=“ngroklive.net”为例,生成证书的命令如下:
cd ngrok
$ openssl genrsa -out rootCA.key 2048
$ openssl req -x509 -new -nodes -key rootCA.key -subj
"/CN=ngroklive.net" -days 5000 -out rootCA.pem
$ openssl genrsa -out device.key 2048
$ openssl req -new -key device.key -subj
"/CN=ngroklive.net" -out device.csr
$ openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
执行完以上命令,在ngrok目录下就会新生成6个文件:
-rw-rw-r--
1 lv lv
985 Feb
17 19:04 device.crt
-rw-rw-r--
1 lv lv
895 Feb
17 19:04 device.csr
-rw-rw-r--
1 lv lv
1679 Feb
17 19:03 device.key
-rw-rw-r--
1 lv lv
1675 Feb
17 19:01 rootCA.key
-rw-rw-r--
1 lv lv
1103 Feb
17 19:03 rootCA.pem
-rw-rw-r--
1 lv lv
17 Feb
17 19:04 rootCA.srl
ngrok通过bindata将ngrok源码目录下的assets目录(资源文件)打包到可执行文件(ngrokd和ngrok)中 去,assets/client/tls和assets/server/tls下分别存放着用于ngrok和ngrokd的默认证书文件,我们需要将它们替换成我们自己生成的:(因此这一步务必放在编译可执行文件之前)
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
5、编译服务端程序Ngrokd和客户端程序Ngrok
在ngrok目录下执行如下命令,编译ngrokd:
$ make release-server
类似的,利用以下命令编译ngrok:
$ make release-client
成功编译后,会在bin目录下找到ngrokd和ngrok这两个文件。
我们将ngrokd文件拷贝至~/go/bin目录下,以方便在其他目录内也可以直接通过ngrokd来访问该执行程序。 6、运行Ngrokd服务
ngrokd -domain="ngroklive.net" -httpAddr=":80" -httpsAddr=":443" 7、为ngroklive.net添加dns解析
添加两条A记录:ngroklive.net和*.ngroklive.net指向我们刚刚创建服务器的IP
8、验证:
ngrokd服务配置好了,客户端程序也有了,下面测试下ngrok是否能够正常使用。
创建一个ngrok配置文件:ngrok.cfg
server_addr: “ngroklive.net:4443
trust_host_root_certs: false
运行客户端,暴露80端口的站点
$ ngrok -subdomain test -config=/Users/lv/bin/ngrok.cfg 80
WINDOWS下执行的效果 你可以在浏览器打开该通道试试了
另外:
一、WINDOWS下Ngrok编译如下:
cd /usr/local/go/src(或所在的目录)GOOS=windows GOARCH=amd64 ./make.bashcd  ngrok所在的目录GOOS=windows GOARCH=amd64 make release-client#同理,这里的amd64是64位系统,32位改成386#应该会在 bin/windows_amd64 目录下生成ngrok客户端程序 二、Mac上编译的如下:
cd /usr/local/go/src(或所在的目录)
GOOS=darwin GOARCH=amd64 ./make.bash
然后回去ngrok目录,接着编译:(或所在的目录)
cd /usr/local/src/ngrok
GOOS=darwin GOARCH=amd64 make release-client
完成后会在 /usr/local/src/ngrok/bin/darwin_amd64/ 下发现 ngrok 文件,将其拷贝到Mac上面,像上面windows
的设置即可使用。
ufocode
关注
关注
点赞
收藏
打赏
评论
构建自己的Ngrok服务器
ngrok是什么(借别人的一段来说明)?做前端开发的童鞋或许不会太陌生。如果你完全不知道它是什么东西,可以在它的github项目上了解下:https://github.com/inconshreveable/ngrok这里只提下它的核心功能:能够将你本机的HTTP服务(站点)或TCP服务,通过部署有ngrok服务的外网伺服器暴露给外网访问!如上封面图所示,举
复制链接
扫一扫
专栏目录
编译好的Windows版Ngrok服务器端
01-25
编译好的Windows版Ngrok服务器端,有32和64位两个版本。解压就能用,网上很难找。
Linux搭建Ngrok服务器详细过程
最新发布
q956095638的博客
12-08
268
linux下部署ngrok实现内网穿透,ngrok的详细部署过程与可能遇到的问题和解决方案
参与评论
您还未登录,请先
登录
后发表或查看评论
搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问
weixin_52270081的博客
06-02
1408
场景问题:
如果本地的项目在没有服务器的情况下,需要让他人访问;
在自己的电脑上搭建一个web服务器,实现本地的访问和外部的访问。我们就要做内网穿透了,内网穿透就是别人通过外网能够访问到我们本地的服务器。市面上一些主流的内网穿透工具有:
Ngrok,Natapp,花生壳,Ssh、autossh,Frp,Lanproxy,Spike这里介绍使用Ngrok工具。官网提供免费的服务器可使用,但是域名是随机的,只能临时使用,但是作为开发测试,给远方的甲方看到自己的电脑上的项目,还是足够了。傻瓜式操作,5分钟完成。官
最全ngrok实现内网穿透详细教程(windows )
qq_40595922的博客
10-21
808
ngrok实现内网穿透详细教程(windows )
ngrok搭建服务器(超级详细)
jiahang的博客
04-29
1669
ngrok详细的搭建过程,没有多余步骤,有需要编译好文件的同学留言给我
ngrok免费内网穿透服务搭建教程
m0_55646363的博客
12-17
1150
ngrok 内网穿透进入ngrok官网注册下载ngrok计算机授权启动服务远程连接建立成功测试ngrok的一些细节
进入ngrok官网注册
https://ngrok.com/
首先需要注册一个账号
注册账号时可能会刷新不出验证码,这里可能需要挂代理
下载ngrok
注册好之后就可以根据系统下载了
计算机授权
在当前目录下 cmd
官网拿到个人令牌进行授权
就是这一串token了(目前我的操作系统是windos就不需要复制./,Linux、mac等操作系统需要加./)
在程序目录下直接复制回
Ngrok的注册使用
x-dragon8899的博客
05-24
476
其他文章推荐:VM虚拟机安装使用及部署项目
目录一、注册花生壳二、开通隧道三、下载客户端四、测试
一、注册花生壳
官网:http://www.ngrok.cc/
二、开通隧道
三、下载客户端
1、下载
2、解压
3、打开客户端
4、选中后:右键->复制id
5、回到客户端:右键->粘贴id,回车即可
四、测试
http://xxx.free.idcfengye.com
通过外网能成功访问!(需要把本地项目和上面那个窗口一直运行起来)
注意:如果是vue项目则会出现 :“Inval.
轻松搭建自己的Ngrok服务器
蜜桃先生的博客
08-29
1756
前言
提示:首先需要一个成功经过备案的域名
再者: 需要一台服务器,腾讯云亦或阿里云国内服务器皆可!
介绍
ngrok是一个内网穿透的解决方案,它使得你本地的服务器可以被局域网外的公网访问到
ngork有服务端和客户端,服务端运行在公网服务器,客户端运行在本地服务器
ngrok服务端会建立 http 和 https 服务,默认端口 80/443,以及供 ngrok 客户端连接的服务,默认端口 4443
它的工作流程如下:
访问端输入域名 -> DNS -> ngrok 服务端 ->
搭建自己的内网穿透,告别ngrok速度慢的问题,调试本地服务(两种方式,源码部署或者部署包部署,新手直接部署包部署)
qq_36517296的博客
07-06
3574
内网穿透frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp开源地址链接
源码部署
下载源码
配置客户端
在frpc 目录下面添加配置文件 frpc.ini
[common]
server_addr = xx.xx.xx.xx 注意替换成自己的服务器公网ip端口
server_port = 7000
[web01]
type = http
#访问协议
搭建ngrok服务器(搭建内网穿透服务器)
行者蚊子的博客
09-03
1403
搭建ngrok服务器(内网穿透服务器)
一:为什么要使用ngrok?
一:编辑作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:
1:找到一台运行于外网的Web服务器
2:服务器上有网站所需要的环境,否则自行搭建
3:将网站部署到服务器上
4:调试结束后,再将网站从服务器上删除
二:只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱╰(`□′)╯
有了ngrok之后,世界是如此的美好只需要启动ngrok,你会得到一串网址,
搭建ngrok内网穿透服务器
ychen219的专栏
04-09
961
服务器环境:ubuntu20.04 (需要有外网IP)
客户端环境:ubuntu20.04 (也可以是windows和Mac)
1、安装golang和git
sudo apt install golang git
安装完成,未防止go的版本太新编译不过,需关闭module模式(因为源码很老)
还好目前apt安装的golang是1.3版本也比较老,也直接使用
#关闭module模式
go env -w GO11...
怎么样对阿里云ECS主机进行绑定域名
m0_64313187的博客
11-22
1509
首先我有个阿里的 域名+虚拟云主机 搭建了一个wordpress 的网站 地址为: www.liuxun.name/wordpress (liuxun.name/wordpress)
现在我想把一个阿里云的ECS主机,里面装了tomcat, 希望以 www.java.liuxun.name:8080 (java.liuxun.name:8080 ) 访问tomcat服务器,如果tomcat webapps下部署了项目 xxx 遍可以 www.java.liuxun.name:8080/xxx ...
云服务器搭建自己的ngrok服务-实现内网穿透
星哥说事
03-08
1193
本文介绍ngrok是什么以及如何通过开源ngrok自建服务搭建,实现内网穿透。
自建ngork的优点和缺点
**优点:**限制少,可玩性高,安全性高,完全可以删除花生壳、向日葵、TeamViewer等软件了。
**缺点:**有一定的技术门槛、需要购买云服务器和域名,如果服务器在国内域名需要备案。
如果不自建内网如果没有限制可以做用现成的技术,地址:http://www.ngrok.cc/ 还有 https://www.ngrok.com 等,注册账号即可。
ngrok的应用场景
满足没有公网IP环境下,远程
最全ngrok实现内网穿透详细教程(windows linux)
qq_42978230的博客
02-03
8225
内网穿透
什么是内网穿透
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。
UDP 内网穿透的实质是利用路由器上的NAT 系统。NAT 是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。
应用场景:上面
内网穿透工具--Sunny-Ngrok讲解
程序羊的博客
11-23
4127
简单来说:就是在外网可以直接访问本地的项目。在开发时各种调试会更方便,在测试功能时就不需要经过服务器去麻烦了。
云服务器+ngrok搭建内网穿透服务(只有公网ip无域名)
菜鸡的博客
08-08
1080
云服务器+ngrok搭建内网穿透服务(只有公网ip无域名)
微软服务器搭建ngrok,ngrok搭建(Windows服务端+Windows客户端)
weixin_30653755的博客
08-10
917
1.go环境搭建(需要Linux系统)1)下载源码,可以在http://www.golangtc.com/download2)将其解压到/usr/local目录下:tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz3).在root环境下执行如下命令:mkdir $HOME/goecho ‘export GOROOT=/usr/local/go’&gt...
10分钟教你搭建自己的ngrok服务器
热门推荐
yjc_1111的专栏
02-23
16万+
内网穿透想必开发过微信的同志都很了解,大部分人选择网上寻找各种现成的,比如ngrok官网、ittun-ngrok、sunny-ngrok或者花生壳之类的。但是世界上没有免费的午餐,要不就是收费,要不就是免费但是偶尔会出现连接失败的问题(当然大多数时间是没有问题的)。
偶然,正在测试微信的某些功能,但是正在使用的ittun-ngrok连接失败了。导致测试无法进行,最终萌生出自己搭建一个ngrok服...
自己搭建的ngrok服务器,需要的可以自行下载
03-13
部署在自己本地的ngrok服务端,域名自己配置的,有需要的朋友自己下载使用即可。
ngrok是什么意思?如何通过Ngrok实现内网穿透
lmp5023的博客
03-15
898
ngrok是一个用 go 语言编写的反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。 ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
ngrok是什么意思?
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。Ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了。国内一个机构建立并运营了一个ngrok运行服务,虽然有时不太稳定,但对于调试人员来说是足够的。地址:http://www.ngro.
阿里云搭建ngrok服务器
HUANXIANG201311的博客
05-25
5523
一、前提条件
一个固定IP,一个域名解析到该IP
二、提前准备工作
1、安装gcc
yum install gcc
2.安装git
yum install git
3.安装GO语言环境
到网站https://golang.org/dl/查找最新的版本链接,我的服务器是64位的,当前最新版本是:https://storage.googleap
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
ufocode
CSDN认证博客专家
CSDN认证企业博客
码龄19年
暂无认证
38
原创
3万+
周排名
81万+
总排名
20万+
访问
等级
2177
积分
32
粉丝
27
获赞
16
评论
128
收藏
私信
关注
热门文章
VLC相关参数中文说明!
27269
启动和连接特定端口的Mongodb !
20764
SQL秘笈 : NOLOCK、ROWLOCK、UPDLOCK的使用!
20274
通过 FFMPEG,将字幕“烧进”MP4视频中
12292
M2MQTT 使用方式
9868
分类专栏
NoSQL
2篇
C#
13篇
JAVA
11篇
Android
6篇
Hadoop
P2P
1篇
FFMpeg
4篇
Apple IOS
数据库
13篇
HBASE
Thrift
前端技术
6篇
数据可视化
LINUX
9篇
流媒体
5篇
人生感悟
Erlang
2篇
Scala
SPark
1篇
算法相关
3篇
最新评论
如何实现ORACLE数据库的远程自动备份(完整版)
globalcoding:
公钥和私钥放反了,私钥放在登录机,公钥放在被登录机
详细看这篇文
https://globalcoding.blog.csdn.net/article/details/124712007
M2MQTT 使用方式
Joy_Garfield:
直接在NuGet中搜m2mqtt
M2MQTT 使用方式
wawa860218:
M2MqttEx.dll 文件在哪里下载?
VLC相关参数中文说明!
你好呀!:
大佬牛逼
通过 FFMPEG,将字幕“烧进”MP4视频中
Vicky_Studio:
Unable to parse option value "XXX.srt" as image size, 这个提示是啥意思呢
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
微信——企业付款到个人银行卡。
M2MQTT 使用方式
ffmpeg使用x264编码器参数完整对照 + 为视频添加关键帧
2018年2篇
2017年5篇
2016年3篇
2015年65篇
目录
目录
分类专栏
NoSQL
2篇
C#
13篇
JAVA
11篇
Android
6篇
Hadoop
P2P
1篇
FFMpeg
4篇
Apple IOS
数据库
13篇
HBASE
Thrift
前端技术
6篇
数据可视化
LINUX
9篇
流媒体
5篇
人生感悟
Erlang
2篇
Scala
SPark
1篇
算法相关
3篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
ufocode
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值