访问虚拟机中的jupyter

如果你也遇到了如下刚性要求:

  1. 在VirtualBox中运行着Ubuntu系统
  2. VirtualBox不能给Ubuntu分配桥接网卡
  3. 不希望在VirtualBox中运行浏览器

安装Ubuntu系统

这一步应该是没有什么难点

为Ubuntu配置虚拟网卡

默认情况下,VirtualBox已经为Ubuntu分配了一个NAT的网络环境。


访问虚拟机中的jupyter_第1张图片
NAT网络

NAT网络的所有流量,使用宿主机的IP地址上网。NAT不会要求路由器分配新的IP地址给Ubuntu。
如果你公司的路由器,有足够的IP地址供你玩耍,则可以选择桥接网卡的方式。此时虚拟机会要求路由器分配一个新的IP地址供Ubuntu使用,仿佛Ubuntu真的存在一个网卡。Ubuntu、你的电脑以及其他的电脑都处于同一个局域网内。


访问虚拟机中的jupyter_第2张图片
桥接网卡

由于公司的网络限制,不接受陌生mac地址,不分配新IP。所以只能使用NAT

端口映射

在使用NAT上网的时候,Ubuntu内的局域网和宿主的局域网是不同的网段。Ubuntu可以访问你的宿主机,但是不能反向访问。原因是宿主机不可能感知到Ubuntu的内网存在。
借助于端口映射,能够访问Ubuntu的指定端口,便可以实现宿主机访问Ubuntu。


访问虚拟机中的jupyter_第3张图片
端口转发

访问虚拟机中的jupyter_第4张图片
配置端口映射

主机端口是指主机访问时的端口号,子系统端口是指Ubuntu对应的端口号

关闭Ubuntu防火墙

Ubuntu默认是开启防火墙的,任何服务,都无法被其他电脑访问。
jupyter也是一个服务器,提供http的服务,这样才能在网页上展示。想要在宿主机上也访问jupyter,那就要求Ubuntu关闭防火墙,至少是允许jupyter被访问。

  1. 关闭Ubuntu防火墙
sudo ufw disable
  1. 开启Ubuntu防护墙
sudo ufw enable
  1. 卸载iptables
apt-get remove iptables
  1. 关闭Ubuntu中的防火墙的其余命令
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F

安装juypter

首先安装ipython, jupyter notebook

apt-get install python
pip install ipython
pip install jupyter

配置jupyter

生成配置文件

jupyter notebook --generate-config

生成密码

jian@PC:~$ ipython
>>In [1]: from notebook.auth import passwd
>>In [2]: passwd()
>>Enter password: 
>>Verify password: 
>>Out[2]: 'sha1:5a7ccd3d08xxxxxx'

复制sha1内容

修改默认配置文件

vim ~/.jupyter/jupyter_notebook_config.py

jupyter_notebook_config.py文件全是注释,所以直接在第一行前插入以下内容:

c.NotebookApp.ip='*' # 就是设置所有ip皆可访问
c.NotebookApp.password = u'sha1:5a7ccd3d08xxxxxx' #刚才复制的那个sha1密文
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port =8888 #指定为NAT端口映射的端口号

启动jupyter

jupyter notebook
访问虚拟机中的jupyter_第5张图片
ubuntu启动jupyter

测试jupyter

回到宿主机,打开浏览器,访问http://127.0.0.1:8888/

访问虚拟机中的jupyter_第6张图片
远程访问

输入之前配置的密码,即可正常使用。

你可能感兴趣的:(访问虚拟机中的jupyter)