您当前的位置:首页 > 电脑百科 > 安全防护 > 软件工具

ngrok-内网穿透神器,开发人员必备

时间:2023-10-07 14:27:59  来源:今日头条  作者:阿拉尔的阳光

概述

ngrok是一款开源的网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL。这使得网络开发人员可以将自己正在开发的网页或者API暴露到互联网上,方便进行演示、测试和共享等。

ngrok的工作原理

ngrok-内网穿透神器,开发人员必备

ngrok.NETwork

  • 首先,你需要在本地机器上启动ngrok,并指定一个或多个端口。
  • ngrok会在你的本地机器上建立一个隧道,这个隧道连接到ngrok服务器。
  • ngrok服务器会给你的隧道分配一个公开的URL,并将所有发送到这个URL的请求转发到你的本地机器上。
  • 你的本地应用程序处理请求并发送响应,响应通过ngrok隧道返回到原始请求者。

ngrok的主要特性

  • HTTP/HTTPS隧道:ngrok支持创建HTTP和HTTPS隧道,这意味着你可以使用它来分享Web应用、API等。
  • TCP隧道:除了HTTP和HTTPS之外,ngrok也支持创建TCP隧道,允许你分享任何类型的网络服务,比如数据库服务、SSH服务等。
  • Web界面:ngrok提供了一个本地的Web界面,你可以通过这个界面查看隧道的状态,以及所有的HTTP请求和响应详细信息。
  • 支持多平台:ngrok支持linuxwindowsmac等多种操作系统。

总之,ngrok是一款强大而灵活的工具,对于网络开发人员来说,无论是进行本地开发,还是需要将本地服务暴露给互联网用户,都非常有帮助。

域名配置

申请一个自己的域名,假设用到的域名是ngrok.xxx.com,需要将ngrok.xxx.com和*.ngrok.xxx.com解析到自己的服务器上面

配置Go语言环境

ngrok是go语音写的,服务器上需要配置go语言环境,相关配置命令如下:

  • 下载
#下载
wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz
#解压
tar -zxvf go1.9.1.linux-amd64.tar.gz
#移动到local目录
mv go /usr/local
  • 创建软连接
