快速启动ngrok:使Linux更高效 (ngrok linux 启动)

Linux是一种广泛使用的操作系统,它的强大和灵活性已经被证明,吸引了越来越多的用户加入到Linux-camp中。然而,即使是Linux用户也需要随时随地访问公开网络,这时候ngrok就派上用场了。本文将介绍ngrok是什么、为什么要使用它以及如何快速启动ngrok来使得Linux更加高效。

一、什么是ngrok?

ngrok是一个反向代理,它可以将您的本地网络服务暴露给公众的Internet,从而使得您的本地服务全球可用。ngrok是由Alan Shreve开发的,它使用Go语言编写,是开源软件之一。

ngrok底层的原理较为简单,它使用公共的ngrok服务器分配一个随机端口,并且绑定到您的本地服务端口。它使用了一种称为隧道技术的技术,可以构建一个安全的网络连接,即使不使用公共的IP或DNS也可以访问您的服务。

二、为什么要使用ngrok?

1. 绕过防火墙限制

许多公司和组织都限制了访问外部服务器的权限,以保证网络安全。使用ngrok可以绕过这些限制,访问您的本地网络服务。

2. 向公众暴露您的本地服务

如果您想在本地开发和测试一个Web应用程序,那么这个应用程序只能在您的本地机上运行。使用ngrok可以将您的本地应用程序暴露给公共网络,让其他用户也能访问。

3. 增加安全性

ngrok采用了安全的网络连接,可以防止通过公共网络传输的数据被拦截或篡改。

4. 轻松使用

ngrok的安装和使用非常简单,可以快速地启动,快速地停止。

三、如何快速启动ngrok

ngrok的安装和启动十分简单,只需几个简单的步骤。

1. 下载ngrok

首先需要下载ngrok,可以从官网下载:https://ngrok.com/download。

2. 解压ngrok

在下载完成后,需要解压ngrok文件。在解压后的文件夹中,您会找到一个名为“ngrok”的二进制文件。

3. 注册ngrok账户

在启动ngrok之前,需要注册一个账户。在官网上进行注册,注册后可以使用已注册的邮箱地址登录ngrok客户端。

4. 启动ngrok

启动ngrok需要通过执行命令行命令来完成。输入以下命令:

./ngrok authtoken [your-auth-token]

然后再输入命令:

./ngrok [protocol] [local-port]

其中,[protocol]可以是http或者https,并且不区分大小写。

[local-port]是您要暴露的本地服务端口,如8080。

如果您的Web服务器已经运行,那么在运行ngrok后,终端就会显示一个可访问的URL地址。通过这个URL地址可以访问您的本地服务。

ngrok是一个功能强大的反向代理,可以将您的本地服务暴露给公共网络,使得您的本地服务全球可用。使用ngrok可以绕过防火墙限制,向公众暴露您的本地服务和增加安全性。同时,ngrok的安装和使用也非常简单,只需几个简单的步骤即可启动。通过快速启动ngrok,可以让Linux更加高效,提高您的工作效率。

相关问题拓展阅读:

  • cmd无法识别ngrok命令是什么情况
  • 如何本地调试微信接口

cmd无法识别ngrok命令是什么情况

要先进到ngrok.cfg的路径下,在执行命令才行。

要先进到ngrok.cfg的路径下,在执行命令才行。

ngrok配置方法

1、下载ngrok源码

(GOPATH=~/goproj)

$ mkdir ~/goproj/src/github.com/inconshreveable

$ git clone

$ export GOPATH=~/goproj/src/github.com/inconshreveable/ngrok

2、生成自签名证书

使用ngrok.com官方服务时,我们使郑悄租用的是官方的SSL证书。自建ngrokd服务,我们需要生成自己的证书,并提供携带该证书的ngrok客户端。

证书生成过程需要一个NGROK_BASE_DOMAIN。 以ngrok官方随机生成的地址693c358d.ngrok.com为喊兆例,其NGROK_BASE_DOMAIN就是”ngrok.com”,如果你要 提供服务的地址为”example.tunnel.tonybai.com”,那NGROK_BASE_DOMAIN就应该 是”tunnel.tonybai.com”。

