如何远程访问(从外网)到在Ubuntu的服务器上的docker上运行的jupyter笔记本
任何人都可以帮助回答我的问题如下:
我有一个Ubuntu的服务器后面的路由器,Ubuntu的服务器IP静态分配为192.168.1.100
。 Docker在ubuntu服务器上运行。
我已经设置了路由的端口转发,以便我可以远程SSH访问到Ubuntu服务器。 我已经从路由器后面的另一台计算机进行了testing,我可以通过192.168.1.100:8888
成功访问Docker上的jupyter笔记本。
但是,当我尝试从路由器外部的计算机访问时,我无法访问jupyter笔记本。 请问我可以使用什么知识产权?如何从外部访问?
谢谢。
最简单和最安全的方法可能是创build一个SSH隧道 – 这样你就不必将Jupyter服务器暴露给公共互联网。
在Putty中的Connection – > SSH – > Tunnels选项卡下,input以下内容:
source-port: 8888 destination-port: 192.168.1.100:8888
点击添加,然后像平常一样开始会话。 现在,您的客户端机器的端口8888将被隧道传送到服务器的端口8888.您可以通过在服务器上运行nc -l -p 8888
并在客户端的浏览器中inputhttp://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。