我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ngrok服务中怎么实现内网穿透

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ngrok服务中怎么实现内网穿透

这期内容当中小编将会给大家带来有关ngrok服务中怎么实现内网穿透,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

原理
ngrok 建立一个隧道,将主机A的http请求 传递给 主机B,从而实现内网穿透。

ngrok分为client端(ngrok)和服务端(ngrokd)

ngrok服务中怎么实现内网穿透

实际使用中的部署如下:

图中内网主机上安装客户端。
公网主机 安装服务端。
client public 则代表 访问你电脑的用户或者朋友。

实践
现在都云时代,各种服务都能找到提供商。内网穿透也是如此。ngrok服务端相当麻烦,如果你只是简单的穿透,又不是什么敏感信息,可以找到很多 服务提供商。

  • 下载客户端

         根据你的个人电脑系统下载匹配的客户端。下载地址: https://ngrok.com/download

  • 启动

  1. ./ngrok http 4444 


ngrok by @inconshreveable                                                                                                                                                                                                     (Ctrl+C to quit)  Session Status                online Session Expires               7 hours, 59 minutes Version                       2.2.8 Region                        United States (us) Web Interface                 http://127.0.0.1:4040 Forwarding                    http://ada02116.ngrok.io -> localhost:4444 Forwarding                    https://ada02116.ngrok.io -> localhost:4444  Connections                   ttl     opn     rt1     rt5     p50     p90                               0       0       0.00    0.00    0.00    0.00

如果此时访问 http://ada02116.ngrok.io 则等于访问了 localhost:4444

自建ngrok服务
使用别人的服务,存在一些限制。例如不稳定、安全问题,费用昂贵等。因此可能需要自己搭建ngrok服务端。
自建服务需要具备的条件:
1、具备独立ip的服务器。例如阿里云、腾讯云等。
2、需要域名。如果是国内则需要备案。

  • 配置域名

  • 增加2条A记录,指向你的服务器。

ngrok服务中怎么实现内网穿透

添加安全组。
开放3个端口。这里我选择4443、4444、8081端口。
其中4443是ngrok自身通信使用。
4444 后面tcp端口转发使用。
8081 则是http请求转发使用。默认是80 但是这里80端口我分配给nginx了。
截图中少截图了4444的配置。

ngrok服务中怎么实现内网穿透

  • 编译服务端。

         这里采用docker镜像来实现。

  • 登录服务器,创建文件夹 ngrok-server ,包含2个文件

         文件Dockerfile 内容如下

FROM golang:1.7.1-alpine ADD build.sh / RUN apk add --no-cache git make openssl RUN git clone https://github.com/inconshreveable/ngrok.git --depth=1 /ngrok RUN sed -i "109,109s/tcp/tcp4/g" /ngrok/class="lazy" data-src/ngrok/server/tunnel.go RUN sed -i  "57,57s/tcp/tcp4/g" /ngrok/class="lazy" data-src/ngrok/conn/conn.go RUN sh /build.sh EXPOSE 8081 VOLUME [ "/ngrok" ] CMD [ "/ngrok/bin/ngrokd"]

文件build.sh内容如下

export NGROK_DOMAIN="ngrok.xxxx.com" cd /ngrok/ 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  make release-server GOOS=linux GOARCH=386 make release-client GOOS=linux GOARCH=amd64 make release-client GOOS=windows GOARCH=386 make release-client GOOS=windows GOARCH=amd64 make release-client GOOS=darwin GOARCH=386 make release-client GOOS=darwin GOARCH=amd64 make release-client GOOS=linux GOARCH=arm make release-client

需要修改的地方是
export NGROK_DOMAIN="ngrok.xxxx.com"
修改为你自己的域名。

  • 构建镜像。

         运行

docker build -t ngrok .

注意 最后一个 . 别少了。

  • 启动容器

         运行

docker run -it  -p 8081:8081 -p 4443:4443 -p 4444:4444  -d ngrok /ngrok/bin/ngrokd -domain="ngrok.xxxx.com" -httpAddr=":8081"

到这里ngrok服务端已经完成。

下载客户端。
进入上面启动的容器,下载对应的客户端。例如容器id c71b99a242fa运行 docker inspect c71 可以查看这个容器的具体信息。

ngrok服务中怎么实现内网穿透

进入图中划线的目录下,再进入Bin下。

ngrok服务中怎么实现内网穿透

