前言:
ngrok是一个内网穿透的解决方案,它使得你本地的服务器可以被局域网外的公网访问到。作为一个web 程序猿,使用ngrok可以使系统联调变的方便灵活
ngrok服务端会建立http和https服务,以及供客户端连接的服务,默认端口4443
它的工作流程如下:
访问端输入域名->DNS->ngrok服务端->请求映射到ngrok客户端->客户端返回响应到ngrok服务端->ngrok服务端返回响应到访问端
准备工作:
- 一台公网服务器
- 一个域名,顶级或二级均可(域名需要备案)
服务器环境:
aliyun ECS | 操作系统 CentOS7(amd64)
关于域名:一个是基础域名,可以是顶级或者二级,它用来为ngrok服务器本身提供外部访问。二就是基于基础域名的二级或者三级域名,用来映射到你的本地服务器。可以设置多个,取决于你的需要。例如 abc.com 和 ngrok.abc.com / ngrok2.abc.com,每个映射域名对应一个ngrok客户端
假设域名是 abc.com
如果你需要使用顶级域名作为基础域名,那么请将abc.com泛解析到服务器ip,然后将你需要使用的二级域名通过A记录解析到服务器ip,例如 ngrok.abc.com
如果你需要使用二级域名,那么先将你的二级域名(xxx.abc.com)通过A记录解析到服务器域名。然后将三级域名(比如 test.xxx)通过CNAME的方式解析到 xxx.abc.com,这次xxx.abc.com便成为了客户端与服务端的连接域名,test.xxx.abc.com则是映射域名
下面使用abc.com作为基础域名演示,如果你的基础域名是二级域名,替换即可
一,安装git和go
yum install gcc -y
yum install git -y
yum install mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386 -y
二,下载源码
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok
mkdir cert
cd cert
export NGROK_DOMAIN="abc.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
替换(提示overwrite输入y)
cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
四:生成服务端与客户端
切换回ngrok目录,以下命令按需生成,生成后的文件在bin目录下
linux服务端
GOOS=linux GOARCH=386 make release-server (32位)
GOOS=linux GOARCH=amd64 make release-server(64位)
#Mac OS客户端
GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client
#windows客户端
GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client
五、用SSH Secure Shell Client工具
将~/ngrok/bin/windows_amd64/里的文件下载到本地Windows下,如D:\ngrok
六、在D:\ngrok中新建ngrok.cfg配置文件
server_addr: "abc.com:8083"
trust_host_root_certs: false
tunnels:
http:
subdomain: "www"
proto:
http: "80"
https:
subdomain: "www"
proto:
https: "443"
ssh:
remote_port: 2222
proto:
tcp: "22"
mstsc:
remote_port: 52222
proto:
tcp: "192.168.0.107:3389"
以上 8083 80 443 与 远程开启的端口一致,
七、开启远程服务
注意:一定要根据自己的实际情况在服务器后台安全组规则中开启或删除
sudo ./bin/ngrokd -domain="abc.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &
-httpAddr=80 此配置用来指定映射域名http访问的端口 默认80
-httpsAddr=443 https的访问端口 默认443
-tunnelAddr=4443 客户端连接的端口 默认4443
以上端口,如若与系统其他服务有冲突,开启服务时请自行配置其他端口
八、启动客户端
在Windows中D:\ngrok新建文件 改名 start.bat:
ngrok -config=ngrok.cfg start http https ssh mstsc
直接双击运行
表示成功,
不成功的话看看自己的开启端口是否与config文件中对应
或查看服务器的远程端口是否在安全组中打开
【创建开机启动服务】
关于ngrok在远程开机自启问题
服务器后台开机启动运行ngrok服务端:
1.以下内容新建一个 start.sh 文件 放到 ~/ngrok/start.sh
~/ngrok/bin/ngrokd -domain="abc.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &
给权限:
chmod 755 ~/ngrok/start.sh
2.新建ngrok启动脚本文件
sudo vi /etc/init.d/ngrok
文件内容:
!/bin/sh
BEGIN INIT INFO
Provides: ngrok
Required-Start:
Required-Stop:
Default-Start: 2 3 4 5
Default-Stop: 0 1 6
Short-Description: Start or stop the ngrok Proxy.
END INIT INFO
ngrok_path=~/ngrok/
case "$1" in
start)
echo "start ngrok service.."
sh ${ngrok_path}/start.sh
;;
*)
exit 1
;;
esac
3.ngrok脚本文件 给权限
chmod 755
/etc/init.d/ngrok
4.添加启动服务 ngrok
chkconfig –add ngrok
5.测试服务是否能启动成功
service ngrok start
6.查看自启动的服务 是否有 nrgok !!
chkconfig
执行这个代码如果出现后面的就OK了!! ngrok 0:off 1:off 2:on 3:on 4:on 5:on 6:off
相关推荐
ngrok是一款强大的内网穿透工具,它允许用户将本地服务器暴露到公共互联网上,而无需进行复杂的网络配置。源码包的提供意味着你可以自行编译和部署ngrok,以适应你的特定需求或环境,这对于开发者来说是极具价值的。...
服务器可以买性能低的,然后搭建这个服务,进行内网穿透,把本地的服务,映射出去,通过外网访问,相当于本地的性能跑服务,然后可以通过外网访问。 缺点:本地电脑不稳定,内网穿透连接有可能不稳定。。不能完全当...
ngrok是一款强大的内网穿透工具,它允许用户将本地的开发环境或内网服务暴露到公网,以便在任何地方访问。这款工具源自国外,但在中国也有广泛应用,因其易用性和高效性而备受开发者喜爱。本文将详细介绍ngrok的工作...
- FRP(Fast Reverse Proxy):这是一个开源的内网穿透工具,适用于服务器资源有限的情况。在服务器端和ESP32-CAM上部署FRP客户端和服务器程序,配置端口映射。 5. 图像流与监控: 一旦内网穿透配置完成,可以...
搭建代理服务器,由此许多内网穿透,内网映射软件应运而生,根据网络通内网端口映射工具的多年开发经验,和大家分享一下内网穿透的原理和简单实现,网络通,花生壳内网版,ngrok等原理都是大同小异的. 首先传输协议选择,...
这时,一款名为ngrok的工具便应运而生,它能够帮助开发者轻松实现内网穿透。 #### 二、ngrok简介 ngrok是一款开源的隧道服务,它可以将一个本地运行的服务暴露到互联网上。相比于其他同类工具,ngrok提供了更加...
【ngrok启动脚本】是本文的核心话题,它涉及到的是如何在腾讯云的CentOS 7.2操作系统上建立一个自有的内网穿透工具。首先,我们来详细了解一下`ngrok`及其工作原理。 `ngrok`是一款强大的内网穿透工具,它允许你...
ngrok是一款强大的内网穿透工具,它允许用户通过一个公共的域名或IP地址来访问内网中的服务。这个“ngrok相关文件.zip”压缩包包含了搭建ngrok所需的几个关键组件,包括ngrok源码、Git安装包以及Go语言安装包。下面...
本资源详细介绍了微信公众号的类型、注册测试公众号的步骤、接口权限的区别,以及如何使用Ngrok等工具实现本地开发环境的搭建和内网穿透。 适合人群:本资源适合对微信公众号开发感兴趣的初学者、编程爱好者,以及...
例如,当你需要在家中远程控制一台内网中的服务器,或者想让朋友访问你搭建的私人网站时,就可以用到内网穿透。首先,你需要选择一种适合你需求的穿透方式,如使用第三方服务。注册并配置相应的服务,比如在FRP中,...
这款开源工具,正好实验室购置了一台公网服务器,正好可以实现内网穿透,决定入坑折腾一番。对于有后台开发基础的同学还是挺简单的,不过好记性不如烂笔头,来吧,这里手把手深入探索一番。 一、概述 1.1 什么是内网...
文档更新说明 2018年04月06日 v1.0 内网穿透相信是后端开发者经常遇到的需求,可是怎么实现呢?...内网穿透其实就是用服务器做一个中转,将请求转发,本文记录了在 ubuntu 16.04 上,基于 docker 搭建的内网穿透服务
2. **第三方内网穿透工具**:如 ngrok、花生壳、Frp 等,它们提供了一种云服务,可以在没有固定公网IP或者路由器无法配置端口映射的情况下,通过它们的服务器作为中转,实现内网服务对外的访问。这些工具通常提供...
快速把本机开发的web让外网可以访问,可以用于微信,支付宝支付等开发,搭建环境为服务器和客户端都为windows
首先,我们来了解"NATAPP1分钟快速新手图文教程 - NATAPP-内网穿透 基于ngrok的国内高速内网映射工具.pdf"。NATAPP是一种内网穿透服务,它允许在内网环境中的服务器或应用被外部网络访问。NAT(网络地址转换)通常会...
7. **其他解决方案**:除了使用【路由器端口内网映射器】,还有一些第三方服务,如No-IP、Ngrok等,提供动态DNS解析和端口转发服务,可以帮助用户更方便地实现内网服务的外网访问。 8. **文件“lyysq”**:此文件名...
这一系列操作涉及到前端开发框架Vue.js、Web服务器Tomcat以及内网穿透工具ngrok的使用,每个步骤都有一定的技术要求和操作细节。 首先,准备工作包括安装Vue.js和Vue CLI。Vue.js是一个构建用户界面的渐进式...
4. **注册并使用ngrok服务**: ngrok是一种内网穿透工具,能够将你的本地服务器暴露到公网,让你的网站可以被外网访问。在ngrok官方网站(http://ngrok.cc/)注册账号,并根据需求选择免费或付费版本。下载客户端并...
总的来说,端口映射软件是网络通信中的一个重要工具,尤其对于那些需要在内网环境中提供对外服务的用户来说,它极大地扩展了网络可达性,使私人服务器的搭建和管理变得更加便捷。在实际应用中,正确理解和运用端口...