我有一个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
现在,它打开了笔记本,要求输入令牌,然后它可以工作。
我的问题是,我们每次需要打开端口转发才能在远程服务器上打开笔记本吗?我的一位同事说他没有进行任何端口转发,而在第一步之后,他可以通过输入
打开笔记本所以我不确定我们是否需要进行端口转发才能打开服务器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操作。
答案 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。如果这样做,强烈建议您按照该链接中的说明设置密码。