这里就是客户端。对应的不同系统的版本。
386代表是 32系统。amd64表示 64位。
linux和window无需多言。

下载命令可以通过很多方式。例如ftp或者scp命令。

scp -P 你的服务端端口 -r  root@你的服务端ip地址:/var/lib/docker/volumes/6e5383924c5caf1b1b61250f31aa002308dcb371ebd9a7efad2419e20107a362/_data/bin/darwin_amd64/ngrok  ./ngrok

这里要注意下权限,如果你不是用root,可能没法子拷贝。

  • 配置客户端

         创建配置文件 config.yml,其中内容如下

server_addr: "ngrok.xxxx.com:4443" trust_host_root_certs: false tunnels:   webapp:    proto:      http: 8081    subdomain: test   tcp12345:     remote_port: 4444     proto:       tcp: 12345

这里配置了2个隧道。一个http的请求,一个tcp转发。

  • 启动客户端

  1. ./ngrok  -config=config.yml start-all 


ngrok服务中怎么实现内网穿透

在浏览器访问 上图中地址即可看到本地内容。

ngrok服务中怎么实现内网穿透

增加tcp的转发截图。

ngrok服务中怎么实现内网穿透

测试下12345端口的功能。

  • 监听12345端口。

         执行

nc -l 12345
  • 在其他电脑或者本地执行

nc ngrok.xxxx.com 4444

这样就可以了。输入和输出都会显示。
如图

ngrok服务中怎么实现内网穿透

上述就是小编为大家分享的ngrok服务中怎么实现内网穿透了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ngrok服务中怎么实现内网穿透

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用内网穿透工具Ngrok代理本地服务

这篇文章给大家分享的是有关如何使用内网穿透工具Ngrok代理本地服务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们在微信开发过程中,需要不断调试,微信服务器无法访问我们本地的接口,那么我们就需要一个内网穿透的
2023-06-29

使用Nodejs怎么实现内网穿透服务

这篇文章给大家介绍使用Nodejs怎么实现内网穿透服务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 局域网内代理我们先来回顾上篇,如何实现一个局域网内的服务代理?因为这个非常简单,所以,直接上代码。const n
2023-06-15

怎么配置frp服务器实现内网穿透

本篇内容主要讲解“怎么配置frp服务器实现内网穿透”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置frp服务器实现内网穿透”吧!  内网服务器ip地址:192.168.2.100 ,作为代
2022-12-16

怎么使用云服务器实现内网穿透

使用云服务器实现内网穿透可能需要您提供内网IP地址和端口号,以便管理员可以在云主机上创建私有网络。内网穿透的过程可以大致如下:确定需要穿透的内网地址和端口号:在云服务器上安装相应的客户端程序和脚本,例如:https://ycloud.cloudflare.com/your-host.aspx等,这些脚本将用于创建私有网络。在云服务器上创建私有网络:使用以下命令创建一个私有网络,并配置IP地
2023-10-26

怎么使用云服务器实现内网穿透服务

