首页 程序笔记 内网穿透神器ngrok使用教程

内网穿透神器ngrok使用教程

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

ngrok官网地址:https://ngrok.com/

ngrok的工作原理

首先,你需要在本地机器上启动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支持Linux、Windows、Mac等多种操作系统。

总之,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字样说明内网穿透成功,如图所示:

6

站星网

ngrok是一款开源的网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL。这使得网络开发人员..

为您推荐

又一保暖神器横扫TikTok!义乌“电驴神帽”月销147万

来源:TKFFF跨境导航网作者:TKFFF关尔TikTok 平台上,#balaclava话题视频量达 36 亿次,#facemask相关视频更是突破 204 亿次,直观印证了冬季保暖面罩赛道的超高热度。传统户外保暖单品普遍存在一个核心痛点,带眼..

宠物类目再出爆款!一款训狗神器在TikTok卖出百万

来源:TT123跨境电商作者:TT123跨境电商冬天,起床困难是常态。积雪地滑, 出门不便,打工人宁愿扣钱也要与被窝多温存几分钟,但广大养宠家庭却难以享受这份“特权”,尤其是狗主人们。TT123 观察到,这一微观需求..

年入3000万美金,“看娃神器”火遍欧美!

来源:品牌方舟BrandArk作者:松饼对于新手父母来说,育儿的挑战从孩子出生的那一刻就开始。婴儿的哭声、体温的变化、睡眠的深浅——每一个细微的信号都牵动着他们的神经。过去,人们只能依靠经验与直觉来应对育儿中..

30天卖了160万,汽车“防冻神器”走红TikTok

来源:TT123跨境电商作者:TT123跨境电商近期,在跨境电商市场,冬季类产品迎来了一年中的销售黄金期。从保暖紧身裤、保暖手套到户外防风头套,都成了 TikTok 美国市场的应季紧俏货。除了给自己置办“过冬神器”,北..

TikTok再现义乌出单“神器”,不到两周销量超1.64万!

来源:TT123跨境电商作者:TT123跨境电商继西瓜叉切片器爆火后,义乌又出神器了。近些年,懒人经济的市场规模不断扩大,并渗透到大众生活的方方面面。消费者,尤其是年轻一代,对于便捷、快速并能解放双手的产品需求..

这款驱蚊神器靠“抽象”,冲进TikTok 热销榜一

来源:TT123跨境电商作者:TT123跨境电商戴假蜻蜓驱蚊?一种抽象的物理“吓”蚊方式在美国流行。炎炎盛夏,正是各类蚊虫活动的高峰时期。为了免受蚊虫叮咬,人们开始使用一切能想到的办法来对付蚊子。蚊香、灭蚊喷雾..

利润10倍,TikTok又带火这一厨房神器!

3 元国产漏勺被老外抢疯!在 TikTok 和小红书上,一群外国网友正掀起一股“中餐热”。(图片来源于小红书)他们手持中式菜刀拍蒜、颠锅翻炒的熟练程度,让中国网友惊叹“这简直是‘老内’附体”。有趣的是,这股热潮..

TikTok月销4W+,这款懒人神器究竟凭什么?

来源:TT123跨境电商作者:TT123跨境电商对于现代人而言,手机意味着什么?或许是一切。吃饭时的电子榨菜,洗澡时的 BGM 伴奏,如厕时的读物搭子……现代人生活的琐碎和点滴,由手机谱写,更由手机所记录。当越来越..

斩获百万美金!国产“登山神器”如何拿捏老外?

来源:品牌方舟BrandArk作者:晓芸从《钢铁侠》中的托尼·斯塔克,到《明日边缘》中的机甲战士,再到《流浪地球2》中的移山计划……在科幻世界中,外置机械装甲早已是屡见不鲜的元素。“血肉苦弱,机械飞升”,用科..

宝塔面板定时计划任务删除文件夹教程

1. 登录宝塔面板打开浏览器,输入宝塔面板的地址,使用你的用户名和密码登录。2. 进入计划任务在宝塔面板的左侧菜单中,找到并点击“计划任务”。3. 添加计划任务点击“添加计划任务”按钮。4. 配置计划任务任务类型..

使用 html2canvas 实现截图功能

html2canvas 是一个开源的 JavaScript 库,用于将网页上的 HTML 元素渲染成图像。它通过遍历页面的 DOM 树和计算样式,然后将其绘制到 <canvas> 元素上,最终生成图片。该库不依赖服务器端,而是通过浏览器端的 Java..

使用SuperWebSocket实现Web消息推送

在大部分Web系统中,我们可能遇到需要向客户端推送消息的需求。SuperWebSocket第三方库能让我们轻松的完成任务。SuperWebSocket第三方库可以从网上下载,不过通过Visual Studio Nuget安装更快。引用SuperWebSocket相..

