我想在我的ubuntu vm上运行jupyter笔记本,我使用vagrant进行了解决。
$ jupyter notebook --no-browser --port 8004 [I 18:26:10.152 NotebookApp] Serving notebooks from local directory: /home/vagrant/path/to/jupyter/notebook/directory [I 18:26:10.153 NotebookApp] 0 active kernels [I 18:26:10.154 NotebookApp] The Jupyter Notebook is running at: http://localhost:8004/ [I 18:26:10.154 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Jupyter笔记本在localhost中启动。但要从我的主机访问笔记本电脑,我需要在0.0.0.0中启动笔记本电脑。如何绑定ip 0.0.0.0以便它在vm中路由到127.0.0.1?
我的主机是windows,vm是ubuntu 14.04.4
答案 0 :(得分:4)
首先生成jupyter_notebook_config.py文件
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3'
默认情况下,jupyter_notebook_config.py会对所有内容进行评论。修改以下条目:
$ jupyter notebook --generate-config
并将其更改为#c.NotebookApp.ip = 'localhost'
c.NotebookApp.ip = '*'
并将其更改为#c.NotebookApp.open_browser = True
答案 1 :(得分:2)
如上所述,您需要转发虚拟机上的端口。
当你运行虚拟机时,除非你授予它,否则盒子上的网络通常很少/不能访问外部世界。通常情况下,您可以建立从VM到外部的连接,但是侦听端口是另一个步骤。
让我们说你的主机名是myhostname,当你把myhostname:8080放在浏览器中时它将被拒绝,因为你的盒子没有运行任何东西。现在让我们假设您的虚拟机正在8080上运行服务器,并且您想要将这两者联系起来。您需要按照以下说明操作,以便当您点击myhostname:8080时,您的本机操作系统将看到VM正在侦听该端口。请求将被传递给VM,然后VM将其转发给您的jupyter实例。
这些是我发现的最佳说明:
https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/
以下是我的设置的一些截图。我跑了' python -m http.server 8000'有服务器连接。
像这样设置您的VM:VM setup
从本机操作系统连接到虚拟服务器,如下所示: Hitting the server from your native OS
您域中的其他用户应该能够通过以下方式连接:8000。您可以通过输入' hostname'来在Windows上获得该功能。在命令行上。
假设您想要将您的http服务器暴露给端口80上的其他用户,但仍然在服务器内的端口8000上运行,您只需更改端口中的portforwarding配置,以便主机端口为80,而不是8000.
希望这有帮助
答案 2 :(得分:2)
您可以使用--ip
参数来更改笔记本服务器将监听的IP地址。
运行:
jupyter notebook --ip=0.0.0.0
注意:运行jupyter notebook --help
来检查参数。
--ip=<Unicode> (NotebookApp.ip)
Default: 'localhost'
The IP address the notebook server will listen on.
答案 3 :(得分:0)
看起来像在较新版本的Jupyter中,应该在配置中进行的更改与上述答案有些不同(否则您会收到错误“''似乎不是IPv4或IPv6地址”)。
整个解决方案:
运行:
c.NotebookApp.ip = '0.0.0.0'
在下面更改配置:
c.NotebookApp.open_browser = False
jupyter notebook
现在您可以简单地运行Jupyter: