首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RPi上的NodeJs Lan应用程序到谷歌云平台,再到自定义域

RPi上的NodeJs Lan应用程序到谷歌云平台,再到自定义域
EN

Stack Overflow用户
提问于 2021-10-16 23:13:09
回答 1查看 21关注 0票数 0

我已经能够在谷歌云平台上设置我的虚拟机,并且能够使用本教程成功地通过SSH登录我的RPi:

https://medium.com/jj-innovative-results/how-to-access-a-raspberry-pi-anywhere-with-reverse-ssh-and-google-cloud-platform-59b6a89501a

现在,我希望将端口8080上的HTTP数据传输到我的虚拟机,其中我的局域网应用程序托管在RPi上,而不是端口22上的SSH数据。我该如何去做,这是可能的吗?

从那里,我计划购买一个域名,以查看我的局域网应用程序在互联网上。我不想使用诸如remoteit/zerotier这样的服务来做这件事

请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2021-10-17 00:17:34

出于安全原因,我建议在Internet和您的SSH服务器之间设置一个代理。您可以跳过步骤#1和#2,并使用大于1024的端口号,例如8080。切勿在端口80上直接运行SSH服务器,因为这需要权限。

步骤1)

安装Apache或Nginx。

步骤2)

在Apache/Nginx中设置代理,将端口80上的连接转发到端口8080。

Nginx配置示例:

代码语言:javascript
复制
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://127.0.0.1:8080";
    }
}

步骤3)

将VM SSH服务器配置为允许端口转发选项AllowTcpForwarding。

设置隧道以打开VM上的端口8080,并转发到Raspberry Pi上的侦听端口(示例9000)。

在raspberry Pi上运行的SSH命令示例:

代码语言:javascript
复制
ssh -R 8080:127.0.0.1:9000 <VM IP Address> <Your credentials>

详细信息。此命令打开公共VM服务器上的端口8080,并将流量转发回系统的端口9000。

注意:我没有测试SSH命令,但这应该是正确的。在互联网上有很多例子,比如link。此答案将帮助您了解流量是如何路由(转发)的。

步骤4)

将运行在Raspberry Pi上的应用程序配置为侦听端口9000 (示例)。

概述,客户端连接到VM端口80,VM端口8080通过SSH隧道转发到Raspberry Pi,Raspberry Pi具有侦听端口9000的应用程序。

当然,您可以更改端口号,我使用了唯一的端口号以防止混淆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69600207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档