如何远程访问(从外部网络)ubuntu服务器上docker上运行的jupyter笔记本

如何远程访问(从外部网络)ubuntu服务器上docker上运行的jupyter笔记本,docker,jupyter,Docker,Jupyter,有人能帮我回答以下问题吗 我在路由器后面有一个ubuntu服务器,ubuntu服务器ip由我静态分配为192.168.1.100。Docker正在ubuntu服务器上运行 我已经设置了路由的端口转发,以便可以远程ssh访问ubuntu服务器。我已经在路由器后面的另一台计算机上进行了测试,我可以通过192.168.1.100:8888成功访问docker上的jupyter笔记本 然而,当我试图从路由器外的计算机访问时,我无法访问jupyter笔记本。请问我应该使用什么IP,或者如何从外部访问 谢谢

有人能帮我回答以下问题吗

我在路由器后面有一个ubuntu服务器,ubuntu服务器ip由我静态分配为
192.168.1.100
。Docker正在ubuntu服务器上运行

我已经设置了路由的端口转发,以便可以远程ssh访问ubuntu服务器。我已经在路由器后面的另一台计算机上进行了测试,我可以通过
192.168.1.100:8888
成功访问docker上的jupyter笔记本

然而,当我试图从路由器外的计算机访问时,我无法访问jupyter笔记本。请问我应该使用什么IP,或者如何从外部访问


谢谢。

最简单、最安全的方法可能是创建一个SSH隧道,这样您就不必将Jupyter服务器暴露在公共internet上

在Putty中的选项卡Connection->SSH->Tunnels下,输入以下内容:

source-port: 8888
destination-port: 192.168.1.100:8888
单击添加,然后像正常一样启动会话。现在,客户端机器的端口8888将通过隧道连接到服务器的端口8888。您可以通过在服务器上运行
nc-l-p8888
并输入
http://localhost:8888
在客户的浏览器中。然后,请求应该显示在服务器上

为了使Jupyter而不是netcat能够使用此功能,您可能需要设置一些,因为Jupyter在非本地连接方面非常挑剔:

# Allow connections to come from anywhere
c.NotebookApp.allow_origin = '*'
# Allow connections to refer to the server however they want to
c.NotebookApp.ip = '*'
您还应该确保在Jupyter中启用了某种访问控制,否则任何可以访问客户端8888端口的人都可以访问Jupyter