CentOS7.5 部署 Jupyter Notebook 并通过外网访问

服务器部署在阿里云,想要在服务器内部进行python脚本测试比较麻烦,这时就想到了Jupyter Notebook,我们安装后即可直接在浏览器进行文学化编程,非常方便高效。

一、Jupyter notebook 是什么?

如何使用 Jupyter notebook。Jupyter notebook 是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。

Jupyter Notebook 已迅速成为处理数据的必备工具。其用途包括数据清理和探索、可视化、机器学习和大数据分析。我为我的个人博客创建了一个 notebook 示例,它展示了 notebook 的许多特点。这项工作通常在终端中完成,也即使用普通的 Python shell 或 IPython 完成。可视化在单独的窗口中进行,而文字资料以及各种函数和类脚本包含在独立的文档中。但是,notebook 能将这一切集中到一处,让用户一目了然。

GitHub 上也直接支持 Jupyter notebook 的渲染。借助此出色的功能,你可以轻松地共享工作。http://nbviewer.jupyter.org/ 也会提供 GitHub 代码库中的 notebook ,以及存储在其他地方的 notebook。

二、jupyter notebook使用

安装

pip install jupyter notebook

启动

jupyter notebook --allow-root # 如果是root用户则需要授权
# jupyter notebook

启动之后我们可以看到结果:

(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端口的防火墙:

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

通过上边的试了下,内网可以访问,外网还不能访问,还需要再做相关配置。

三、外网访问

1、Jupyter密码配置

将生成的密钥复制下来

(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'

CentOS7.5 部署 Jupyter Notebook 并通过外网访问_第1张图片

2、修改配置文件

1.生成配置文件,输入:

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

3、防火墙开启
我们再上边已经开启了防火墙,如果没开启记得一定要开启8888这个端口的防火墙,否则公网访问不了。

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

3、远程访问 Notebook

1.启动 Jupyter

jupyter lab --allow-root

2.浏览器输入

打开浏览器,输入http://公网ip地址:8888(例如,我这里输入http://98.126.219.176:8888)

CentOS7.5 部署 Jupyter Notebook 并通过外网访问_第2张图片

3.结果显示

CentOS7.5 部署 Jupyter Notebook 并通过外网访问_第3张图片

4.测试
新建一个文件,写一段代码打印当前时间测试:
CentOS7.5 部署 Jupyter Notebook 并通过外网访问_第4张图片

我们可以看到新建的文件后缀为.ipynb,这是notebook特有的文件后缀, 以后我们就可以通过jupty浏览器写代码了,就像写文章一样方便,这里写好测试好代码之后可以导出python文件即可,非常的方便。


相关文章:
Python 基础八-Jupyter notebook入门学习
云服务centos搭建jupyter notebook并通过外网访问
如何从外网调用内网的jupyter-notebook

你可能感兴趣的:(python,centos7,linux)