访问虚拟机中的jupyter
2018-06-13 本文已影响7人
ReadyShow
如果你也遇到了如下刚性要求:
- 在VirtualBox中运行着Ubuntu系统
- VirtualBox不能给Ubuntu分配桥接网卡
- 不希望在VirtualBox中运行浏览器
安装Ubuntu系统
这一步应该是没有什么难点
为Ubuntu配置虚拟网卡
默认情况下,VirtualBox已经为Ubuntu分配了一个NAT的网络环境。
NAT网络
NAT网络的所有流量,使用宿主机的IP地址上网。NAT不会要求路由器分配新的IP地址给Ubuntu。
如果你公司的路由器,有足够的IP地址供你玩耍,则可以选择桥接网卡的方式。此时虚拟机会要求路由器分配一个新的IP地址供Ubuntu使用,仿佛Ubuntu真的存在一个网卡。Ubuntu、你的电脑以及其他的电脑都处于同一个局域网内。
桥接网卡
由于公司的网络限制,不接受陌生mac地址,不分配新IP。所以只能使用NAT
端口映射
在使用NAT上网的时候,Ubuntu内的局域网和宿主的局域网是不同的网段。Ubuntu可以访问你的宿主机,但是不能反向访问。原因是宿主机不可能感知到Ubuntu的内网存在。
借助于端口映射,能够访问Ubuntu的指定端口,便可以实现宿主机访问Ubuntu。
端口转发
配置端口映射
主机端口是指主机访问时的端口号,子系统端口是指Ubuntu对应的端口号
关闭Ubuntu防火墙
Ubuntu默认是开启防火墙的,任何服务,都无法被其他电脑访问。
jupyter也是一个服务器,提供http的服务,这样才能在网页上展示。想要在宿主机上也访问jupyter,那就要求Ubuntu关闭防火墙,至少是允许jupyter被访问。
- 关闭Ubuntu防火墙
sudo ufw disable
- 开启Ubuntu防护墙
sudo ufw enable
- 卸载iptables
apt-get remove iptables
- 关闭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
ubuntu启动jupyter
测试jupyter
回到宿主机,打开浏览器,访问http://127.0.0.1:8888/
输入之前配置的密码,即可正常使用。