Linux 树莓皮SSH反向隧道,它是如何工作的?帮我设置一下

Linux 树莓皮SSH反向隧道,它是如何工作的?帮我设置一下,linux,apache,ssh,webserver,raspberry-pi,Linux,Apache,Ssh,Webserver,Raspberry Pi,我一直在用树莓pi做实验,我想用树莓上的gpio做一些家庭自动化实验,但我想把它连接到互联网上,这样我就可以从任何地方读取状态并进行更改 我一直在读到反向ssh连接是实现这一点的最佳方式,因为它是安全的 我所读内容背后的想法是,如果我有一个web服务器可供使用(我将使用我公司的进行测试,他们不会介意),我可以从pi用ssh连接到它,然后从我的计算机用ssh连接到它,在ssh连接到服务器后,我可以通过一个安全外壳控制pi 我的问题是,由于pi正在连接到服务器,这会导致任何防火墙问题吗?这不应该,因

我一直在用树莓pi做实验,我想用树莓上的gpio做一些家庭自动化实验,但我想把它连接到互联网上,这样我就可以从任何地方读取状态并进行更改

我一直在读到反向ssh连接是实现这一点的最佳方式,因为它是安全的

我所读内容背后的想法是,如果我有一个web服务器可供使用(我将使用我公司的进行测试,他们不会介意),我可以从pi用ssh连接到它,然后从我的计算机用ssh连接到它,在ssh连接到服务器后,我可以通过一个安全外壳控制pi

我的问题是,由于pi正在连接到服务器,这会导致任何防火墙问题吗?这不应该,因为这是一个出站连接,这是我理解的这样做的实际优势

我想这样做,只要我们都连接到互联网,我就可以在任何地方拥有pi并从任何地方访问它,如果不是因为这个,我只会创建一个vpn,但是,如果我将pi更改为我的公司,例如,我将无法从家里控制它。。。理解我的意思,为什么我要研究这个反向通道选项

另外,再往前走一点,我的计划是创建一个web界面来控制pi,我是否能够拥有一个javascript界面并通过apache向pi发送ssh命令


感谢您的时间,如果需要更多信息,请询问:)

您当然可以在Pi上安装apache并创建API或排序

不过,对于SSH部分,请参阅以下快速阅读:

我假设在你的例子中,Pi是“防火墙”设备,而公司Web服务器是某种“网关”。 如果该假设正确:

ssh-f-N-r10000:localhost:22username@ip_address_of_webserver

现在,Web服务器正在侦听端口10000并转发到端口22上的pi。 在笔记本电脑上:

ssh username@localhost -p 10000
(用户名是Pi用户名)
这将通过Web服务器连接到Pi。

这正是我发现这一点时读到的文章之一,但似乎有一个问题,ssh不适用于我们的Web服务器,我们可能需要一个vps才能工作,而且,我被告知要使用nginx而不是apache,我对任何一个都是新手,所以,有什么想法吗?不确定为什么不是Apache,但有一些选择。Node.js甚至可能是一个选项。:)我从来没有使用过node.js,你对此有什么好的文档来源吗?对于node.js本身,这里有一个好的开始:对于Rapberry Pi和node.js: