通过 Raspberry Pi 使用 SSH 隧道/端口转发向外部公开本地开发服务器

通过 Raspberry Pi 使用 SSH 隧道/端口转发向外部公开本地开发服务器

我正在尝试向外部公开我的本地开发服务器,以便不在我的本地网络中的用户可以测试我的网络应用程序。测试 Web 应用程序的用户必须在浏览器中使用 localhost:3000 和 localhost:8080 运行应用程序,因为这些域已列入白名单。我认为这将是一个完美的应用程序,可以让我的 Raspberry Pi 使用 SSH 隧道充当代理。这是我的设置:

在此输入图像描述

本地端口转发(即 ssh -L)运行良好,但我无法使远程端口转发(即 ssh -R)工作。我无法从客户端或 Raspberry Pi 加载 localhost:3000 或 localhost:8080。我什至GatewayPorts yes按照此处的说明在我的 Raspberry Pi 上启用:https://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html。事实上,这些 URL 不会加载到我的 Raspberry Pi 上,这意味着这个问题出在 Raspberry Pi 和我的开发服务器之间。我怎样才能让这个代理工作?

答案1

事实证明我的问题是因为我在服务器上使用Windows(和Powershell的ssh)进行远程端口转发(ssh -R):

在此输入图像描述

当我将服务器切换到 Mac 后,它工作得很好:

在此输入图像描述

注意:客户端可以是使用 Powershell 的 ssh 的 Windows,并且仍然可以正常工作:

在此输入图像描述

我仍然想要一台支持远程端口转发的 Windows 服务器,但问题似乎是 Windows 特有的,而不是系统的设计。

相关内容