訪問虛擬機中的jupyter

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

  1. 在VirtualBox中運行著Ubuntu系統
  2. VirtualBox不能給Ubuntu分配橋接網卡
  3. 不希望在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被訪問。

  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
ubuntu啟動jupyter

測試jupyter

回到宿主機,打開瀏覽器,訪問http://127.0.0.1:8888/

遠程訪問

輸入之前配置的密碼,即可正常使用。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。