当前位置:   article > 正文

Jupyter 远程连接服务器_jupyter连接服务器

jupyter连接服务器

前言

大家都知道Jupyer Notebook是一个基于网页的交互式计算笔记本环境,实现了文字和代码的完美结合,你甚至可以边学习边做笔记,文本编辑还支持 Markdown 格式,插入各种数学公式也不在话下。

总所周知深度学习的算法往往都是在服务器上运行的,如何能够在本机利用服务器的算例完成交互呢?Jupyter Notebook的强大之处在于它是基于网页的,所以完全可以服务器端开启服务,本地电脑打开网页,运行各种服务器端的代码。
最后引出今天的问题:怎么配置Jupyter远程连接服务器呢?
笔者在网上看了很多帖子,也遇到了很多坑,故决定记录下来,也希望能帮到大家。

一.在服务器端

1.安装anaconda,jupyter notebook基础环境

Anaconda 下载地址

这一部分较为简单,直接搜索即可,基本没有什么坑。

2.服务器端的设置

Step 1:添加配置文件

jupyter notebook --generate-config
  • 1

通过这个命令创建就在**~/.jupyter/**下面生成了配置文件jupyter_notebook_config.py
注意是在当前用户的家目录下。

Step 2:生成密码

可以手动输入设置密码,或者直接回车自动生成,一共有两种方法:
eg1:利用ipyhton 内核
打开ipython,在ipython环境下创建一个密文的密码:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: ‘sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274’
  • 1
  • 2
  • 3
  • 4
  • 5

把生成的密文‘sha:ce…’复制下来
eg2:利用jupyter内核

$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json
  • 1
  • 2
  • 3
  • 4

这样就在**~/.jupyter/**下面生成了密码文件jupyter_notebook_config.json

Step 3:修改配置文件

在配置文件~/.jupyter/jupyter_notebook_config.py中找到下面几行修改并且取消注释

vim ~/.jupyter/jupyter_notebook_config.py 

  • 1
  • 2
c.NotebookApp.ip='*'  # 星号代表任意ip,这个跟mysql的权限设置一样,所以说知识是互通的
c.NotebookApp.allow_remote_access = True  # 允许远程连接
c.NotebookApp.password = u'sha1:...'  # 复制的那个密码文件json的一串密码放到这里 
c.NotebookApp.open_browser = False  # 不自动打开浏览器
c.NotebookApp.port =8888  # 可自行指定一个端口, 访问时使用
c.NotebookApp.allow_root = True #允许使用root用户去运行jupyter

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Step 4:启动jupyter notebook

我们先创建一个工作目录workspace,以后每次都在这个目录下打开jupyter notebook,我们在网页中创建的文件夹,写的代码也都会在这个文件夹下

mkdir workspace
cd workspace
jupyter notebook
  • 1
  • 2
  • 3

正常运行输出的结果:
结果

二.在本地端

这个地方是容易出错的,尤其是服务器端采用docker管理时,更要注意ssh的端口和jupyter端口的映射关系。

1.服务器未采用Docker

此时不需要为ssh分配特定端口,默认的都22端口,故只需要指出jupeter的端口,我前面设置的88888,直接通过浏览访问:

http://[远程IP]:8888/tree
  • 1

2.服务器采用Docker

此时需要特别指出Docker在主服务器上为ssh 分配的映射端口号,方法如下:

step1:cmd打开dos命令窗口,敲入此句命令,将本地端口与服务器端相映射。

ssh -L [本地端口]:localhost:[远程端口] [远程用户名]@[远程IP] -p [ssh连接端口]
  • 1

注意:这里的远程端口是上面配置的端口号(例如我配置的是8888,这里就需要写8888),本地端口随便写一个就可以,我这里写的是8887
输入上面的命令之后,会提示输入远程连接的密码,输入密码不报错即连接成功
在CMD中输入jupyter notebook
结果

step2:浏览器访问

在浏览器中输入 localhost:8887 它会自动映射到服务器的jupyter服务,出现jupyter窗口,输入你设定的jupyter密码,即成功进入。
结果
输入在服务器端设置的密码即可成功访问。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/245238
推荐阅读
相关标签
  

闽ICP备14008679号