我们这里以NGROK_BASE_DOMAIN=”tunnel.tonybai.com”为例,生成证书的命令如下:

$ cd ~/goproj/src/github.com/inconshreveable/ngrok

$ openssl genrsa -out rootCA.key 2023

$ openssl req -x509 -new -nodes -key rootCA.key -subj “/CN=tunnel.tonybai.com” -daysout rootCA.pem

$ openssl genrsa -out device.key 2023

$ openssl req -new -key device.key -subj “/CN=tunnel.tonybai.com” -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 ubuntu ubuntu 1001 Mar 14 02:22 device.crt

-rw-rw-r– 1 ubuntu ubuntu 903 Mar 14 02:22 device.csr

-rw-rw-r– 1 ubuntu ubuntu 1679 Mar 14 02:22 device.key

-rw-rw-r– 1 ubuntu ubuntu 1679 Mar 14 02:21 rootCA.key

-rw-rw-r– 1 ubuntu ubuntu 1119 Mar 14 02:21 rootCA.pem

-rw-rw-r– 1 ubuntu ubuntu 17 Mar 14 02:22 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

3、编译ngrokd和ngrok

在ngrok目录下执行如下命令,编译ngrokd:

$ make release-server

不过在我的AWS上,出现如下错误:

GOOS=”” GOARCH=”” go get github.com/jteeuwen/go-bindata/go-bindata

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/client/assets/assets_release.go \

assets/client/…

make: bin/go-bindata: Command not found

make: Error 127

go-bindata被安装到了$GOBIN下了,go编译器找不到了。修正方法是将$GOBIN/go-bindata拷贝到当前ngrok/bin下。

$ cp /home/ubuntu/.bin/go14/bin/go-bindata ./bin

再次执行make release-server。

~/goproj/src/github.com/inconshreveable/ngrok$ make release-server

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/client/assets/assets_release.go \

assets/client/…

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/server/assets/assets_release.go \

assets/server/…

go get -tags ‘release’ -d -v ngrok/…

code.google.com/p/log4go (download)

go: missing Mercurial command. See

package code.google.com/p/log4go: exec: “hg”: executable file not found in $PATH

github.com/gorilla/websocket (download)

github.com/inconshreveable/go-update (download)

github.com/kardianos/osext (download)

github.com/kr/binarydist (download)

github.com/inconshreveable/go-vhost (download)

github.com/inconshreveable/mousetrap (download)

github.com/nsf/termbox-go (download)

github.com/mattn/go-runewidth (download)

github.com/rcrowley/go-metrics (download)

Fetching

Parsing meta tags from

(status code 200)

get “gopkg.in/yaml.v1″: found meta tag main.metaImport{Prefix:”gopkg.in/yaml.v1″, VCS:”git”, RepoRoot:”

“} at

gopkg.in/yaml.v1 (download)

make: Error 1

又出错!提示找不到hg,原来是aws上没有安装hg。install hg后(sudo apt-get install mercurial),再编译。

$ make release-server

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/client/assets/assets_release.go \

assets/client/…

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/server/assets/assets_release.go \

assets/server/…

go get -tags ‘release’ -d -v ngrok/…

code.google.com/p/log4go (download)

go install -tags ‘release’ ngrok/main/ngrokd

同样编译ngrok:

$ make release-client

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/client/assets/assets_release.go \

assets/client/…

bin/go-bindata -nomemcopy -pkg=assets -tags=release \

debug=false \

o=src/ngrok/server/assets/assets_release.go \

assets/server/…

go get -tags ‘release’ -d -v ngrok/…

go install -tags ‘release’ ngrok/main/ngrok

AWS上ngrokd和ngrok被安装到了$GOBIN下。

三、调试

1、启动ngrokd

$ ngrokd -domain=”tunnel.tonybai.com” -httpAddr=”:8080″ -httpsAddr=”:8081″

No affinity cache specified

Reporting every 30 seconds

Listening for public http connections on :8080

Listening for public https connections on :8081

Listening for control and proxy connections on :4443

如何本地调试微信接口

本地调试微信接口方法如下:

要解决微信本地开发,一个关键的问题是能够把本地的IP地址映射到公网上去,从网上找下相关的解决方案,最终借助ngrok很容易解决

