ngrok 内网穿透

本文介绍了使用ngrok实现内网穿透并映射外网的步骤。首先需在官网注册获取Authtoken,接着下载ngrok.exe,可从官网或作者提供的百度网盘下载windows版。最后执行命令,在windows系统依次运行“ngrok authtoken 秘钥”和“ngrok http 端口”即可完成。

步骤

  1. 官网注册https://dashboard.ngrok.com
    在这里插入图片描述

  2. 获取Authtoken

在这里插入图片描述

  1. 下载ngrok.exe
    官网下载,或下载我的百度网盘,windows版
    链接: https://pan.baidu.com/s/1lvyjt09Qdv4FQbBdarE2iQ 提取码: w2fa

  2. 执行命令,完工
    –windows
    1.ngrok authtoken 秘钥(如Authtoken)
    2.ngrok http 端口(如8080)
    在这里插入图片描述

还有其他内网穿透,比如 natapp参考文档

### 关于 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、付费专栏及课程。

余额充值