将Jupyter Notebook连接到远程服务器

时间:2020-04-13 09:32:10

标签: python jupyter-notebook

我有一个Linux服务器。在此我已经与Jupyter一起安装了Miniconda3和其他python软件包。

现在,我想在服务器上运行笔记本并在浏览器中打开。

为此,在安装所有软件包之后,我要做:

user@remoteip:$ jupyter notebook --no-browser --port=8890

现在,我正在复制服务器IP地址和端口,以在本地浏览器中打开它。

http://remoteip:8890

但是它没有打开任何东西。

然后,我遵循this SO answer中给出的所有建议,在远程服务器anaconda甚至本地anaconda jupyter配置文件上的配置文件中添加了所需的语句。

但这完全没有帮助。

之后,我必须在本地终端中按以下方式移植转发:

user@localhost: ssh -N -f -L localhost:8890:localhost:8890 user@remoteip

然后打开

localhost:8890 

现在,它打开了笔记本,要求输入令牌,然后它可以工作。

我的问题是,我们每次需要打开端口转发才能在远程服务器上打开笔记本吗?我的一位同事说他没有进行任何端口转发,而在第一步之后,他可以通过输入

打开笔记本

http://remoteip:8890

所以我不确定我们是否需要进行端口转发才能打开服务器jupyter笔记本以在浏览器中打开,还是可以直接使用remoteip地址打开笔记本?

编辑:

根据以下Alex的建议,登录开发服务器后运行以下命令。

(ds_env) user@devvm1049:~$ jupyter notebook --no-mathjax --no-browser --ip 0.0.0.0 --port 8890
[I 23:49:56.032 NotebookApp] Serving notebooks from local directory: /home/user
[I 23:49:56.032 NotebookApp] The Jupyter Notebook is running at:
[I 23:49:56.032 NotebookApp] http://devvm.cdw.com:8890/
[I 23:49:56.032 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

将以上链接复制到了chrome和Safari,但未打开任何内容。

我已经在这篇文章中做了以上建议。到目前为止,唯一起作用的方法是进行端口隧道传输,但是每次必须打开远程服务器上的jupyter时,这都是3个步骤。

这可能是一些端口阻塞问题吗?我尝试对便携式计算机上的远程服务器执行ping操作,但没有执行任何ping操作。

1 个答案:

答案 0 :(得分:1)

如果在启动服务器时指定--ip选项,则可以允许远程连接而无需端口转发。

jupyter notebook --no-mathjax --no-browser --ip 0.0.0.0 --port 8890
# The --no-mathjax improves loading over slow connections

不过,建议不要 。参见running a public jupyter notebook server。如果这样做,强烈建议您按照该链接中的说明设置密码。