Ngrok内网穿透

一、什么是ngrok?

ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和

分析所有通道上的流量,便于后期分析和重放。

二、为什么使用ngrok(官网解释)

  • 提供免费内网穿透服务,免费服务器支持绑定自定义域名
  • 管理内网服务器,内网web进行演示
  • 快速开发微信程序和第三方支付平台调试
  • 本地WEB外网访问、本地开发微信、TCP端口转发
  • 本站新增FRP服务器,基于 FRP 实现https、udp转发
  • 无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离


三、怎么使用ngrok进行内网穿透?

1、搭建本地服务器,如一个Tomcat服务器,端口为8080,启动如下,此时为本地内网服务。

2、下载ngrok压缩包,下载地址是:ngrok下载

3、下载后解压文件如下:


4、打开CMD窗口(最好是管理员身份),进入解压后的文件夹,里面包含ngrok.cfg和ngrok.exe,使用命令行启动ngrok,命令是ngrok -config=ngrok.cfg -subdomain xxx 端口号,其中xxx是你想要域名的开头部分(三级域名),端口号是本地服务器启动的端口号,例如我本地Tomcat启动的端口号是8080,三级域名暂为weidu,启动命令就是:

ngrok -config=ngrok.cfg -subdomain weidu 8080


5、启动成功后界面如下:


其中Tunnel Status为运行状态,有三种状态:online表示在线,成功的进行内网穿透;connect表示正在连接;reconnect表示连接失败,需要重新执行命令。

6、无论是在内网中,还是在外网中此时可以进行域名访问,对应你本地的服务。


7、启动ngrok成功后的cmd里有一个127.0.0.1:4040的地址,这个地址为ngrok的管理后台,在这个后台里你可以清楚的看到请求你本地服务器的操作


此时为本地内网服务。
### 关于 Ngrok 内网穿透的使用教程 #### 什么是内网穿透内网穿透是一种通过特定的技术手段,使位于局域网中的设备能够被外部互联网访问的方法。对于开发者而言,这是一项非常实用的功能,尤其是在需要向他人展示本地运行的服务或者调试远程应用程序时[^1]。 #### Ngrok 的基本概念 Ngrok 是一款流行的开源工具,用于创建安全的隧道来连接本地服务与公共互联网之间的通信通道。它支持 HTTP 和 TCP 协议,并提供了一个简单的命令行界面以及图形化管理平台[^2]。 #### Linux 下安装并配置 Ngrok 以下是基于 Linux 系统环境下设置 Ngrok 的具体方法: 1. **下载二进制文件** 访问官方站点获取最新版本的压缩包后解压即可得到可执行程序。 2. **启动基础服务** 假设目标监听的是本机上的 Web 应用,默认端口号为 `80` ,那么可以通过如下方式快速建立一条通往外网的链接: ```bash ./ngrok http 80 ``` 3. **自定义域名绑定** 如果希望拥有更加个性化的 URL 地址,则可以在启动参数里加入 `-hostname` 参数指定想要使用的主机名;当然前提是该名称已经指向正确的 DNS A记录值。 ```bash ./ngrok http 80 -hostname=yourdomain.com ``` 4. **利用 Systemd 实现开机自动加载** 编辑 `/etc/systemd/system/ngrok.service` 文件内容如下所示: ```ini [Unit] Description=ngrok After=network.target [Service] ExecStart=/path/to/ngrok http 80 -hostname=yourdomain.com Restart=always [Install] WantedBy=multi-user.target ``` 接着启用并开启此服务单元: ```bash sudo systemctl daemon-reload sudo systemctl start ngrok sudo systemctl enable ngrok ``` #### 处理可能遇到的问题及其对策 - **隧道无法成功建立** 可能原因包括但不限于防火墙未允许相应端口的数据流入流出、内部网络环境特殊等原因造成断开重试等情况发生。此时应确认相关硬件设施已正确打开所需端口范围(比如常见的HTTP协议所依赖的标准端口即为80号)[^2]。 - **域名解析异常** 当发现输入设定好的地址却得不到预期响应的时候,请先尝试运用ping指令检测是否存在物理层面可达性的障碍;另外也要留意后台日志显示的状态信息是否有误配之处存在[^3]。 - **性能低下甚至超时现象频发** 考虑更改默认地理区域选项至距离较近的位置节点试试看效果如何改善。例如切换成亚洲太平洋地区(AP)作为首选项之一: ```bash ./ngrok http -region=ap 3000 ``` - **免费账户下每次重启都会改变子域名前缀部分** 对于此类困扰可通过升级成为Pro会员形式锁定专属定制URL路径从而避免反复调整带来的不便之处[^4]。 ```python import requests def test_ngrok_connection(domain='http://localhost:4040'): try: response = requests.get(f'{domain}/api/tunnels') tunnels_info = response.json() public_url = None for tunnel in tunnels_info['tunnels']: if 'public_url' in tunnel and ('https://' in tunnel['public_url']): public_url = tunnel['public_url'] break return f"Public Accessible Address is {public_url}" if public_url else "No active HTTPS tunnel found." except Exception as e: return str(e) print(test_ngrok_connection()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿人小郑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值