centos7 远程启动jupyter notebook
重点参考:[CentOS7.5 部署 Jupyter Notebook 并通过外网访问 - SegmentFault 思否](https://segmentfault.com/a/1190000022706529 )]
核心步骤如下:
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'
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)
3.结果显示
4.测试
新建一个文件,写一段代码打印当前时间测试:
我们可以看到新建的文件后缀为.ipynb
,这是notebook特有的文件后缀, 以后我们就可以通过jupty浏览器写代码了,就像写文章一样方便,这里写好测试好代码之后可以导出python文件即可,非常的方便。
重点说明:
如果使用的云服务,还需要再云服务器控制页面,开启端口访问
# 开放8888端口, centos默认防火墙是firewall
firewall-cmd --zone=public --add-port=8888/tcp --permanent
systemctl restart firewalld.service
# 查看开放情况
firewall-cmd --list-all
请注意:阿里云一定要到安全组里去开放8888端口!腾讯云不需要
参考
[解决FirewallD is not running问题 - WayneLiu123 - 博客园](https://www.cnblogs.com/wayneliu007/p/10372601.html )]
[Centos查看端口占用情况和开启端口命令 - 小强斋太 - 博客园](https://www.cnblogs.com/xqzt/p/4919191.html )]