.NET C# 使用Hook钩子实现全局监听键盘和鼠标

C# 是一种面向对象的编程语言,具有丰富的类库和工具支持,适用于各种类型的应用程序开发。Windows 提供了一种称为"钩子"(Hook)的机制,允许拦截并处理系统级别的事件,如键盘按键和鼠标移动。通过结合 C# 和 Hook..

C#使用 Attribute 实现 AOP 功能

在 C# 中,通过自定义 Attribute 并结合一些技术(如动态代理、反射等)可以实现 AOP(面向切面编程)。AOP 通常用于日志记录、性能监控、权限验证等横切关注点。以下是一个使用 C# Attribute 实现 AOP 功能的示例。..

ABP.Net Core使用教程(一)启动模版项目

只需要简单的3步:1,到官网下载模版项目 https://aspnetboilerplate.com/Templates2,用VS2017打开,将Web.Host设置为启动项3,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令..

C#中的线程安全的集合ConcurrentQueue使用示例

在多线程编程中,如何安全地在不同线程之间共享数据是一个非常重要的问题。C# 为我们提供了一些专门设计的线程安全集合,其中之一就是 ConcurrentQueue<T>。它是一种先进先出(FIFO)的数据结构,专门为多线程环境设..

CSS砌体布局示例和使用场景

CSS砌体布局(Masonry Layout)CSS砌体布局是一种网页布局技术,它的灵感来源于砖石墙的排列方式,类似于“拼图”或“拼砖”的效果。在砌体布局中,元素的排列并不完全遵循传统的网格布局规则,..

使用CSS columns-visibility实现砌体布局

CSS的 columns 属性(如 columns、column-count 和 column-width)通常用于多列文本布局,而不是直接用于砌体布局。然而,结合 columns 和 visibility 属性,可以在某些情况下实现类似砌体布局的效果,虽然它并不完..

使用System.Linq.Dynamic.Core扩展库动态构建 LINQ 查询

System.Linq.Dynamic.Core 是一个扩展库,用于在运行时动态构建 LINQ 查询,支持字符串形式的表达式解析和动态查询操作。它是 .NET 的一个强大工具,适合处理需要灵活定义查询逻辑的场景,例如动态过滤、排序、投影..

小米开源智能家居平台 ha_xiaomi_home 使用示例

小米近期在 GitHub 上开源了名为“ha_xiaomi_home”的项目,即 Home Assistant 米家集成组件。该组件由小米官方支持,旨在让用户在 Home Assistant 中集成和控制小米 IoT 智能设备。主要特点:官方支持:..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制
星辰影视-2025热门免费影视短剧平台熊猫影视-2025热门免费影视短剧平台番茄影视-2025热门免费影视短剧平台星光电影-2025热门免费影视短剧平台蜂鸟影院-2025热门免费影视短剧平台熊猫影视 - 全网高清免费影片聚合平台萝卜影院-2025热门电影电视剧免费在线播放-全站无广告高速播放下载樱花影院-2025热门免费影视短剧平台琪琪影视-2025热门免费影视短剧平台火影电影网-2025热门免费影视短剧平台悟空电影-2025热门免费影视短剧平台西瓜影院-2025热门免费影视短剧平台星空电影网-2025热门免费影视短剧平台好看电影网-2025热门免费影视短剧平台无忧影视网_高清影视在线观看分享平台_最新最全的免费影视短剧大全年钻网超清视界 - 全网高清免费短剧聚合平台极影公社-2025热门电影电视剧免费在线播放至尊影院-最新热门短剧免费电影网站_高清影视无弹窗极速播放星光电影-2025热门免费影视短剧平台河马影视-最新热门火爆的免费影视网站_高清影视夸克迅雷网盘下载叮当影视网-2025热门高清免费影视短剧分享平台70影视网 - 最新电影、电视剧、短剧、免费在线观看麻花影视网 - 高清免费聚合电影网西瓜影院-最新热门电影电视剧免费在线播放开心追剧网2048影视资源论坛-2048P.Com青青影视网-2025热门高清免费影视短剧分享平台八哥电影网_最新vip电影大全_热播电视剧_全网优质影视免费在线观看_老牌的免费在线影院_www.886958.com人人看电影-热播电视剧_2025年最新电影_人人影院高清在线免费观看天天影视网-高清免费电影、电视剧、短剧在线观看星辰影视-最新热门无广告的免费电影网站_高清影视无弹窗极速播放电影天堂爱看影院追剧达人U系列网盘资源橙子影视网天堂影视网天堂影视神马影院网大众影视网星辰影视网