一文搞定内网穿透使用
内网穿透是一种网络技术,它允许外部互联网用户访问部署在本地网络(内网)中的服务或设备。通常,家庭或企业网络都位于内网,连接到外部互联网需要通过 NAT(网络地址转换)或者路由器来实现。然而,由于内网中设备的 IP 地址通常是私有的,外部用户无法直接访问这些设备,这就带来了两个主要挑战:NAT 问题:内网设备的私有 IP 地址无法直接在互联网中使用,需要通过路由器将外部请求转发到内网设备。
1.什么是内网穿透
内网穿透是一种网络技术,它允许外部互联网用户访问部署在本地网络(内网)中的服务或设备。
通常,家庭或企业网络都位于内网,连接到外部互联网需要通过 NAT(网络地址转换)或者路由器来实现。
然而,由于内网中设备的 IP 地址通常是私有的,外部用户无法直接访问这些设备,这就带来了两个主要挑战:
NAT 问题:内网设备的私有 IP 地址无法直接在互联网中使用,需要通过路由器将外部请求转发到内网设备。
动态 IP 地址:即使能够实现 NAT 转发,本地网络中的 IP 地址可能是动态的,每次重启设备时会发生变化,增加了管理和访问的复杂性。
常见的内网穿透解决方案
端口映射:通过在路由器上进行端口映射,将外部流量定向到内网中的特定设备。这种方法虽然可行,但通常需要配置路由器并且涉及安全风险,操作复杂。
第三方穿透工具:如 ngrok、花生壳,napapp 等工具通过云中转服务器,将本地服务映射到外部可访问的 URL,从而解决了复杂的端口映射问题。
反向代理技术
反向代理是内网穿透的核心技术之一。
反向代理服务器位于用户和内部服务器之间,接收外部请求后,将请求转发到内部服务器,再将响应返回给外部用户。
通过这种方式,反向代理隐藏了内部服务器的实际位置和架构,确保了内部网络的安全性.
原理图如下:

2.内网穿透的作用
1.当我们需要把本地开发的应用展示给外部用户时,常常会因为无法直接访问而陷入困境。
就为了展示一下,买服务、域名,搭环境,费钱又费事。使用内网穿透可以直接让客户直接访问自己本机开发的应用,省时省力。
2.开发经常会接入到各种回调地址,例如微信支付成功回调,企业微信添加人员回调等等,这些通知回调有的要求是http,有的https协议,那么本地开发调试的时候就没办法打断点,因为本地都是localhost,这个时候使用内网穿透可以本地调试这些回调,十分方便。
3.内网穿透工具使用
1.ngrok(推荐使用)
ngrok 的主要功能
HTTPS 支持:ngrok 自动为你的本地服务生成 HTTPS URL,确保数据传输的安全性。
自定义域名和子域名:ngrok 支持绑定自定义域名或为你的服务生成静态子域名,确保 URL 不会频繁更换。
数据分析:ngrok 提供实时流量数据分析,帮助你监控每一个请求和响应,快速发现问题。
隧道管理:可以轻松管理和查看正在运行的隧道,支持多个隧道同时运行。
多协议支持:除了 HTTP/HTTPS,ngrok 还支持 TCP 和其他协议的映射。
国内可用:这一点,遇到过相关问题的人,算是发现救星了~
如何使用 ngrok
接下来我们来实际操作,看看 ngrok 是如何工作的。
假设你在本地运行了一个 Web 应用,监听的端口号为 80,我们可以通过以下几步将它暴露到互联网。
第一步:下载并安装 ngrok
访问 ngrok 官方网站,根据你的操作系统下载对应的安装包并进行安装。
官网下载地址:

直接下载在直接在这个目录开启命令控制行即可
这里需要一个点
使用之前要配置token,这个token是注册ngrok得到的,所以想用先注册一下

在cmd里面执行一个这个命令,token换成你自己的
ngrok config add-authtoken $YOUR_AUTHTOKEN
出现下面就配置成功了

然后执行这个命令就可以使用了
ngrok http 8089
出现下面就可以使用了

缺点:因为是国外开发的,所以免费版的有时候请求不稳定,建议VPN开启全局模式,如果请求不到,可能是免费服务器的问题,稍等他恢复正常即可。
2.natapp
1.注册
2.购买免费隧道

3.下载客户端

然后再下载的natapp.exe文件下新建一个config.ini文件,里面内容如下
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken= #对应一条隧道的authtoken
clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
配置完成之后双击natapp.exe就好了

缺点:https协议的需要花钱,免费版的不支持。
3.花生壳
最开始我一开始用的就是花生壳免费版,支持http和https协议,非常方便,但是后来免费版本版本改动之后有个请求拦截,就没办法调试,如果需要用就得加钱升级到专业版,然后就没有使用了。使用流程如下:
1.首先注册贝锐花生壳
添加映射

然后使用即可,如果本地调试接收不到回调是因为被花生壳侧拦截了,他会有个提示页面,就会导致回调失败。建议换成ngrok
更多推荐



所有评论(0)