ngrok 内网穿透

博客介绍了内网穿透工具ngrok,适用于需要域名的小程序等。需注册账号,可用github登录。在官网下载对应系统版本,解压后得到可执行文件。找到验证码,在文件目录下打开cmd执行命令完成安装,还介绍了暴露端口方法及修改命令,启动后台会打印请求信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候,像小程序这种,都需要一个域名,这里给大家介绍一种内网穿透工具 ngrok,这里需要注册个账号,如果你有github账号,直接用github登录即可

ngrok官网

点击 download 选择对应系统版本即可,这里我介绍我用的是windows

解压之后就是一个 ngrok.exe 可执行文件,之后我们就需要找到自己的验证码,

在这里插入图片描述

之后在 ngrok.exe目录下 打开 cmd,执行命令:

ngrok authtoken 你的authtoken码

就安装完成了。

执行 ngrok.exe 文件

在这里插入图片描述

这里就向我们介绍了暴露的端口的方法

修改暴露端口命令

ngrok http 8080

在这里插入图片描述

上面的 http://c18416b1.ngrok.iohttps://c18416b1.ngrok.io 都是端口暴漏的域名

这里ngrok还有一个好处,启动后台,发送请求时,会在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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值