使用云服务器实现内网穿透服务的具体步骤如下:选择适当的云服务器:选择一款适合您需要服务的云服务器。有多种云服务器供您选择,包括AmazonWebServices(AMS)、AWS、GoogleCloud等。注册并获取许可证:按照许可证要求在云服务器上注册ID。使用服务:使用云服务器提供的服务。配置服务:配置云服务器的功能和配置。可以使用命令行工具(如mkdir命令、cd命令、pubco
2023-10-26

利用云服务器实现内网穿透

利用云服务器实现内网穿透有许多潜在的好处,例如:保护敏感数据:当你的数据通过云服务器传输到公共云或其他第三方应用程序,你的敏感信息就会被加密或匿名化处理,以确保只有授权用户能够访问和操作。这样就可以确保数据不被未经授权的人访问,从而保护你的数据。减少延迟:通过使用云服务器,你可以减少你的客户端和云服务器之间的交互,从而减少云服务器的延迟。当你在云服务器的托管端运行客户端时,你可以将它们在客
2023-10-26

怎么使用云服务器实现内网穿透功能

1.什么是内网穿透内网穿透是指通过互联网将内网中的服务映射到公网上,使得外网用户可以访问内网中的服务。在实际应用中,内网穿透可以用于远程控制、文件共享、Web服务器等场景。2.云服务器实现内网穿透的原理云服务器可以作为内网穿透的中转站,将公网请求转发到内网中的服务。具体实现方式如下:在云服务器上安装内网穿透工具,如Ngrok、Frp等。在内网中的服务所在的机器上安装客户端,并将客户端
2023-10-26

怎么使用云服务器实现内网穿透连接

使用云服务器实现内网穿透连接的方式有很多种,以下是其中一种常用的方法:内网IP地址切换:可以使用系统虚拟IP或本地网络地址(LAN地址)来实现内网穿透连接。切换后,可以使用云服务器提供的远程管理功能或其他方式进行管理。使用Ping功能:可以在云服务器中配置一个PingID,可以帮助管理员实时检测内网连接。管理员可以配置Ping命令,例如使用"ping123",来测试内网连接是否正常。测试过
2023-10-26

内网穿透服务器怎么设置

内网穿透是一种将外网请求转发到内网服务器的技术,通常使用内网穿透服务器来实现。下面是内网穿透服务器的设置步骤:1、选择一款内网穿透工具选择一款适合自己的内网穿透工具,比如frp、ngrok等。2、下载并安装内网穿透工具下载并安装所选择的内网
2023-03-20

怎么使用云服务器实现内网穿透连接服务

使用云服务器实现内网穿透连接服务是一种常见的网络连接方式,可以帮助实现内网访问外网。以下是使用云服务器实现内网穿透连接服务的步骤和方法:步骤:配置服务器端的虚拟防火墙:在客户端和云服务器之间安装云服务器提供的虚拟防火墙,可以根据虚拟防火墙配置的规则进行访问限制。在虚拟防火墙上添加虚拟访问控制:在客户端和云服务器之间安装云服务器提供的虚拟访问控制,可以根据虚拟访问控制规则,只允许内网客户端
2023-10-26

云服务器怎么做内网穿透

云服务器提供了一种方法来绕过防火墙和其他网络安全措施,以下是一个可能的内网穿透方案:虚拟专用网络(VPN)。虚拟专用网络(VPN)是一种网络技术,使得一个用户可以通过一个公共网络,如互联网,与另一个用户共享一个虚拟网络。用户可以使用VPN来访问云服务器并进行数据存储和访问,同时不会暴露自己的网络位置。DHCP服务。DHCP服务允许用户指定IP地址和子网掩码,以便分配和管理虚拟网络内的IP地
2023-10-26

怎么使用云服务器实现内网穿透服务功能

使用云服务器实现内网穿透服务功能是一种常见的网络攻击手段,它可以通过对内网终端电脑进行远程操控,绕过防火墙、网络防护等安全保护措施,进入目标内网计算机系统并获取用户敏感信息或者执行恶意操作。以下是具体的步骤和建议:步骤:选择云服务器供应商:首先,应选择信誉较好、可靠的云服务器供应商,确保其提供的服务稳定、安全、可靠。注册账号并连接服务器:在云服务器供应商的网站或联系他们的客服获取注册账号
2023-10-26

云服务器内网穿透的实现方法

1.了解内网穿透的概念和原理内网穿透是指通过互联网将内网中的服务暴露给外网访问的一种技术。在传统的网络环境中,内网中的设备无法直接被外网访问,而通过内网穿透技术,可以实现将内网中的服务映射到公网上,使得外网用户可以直接访问内网中的服务。2.选择合适的内网穿透工具目前市面上有很多内网穿透工具可供选择,如花生壳、Ngrok、frp等。这些工具都可以实现内网穿透的功能,但具体选择哪个工具需要根据自己的需求和实际情况...
2023-10-27

怎么在Mac中使用网云穿内网穿透

这期内容当中小编将会给大家带来有关怎么在Mac中使用网云穿内网穿透,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。网云穿内网穿透Mac版本使用演示环境:Mac 10.13.6网云穿 1.01. 下载网云穿到
2023-06-03

怎么使用云服务器实现内网穿透功能呢

使用云服务器实现内网穿透功能是一个非常流行的技术,它可以帮助企业用户轻松地访问他们的内部网络,并对其数据进行加密。具体来说,使用云服务器实现内网穿透功能的方法如下:安装云服务器:首先需要将云服务器的管理界面安装到您的计算机上。可以将该操作系统路径设置为您的Windows操作系统或macOS系统的本地计算机,并将“云服务”选项更改为“已启用”。创建内网连接:接下来,您可以为云服务器添加内网
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录