快速启动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命令是什么情况

要先进到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命令是什么情况,如何本地调试微信接口的信息别忘了在本站进行查找喔。


数据运维技术 » 快速启动ngrok:使Linux更高效 (ngrok linux 启动)