ngrok 除了可以通过命令行的方式使用以外,还可以通过 SDK 的方式来实现。ngrok针对主要的编程语言都提供了 SDK,这里以 node.js 为例,看看如何使用 ngrok SDK 实现应用程序内网穿透。
1. 创建node工程
代码语言:javascript复制mkdir myngrok
cd myngrok
npm init -y
2. 安装 ngrok SDK
代码语言:javascript复制npm install @ngrok/ngrok
3. 使用 ngrok SDK
代码语言:javascript复制const http = require('http');
const ngrok = require('@ngrok/ngrok');
// Create webserver
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('hello, ngrok web server');
}).listen(8080, () => console.log('Node.js web server at 8080 is running...'));
// Get your endpoint online
ngrok.connect({ addr: 8080, authtoken_from_env: true })
.then(listener => console.log(`Ingress established at: ${listener.url()}`));
4. 运行应用程序
代码语言:javascript复制NGROK_AUTHTOKEN=<YOUR_AUTH_TOKEN> node index.js
替换 <YOUR_AUTH_TOKEN> 为 ngrok 网站上注册的令牌。
运行后会得到类似下面的输出
代码语言:javascript复制Node.js web server at 8080 is running...
Ingress established at: https://9e5d-58-247-78-82.ngrok-free.app
5. 验证
访问 https://9e5d-58-247-78-82.ngrok-free.app,可以看到页面显示 hello, ngrok web server。