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

时间:2017-03-28 01:09:03

标签: docker jupyter

任何人都可以帮助回答我的问题:

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

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

但是,当我尝试从路由器外部的计算机访问时,我无法访问jupyter笔记本。请问我应该使用什么IP?如何从外部访问?

感谢。enter image description here

1 个答案:

答案 0 :(得分:1)

最简单,最安全的方法可能是创建SSH隧道 - 这样您就不必将Jupyter服务器暴露给公共互联网。

在Putty中,在选项卡下连接 - > SSH - >隧道,输入以下内容:

source-port: 8888
destination-port: 192.168.1.100:8888

单击“添加”,然后像平常一样启动会话。现在,您的客户端计算机的端口8888将通过隧道连接到服务器的端口8888.您可以通过在服务器上运行nc -l -p 8888并在客户端中输入http://localhost:8888来检查是否有效#&n 39;浏览器。然后该请求应显示在服务器上。

为了让它与Jupyter而不是netcat一起使用,您可能需要设置一些options,因为当涉及到非本地连接时,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。