#创建软连接
ln -s /usr/local/go/bin/* /usr/bin/

#测试是否配置成功
go env

安装ngrok

  • 下载源码
cd /usr/local
# 源码参考:git clone https://Github.com/inconshreveable/ngrok.git
wget http://www.sunnyos.com/ngrok.zip
unzip ngrok.zip
  • 生成证书

如果已有ssl证书,则可以跳过这步

# 进入ngrok源码的目录
cd ngrok
# 设置域名,这里使用  ngrok.xxx.com
export NGROK_DOMAIN="ngrok.xxx.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
# 替换原来证书
cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
  • 编译服务端
cd /usr/local/ngrok
GOOS=$GOOS GOARCH=$GOARCH make release-server
  • 编译各大平台客户端
# 1、Linux 32位:linux 386
# 2、Linux 64位:linux amd64
# 3、Windows 32位:windows 386
# 4、Windows 64位:windows amd64
# 5、Mac OS 32位:darwin 386
# 6、Mac OS 64位:darwin amd64
# 7、Linux ARM:linux arm

# 对应以上各平台,将$1、$2替换成对应的值
cd /usr/local/ngrok/
# GOOS=$1 GOARCH=$2 make release-client
# 如编译Mac OS 64位客户端
GOOS=darwin GOARCH=amd64 make release-client
  • 生成的客户端文件示例
.../ngrok/bin$tree
.
|-- darwin_amd64
|   `-- ngrok
|-- go-bindata
|-- linux_386
|   |-- ngrok
|   `-- ngrokd
|-- linux_arm
|   `-- ngrok
`-- windows_amd64
    `-- ngrok.exe

启动服务端

  • 如有自定义证书,提前创建软连接,如certbot申请的免费证书,注意将xxx.com替换成自己的域名路径
ln -s /etc/letsencrypt/live/xxx.com/fullchain.pem /usr/local/ngrok/server.crt
ln -s /etc/letsencrypt/live/xxx.com/privkey.pem /usr/local/ngrok/server.key
  • 开启后台运行,注意端口8001,8443和4443开启防火墙或安全规则放行,端口也可自行定义,注意将-domain替换成自己的域名路径
nohup /usr/local/ngrok/bin/ngrokd -domain="ngrok.xxx.com" -tlsCrt="/usr/local/ngrok/server.crt" -tlsKey="/usr/local/ngrok/server.key" -httpAddr=":8001" -httpsAddr=":8443" -tunnelAddr=":4443" -log-level="INFO" >/var/log/ngrok.log 2>&1 &

客户端配置

将上面生成的客户端可执行文件拷贝到需要内网穿透的设备上即可,这里直接说多域名和多TCP内网穿透配置文件,直接在客户端同级目录下创建ngrok.cfg配置文件,注意server_addr端口要与tunnelAddr对应,内容如下:

server_addr: ngrok.xxx.com:4443
tRust_host_root_certs: false
tunnels:
 weixin:
  subdomain: weixin
  proto:
   http: 8002
 about:
  subdomain: about
  proto:
   http: 192.168.0.1:80
 ssh:
  remote_port: 2020
  proto:
   tcp: 22

内网穿透

  • 启动特定转发
./ngrok -config ngrok.cfg -log ngrok.log start weixin

注:-log ngrok.log可以查看客户端日志,可去掉

  • 将所有配置转发
./ngrok -config ngrok.cfg -log ngrok.log start-all

启动后出现online字样说明内网穿透成功,如图所示:

ngrok-内网穿透神器,开发人员必备

ngrok连接成功示例



Tags:内网穿透   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
玩转内网穿透:如何从公网访问局域网的服务?
最近,我帮一位朋友配置了下从公网访问家里 Web 应用。 背景这位朋友自己基于 Django 写了一个 Web 应用,部署在自己电脑的虚拟机上。但是想让其他同事访问时,却犯了难,应该该怎...【详细内容】
2023-12-21  Search: 内网穿透  点击:(97)  评论:(0)  加入收藏
八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网...【详细内容】
2023-11-29  Search: 内网穿透  点击:(213)  评论:(0)  加入收藏
ngrok-内网穿透神器,开发人员必备
概述ngrok是一款开源的网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL。这使得网络开发人员可以将自己正在开发的网页或者API暴露到互联网上,方便进行演示...【详细内容】
2023-10-07  Search: 内网穿透  点击:(102)  评论:(0)  加入收藏
如何理解内网穿透?都有哪些实现方式?
一、内网穿透:是指在企业内部或家庭网络中实现远程访问,从而使得用户通过公共的网络(例如互联网)可以访问并控制位于内网中的设备。二、内网穿透技术的核心思想是:利用某种技术...【详细内容】
2023-07-14  Search: 内网穿透  点击:(192)  评论:(0)  加入收藏
Cloudflare Tunnel 内网穿透
使用Cloudflare Tunnel实现内网穿透,把服务器架在家里Cloudflare Tunnel是Cloudflare零信任网络的一个产品,用于打通企业、员工、设备之间的边界,从而摒弃掉VPN之类的过时技术(...【详细内容】
2023-05-22  Search: 内网穿透  点击:(321)  评论:(0)  加入收藏
如何使用利用nat123实现内网穿透
首先,我们要明白何为内网穿透,内网穿透即即在计算机在局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,简单滴说,我们访问百度,实际上是访问了百度的公网地址...【详细内容】
2023-02-08  Search: 内网穿透  点击:(298)  评论:(0)  加入收藏
免费实现内网穿透,端口映射远程桌面,无需公网ip实现内网穿透
很多时间,我们自己家里电脑运行的程序或者公司电脑 开发的程序需要外网访问。而现在一般很难有公网ip,解决办法也有很多,例如免费的frp(需要公网ip做中转,免费的花生壳(有限制 )金...【详细内容】
2022-11-03  Search: 内网穿透  点击:(491)  评论:(0)  加入收藏
生产力环境下的简单高效开源的内网穿透工具——FRP的搭建教程
与zerotier、tailscale等基于点对点的内网穿透的商业软件不同,FRP是在github上的一个开源项目,是服务器—客户端运行模式,可提供闭环的虚拟局域网环境。项目地址:HTTPS://g...【详细内容】
2022-09-30  Search: 内网穿透  点击:(1603)  评论:(0)  加入收藏
没有公网IP,cpolar实现内网穿透
在做网站、微信开发时,有时候会需要本地调试,但现在运营商基本不会分配给到独立的公网IP了,都是内网IP,就只能通过内网穿透来实现。这里推荐一款简单好用的内网穿透工具—&...【详细内容】
2022-09-23  Search: 内网穿透  点击:(558)  评论:(0)  加入收藏
花生壳内网穿透:无需专线公网IP,安全高效远程数据采集
随着信息技术发展和工业自动化水平的提高,各种现代化监测设备及数据采集器被广泛应用于水文水利、气象环保、工业控制等领域,用于户外、工业现场进行数据采集、存储和传输。...【详细内容】
2022-08-19  Search: 内网穿透  点击:(482)  评论:(0)  加入收藏
▌简易百科推荐
如何使用免费网络安全工具Canary Tokens查明黑客何时访问了您的文件?
译者 | 布加迪审校 | 重楼担心您的个人文件被黑客窃取吗?Canary Tokens是一款免费且易于使用的工具,可以快速部署。如果黑客打开您的文件,它就会通知您。什么是Canary Tokens?Ca...【详细内容】
2024-03-26    51CTO  Tags:Canary Tokens   点击:(13)  评论:(0)  加入收藏
如何用ChatGPT分析恶意软件
译者 | 陈峻审校 | 重楼自从我们进入数字化时代以来,恶意软件就一直是计算机应用系统的“心腹大患”。事实上,每一次技术进步都会为恶意行为者提供更多的工具,使得他们的攻击行...【详细内容】
2023-12-12    51CTO  Tags:恶意软件   点击:(199)  评论:(0)  加入收藏
NGFW:网络工程师必备防火墙
在网络技术飞速发展的今天,防火墙已成为网络工程师必备的防御工具之一。而其中,下一代防火墙(NGFW)凭借其高效、智能的防护特点,更是成为了业界的明星产品。本文将详细介绍NGFW的...【详细内容】
2023-12-12    历史痕迹  Tags:防火墙   点击:(131)  评论:(0)  加入收藏
如何保护应用?Web应用防火墙详细解读
如今,多云环境、API安全功能扩展、合作伙伴集成即时可用、可用性和可视化增强以及提高自动化程度已经成为基本要求。伴随企业应用架构的迁移,在用户端,需要在部署环境不断扩展...【详细内容】
2023-12-06  科技信息分析者    Tags:防火墙   点击:(129)  评论:(0)  加入收藏
八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网...【详细内容】
2023-11-29  andflow  微信公众号  Tags:内网穿透   点击:(213)  评论:(0)  加入收藏
十个最佳免费 Linux 防火墙工具
概述防火墙是保护网络边界的关键。防火墙会阻止敏感端口并过滤传入和传出流量,以阻止恶意连接并确保不会发生未经请求的数据交换。在自由开源软件的世界里,有很多防火墙解决方...【详细内容】
2023-11-28  雪竹聊技术  今日头条  Tags:防火墙   点击:(173)  评论:(0)  加入收藏
防火墙与杀毒软件有什么区别?
硬件防火墙:系统是嵌入式的系统。一般开源的较多。硬件防火墙是通过硬件和软件的组合来达到隔离内外部网络的目的。软件防火墙:一般寄生在操作系统平台。软件防火墙是通过纯...【详细内容】
2023-11-16    天铭互联网  Tags:防火墙   点击:(215)  评论:(0)  加入收藏
ngrok-内网穿透神器,开发人员必备
概述ngrok是一款开源的网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL。这使得网络开发人员可以将自己正在开发的网页或者API暴露到互联网上,方便进行演示...【详细内容】
2023-10-07  阿拉尔的阳光  今日头条  Tags:内网穿透   点击:(102)  评论:(0)  加入收藏
“二次约会”间谍软件分析报告:网络攻击西北工业大学 美国相关人员真实身份被锁定
近日,国家计算机病毒应急处理中心和360公司对名为“二次约会”(SecondDate)的“间谍”软件进行了技术分析,该“间谍”软件针对基于FreeBSD、Linux、Sun Solaris、Juniper JunOS...【详细内容】
2023-09-14    央视新闻客户端  Tags:间谍软件   点击:(301)  评论:(0)  加入收藏
DNSBin:一款功能强大的DNS与服务器安全测试工具
关于DNSBinDNSBin是一款功能强大的DNS与服务器安全测试工具,该工具可以通过DNS来测试数据泄露,并在目标环境部署了严苛网络安全限制的场景下帮助广大研究人员测试远程代码执...【详细内容】
2023-09-08    FreeBuf.COM  Tags:DNSBin   点击:(245)  评论:(0)  加入收藏
站内最新
站内热门
站内头条