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更加高效,提高您的工作效率。
相关问题拓展阅读:
要先进到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命令是什么情况,如何本地调试微信接口的信息别忘了在本站进行查找喔。
创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。
名称栏目:快速启动ngrok:使Linux更高效(ngroklinux启动)
网址分享:http://www.csdahua.cn/qtweb/news19/478019.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网