如何设置端口转发通过SSH和内网穿透访问WSL上托管的网站

问题描述 投票:0回答:2

大家好,这是我问题的前提

我们的实验室刚刚购买了一台 Windows 工作站,其中附带了一些适用于我们也购买的仪器的软件。人们不断地使用这些软件,但我也需要使用它来使用 R 进行一些数据分析。显然计算机不能全部由我使用,因此我在计算机上安装了 WSL 2 Ubuntu 20.04,希望在其上运行 rstudio 服务器它并远程连接到 R 会话并编写我的代码。

R studio 服务器运行良好。我可以在 WSL 上启动服务器,在 Windows 中打开 localhost:8787 网页,R studio 就在那里。

然后我需要弄清楚如何将 WSL 连接到我自己的笔记本电脑。按照本教程,我首先使用 Windows SSH SSH 到工作站,并使用 bash 作为默认 shell。这将自动在工作站上启动 WSL 供我使用。

此外,工作站和我的笔记本电脑不在同一网络中,因此我使用 ngrok 公开工作站的端口 22 以供 SSH 通过。我会跑

ngrok tcp 22
在工作站的 cmd 中,这会将端口 22 连接到公共 IP,例如 0.tcp.ngrok.io:11111。然后从我的笔记本电脑运行
ssh -p 11111 [email protected]
来访问工作站上的 WSL。

到目前为止一切顺利。我可以从笔记本电脑连接到工作站并在命令行上运行 R。问题是我不知道如何在我的笔记本电脑上打开 rstudio 服务器网页。我阅读了有关端口转发的内容并尝试了

ssh -L 8787:localhost:8787 -p 11111 [email protected]
,但是当我尝试在笔记本电脑上打开 localhost:8787 时,它说没有从 localhost:8787 发送数据(或类似的内容)。我根据本教程搜索了解决方案并在 WSL 端进行了更改。改了之后,网站还是打不开。我还尝试在我的笔记本电脑上设置防火墙规则为
netsh advfirewall firewall add rule name=”Rstudio Server” dir=in action=allow protocol=TCP localport=8787
,但它也不起作用。

所以我的问题是

我应该如何正确设置它,因为这里有太多端口:我的计算机的 8787 端口、ngrok 的 11111 端口、工作站 Windows 的 22 端口、在 WSL 上与 Windows 配合使用的任何端口以及 rstudio 服务器的 8787 端口。

ssh portforwarding wsl-2 ngrok rstudio-server
2个回答
0
投票

今天我找到了问题的答案,万岁!看来我对存在太多端口的直觉并不完全错误。按照本教程将 WSL 的主机名设置为 localhost 中的另一个名称并且未更改任何其他内容后,我的笔记本电脑知道应该打开哪个网站。现在我终于可以在笔记本电脑上打开 localhost:8787 并远程使用 R studio!


0
投票

我在 WSL2 上运行 Anaconda 并从外部访问 Jupyter Notebook 时也遇到了同样的困难。我所做的是在 WSL2 上安装 ZeroTier One,它会创建虚拟网络适配器,将您连接到您可以配置的网络,因此,如果您在第二台计算机或电话上安装了 ZTO,它将假装位于本地与所有其他客户建立网络。然后您可以从世界各地的任何网络连接到您的服务。而且这个 ZTO 运行无服务器,因此您实际上不需要在任何地方托管它。

© www.soinside.com 2019 - 2024. All rights reserved.