windows–>运行–>cmd,进入到ngrok.exe的根目录,输入ngrok 80,这样可以将本机的127.0.0.1:80分配一个外网可以访问的域名

遗憾的是该域名是随机的,每次重启都会变,这不利于我们微信调试,所以我们希望将域名固定住,仔细查看ngrok官网,ngrok已经给我们了解决方案,需要我们注册下

注笑磨历册成功后,会得到一个token

还是在windows–>运游携行–>cmd中,进入ngrok.exe目录,输入:

ngrok -authtoken token 80

其中token换成我们注册后返回的值,回车后,成功启动

但是返回的token太长了,不方便记忆,我们换一个方便记忆的名字,输入

ngrok -subdomain leopard 80

回车后,成功启动,下面我们需要验证下输入域名

打开微信公众平台,选择开发者中心,在右边的表单中输入相关内容,URL中输碰搜入我们刚设置过的域名

提交成功,说明我们的设置是有效的,此时已经在tomcat中可以看到我们在get方法下的返回值

方法/步骤

要解决微信兄晌本地开发,一个关键的问题是能够把本地的IP地址映射到公网上去,从网上找下相关的解决方案,最终借助ngrok很容易解决,访问官网

下载ngrok,解压后只有ngrok.exe一个文件

windows–>运行–>cmd,进入到ngrok.exe的根目录,输入ngrok 80,这样可以将本机的127.0.0.1:80分配一个外网可以访问的域名

遗憾的是该域名是随机的,每次重启都会变,这不利于我们微信调试,所以我们希望将域名固定住,仔细查看ngrok官网,ngrok已经给我们了解决方案,需要我们注册下

注册成功后,会得到一个token

还是在windows–>运行–>cmd中,进入ngrok.exe目录,输入:

ngrok -authtoken token 80

其中token换成我们注册后返顷尘物回的值,回车后,成功启动

但是返回的token太长了,不方便记忆,我们换一个方便记忆的名字,输入

ngrok -subdomain leopard 80

回车后,成功启动,下面我们需要验证下输入域名:

是否能够通过微信的URL校验

打开微信公众平台,选择开发者中心,在右边的表单中输入相关内容,雀液URL中输入我们刚设置过的域名

提交成功,说明我们的设置是有效的,此时已经在tomcat中可以看到我们在get方法下的返回值

方法/步骤

要解决微信兄晌本地开发,一个关键的问题是能够把本地的IP地址映射到公网上去,从网上找下相关的解决方案,最终借助ngrok很容易解决,访问官网

下载ngrok,解压后只有ngrok.exe一个文件

windows–>运行–>cmd,进入到ngrok.exe的根目录,输入ngrok 80,这样可以将本机的127.0.0.1:80分配一个外网可以访问的域名

遗憾的是该域名是随机的,每次重启都会变,这不利于我们微信调试,所以我们希望将域名固定住,仔细查看ngrok官网,ngrok已经给我们了解决方案,需要我们注册下

注册成功后,会得到一个token

还是在windows–>运行–>cmd中,进入ngrok.exe目录,输入:

ngrok -authtoken token 80

其中token换成我们注册后返顷尘物回的值,回车后,成功启动

但是返回的token太长了,不方便记忆,我们换一个方便记忆的名字,输入

ngrok -subdomain leopard 80

回车后,成功启动,下面我们需要验证下输入域名:

是否能够通过微信的URL校验

打开微信公众平台,选择开发者中心,在右边的表单中输入相关内容,雀液URL中输入我们刚设置过的域名

提交成功,说明我们的设置是有效的,此时已经在tomcat中可以看到我们在get方法下的返回值

1、首先可以直接申请公众测试号进行开巧渣发;

2、在公众测试号下,除配置的微信服务端推脊物送数据的80端口服务外,其他安全域名和菜樱宽液单的访问地址,都可设置为本地服务地址进行开发和测试。

ngrok linux 启动的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ngrok linux 启动,快速启动ngrok:使Linux更高效,cmd无法识别ngrok命令是什么情况,如何本地调试微信接口的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/158154.html<

(0)
管理的头像管理
上一篇2025-03-16 17:13
下一篇 2025-03-16 17:14

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注