使用Nodejs搭建简单的HTTP服务器 - 内网穿透公网远程访问
const http = require('http');
const tunnel = require('tunnel-ssh');
// 创建本地HTTP服务器
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!\n');
});
// 监听本地端口
server.listen(8080, () => {
console.log('服务器运行在 http://localhost:8080/');
});
// 使用tunnel-ssh建立SSH隧道,将本地端口映射到远程服务器的公网地址
tunnel(8080, {
host: '远程服务器的IP地址',
port: 22, // SSH端口
username: '远程服务器的用户名',
password: '远程服务器的密码', // 或者私钥密码
localHost: 'localhost',
localPort: 8080,
remotePort: 8080, // 远程端口可以与本地端口不同
// 成功建立隧道时的回调
onOpen(tunnel) {
console.log(`隧道开启,公网地址: http://${tunnel.address()}:${tunnel.remotePort}`);
},
// 隧道关闭时的回调
onClose() {
console.log('隧道已关闭。');
}
});
在这个示例中,我们创建了一个简单的HTTP服务器,并使用tunnel-ssh
库通过SSH隧道将本地服务器的8080端口映射到了远程服务器的公网地址。隧道建立成功后,我们可以通过输出的公网地址来远程访问我们的本地HTTP服务器。
评论已关闭