CentOS7.5 部署 Jupyter Notebook 並經過外網訪問

服務器部署在阿里雲,想要在服務器內部進行python腳本測試比較麻煩,這時就想到了Jupyter Notebook,咱們安裝後便可直接在瀏覽器進行文學化編程,很是方便高效。

1、Jupyter notebook 是什麼?

如何使用 Jupyter notebook。Jupyter notebook 是一種 Web 應用,能讓用戶將說明文本、數學方程、代碼和可視化內容所有組合到一個易於共享的文檔中。css

Jupyter Notebook 已迅速成爲處理數據的必備工具。其用途包括數據清理和探索、可視化、機器學習和大數據分析。我爲個人我的博客建立了一個 notebook 示例,它展現了 notebook 的許多特色。這項工做一般在終端中完成,也即便用普通的 Python shell 或 IPython 完成。可視化在單獨的窗口中進行,而文字資料以及各類函數和類腳本包含在獨立的文檔中。可是,notebook 能將這一切集中到一處,讓用戶一目瞭然。html

GitHub 上也直接支持 Jupyter notebook 的渲染。藉助此出色的功能,你能夠輕鬆地共享工做。http://nbviewer.jupyter.org/ 也會提供 GitHub 代碼庫中的 notebook ,以及存儲在其餘地方的 notebook。python

2、jupyter notebook使用

安裝

pip install jupyter notebook

啓動

jupyter notebook --allow-root # 若是是root用戶則須要受權
# jupyter notebook

啓動以後咱們能夠看到結果:web

(base) [root@css Code]# jupyter notebook --allow-root
[I 14:08:27.170 NotebookApp] JupyterLab extension loaded from /root/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 14:08:27.170 NotebookApp] JupyterLab application directory is /root/anaconda3/share/jupyter/lab
[I 14:08:27.174 NotebookApp] Serving notebooks from local directory: /work/Code
[I 14:08:27.174 NotebookApp] The Jupyter Notebook is running at:
[I 14:08:27.174 NotebookApp] http://localhost:8888/?token=04f6dcbcca528d3f3d0ca0ff349ebee4d755a872b3c31b42
[I 14:08:27.175 NotebookApp]  or http://127.0.0.1:8888/?token=04f6dcbcca528d3f3d0ca0ff349ebee4d755a872b3c42
[I 14:08:27.175 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 14:08:27.201 NotebookApp] No web browser found: could not locate runnable browser.
[C 14:08:27.201 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/nbserver-58623-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=04f6dcbcca528d3f3d0ca0ff349ebee4d755a872b3c42
     or http://127.0.0.1:8888/?token=04f6dcbcca528d3f3d0ca0ff349ebee4d755a872b3c42

咱們能夠看到,能夠經過http://127.0.0.1:8888 進行訪問,若是須要公網IP訪問,須要打開8888端口的防火牆:shell

firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

經過上邊的試了下,內網能夠訪問,外網還不能訪問,還須要再作相關配置。編程

3、外網訪問

一、Jupyter密碼配置

將生成的密鑰複製下來vim

(base) [root@css scraper]# ipython
Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.12.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from notebook.auth import passwd                                                                                                                                                 

In [2]: passwd()                                                                                                                                                                         
Enter password: 
Verify password: 
Out[2]: 'sha1:3c7ece6d01a3:aef0f9818ea49be2c2f2cc5f5a6228fd327ec00d'

file

二、修改配置文件

1.生成配置文件,輸入:centos

jupyter lab --generate-config

配置文件輸出路徑:瀏覽器

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

2.打開 jupyter_notebook_config.py 配置文件,修改一下下面幾處。服務器

vim /root/.jupyter/jupyter_notebook_config.py
# 將ip設置爲*,意味容許任何IP訪問
c.NotebookApp.ip = '*'
# 這裏的密碼就是上邊咱們生成的那一串
c.NotebookApp.password = 'sha1:3c7ece6d01a3:aef0f9818ea49be2c2f2cc5f5a6228fd327ec00d'
# 服務器上並無瀏覽器能夠供Jupyter打開
c.NotebookApp.open_browser = False
# 監聽端口設置爲8888或其餘本身喜歡的端口
c.NotebookApp.port = 8888
# 咱們能夠修改jupyter的工做目錄,也能夠保持原樣不變,若是修改的話,要保證這一目錄已存在
#c.MappingKernelManager.root_dir = '/root/jupyter_run'
# 容許遠程訪問
c.NotebookApp.allow_remote_access = True

三、防火牆開啓
咱們再上邊已經開啓了防火牆,若是沒開啓記得必定要開啓8888這個端口的防火牆,不然公網訪問不了。

firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

三、遠程訪問 Notebook

1.啓動 Jupyter

jupyter lab --allow-root

2.瀏覽器輸入

打開瀏覽器,輸入http://公網ip地址:8888(例如,我這裏輸入http://98.126.219.176:8888)

file

3.結果顯示

file

4.測試
新建一個文件,寫一段代碼打印當前時間測試:
file

咱們能夠看到新建的文件後綴爲.ipynb,這是notebook特有的文件後綴, 之後咱們就能夠經過jupty瀏覽器寫代碼了,就像寫文章同樣方便,這裏寫好測試好代碼以後能夠導出python文件便可,很是的方便。


相關文章:
Python 基礎八-Jupyter notebook入門學習
雲服務centos搭建jupyter notebook並經過外網訪問
如何從外網調用內網的jupyter-notebook

相關文章
相關標籤/搜索