Jupyter 远程连接服务器

Jupyter 远程连接服务器,第1张

Jupyter 远程连接服务器
  • 前言
  • 一.在服务器端
    • 1.安装anaconda,jupyter notebook基础环境
    • 2.服务器端的设置
      • Step 1:添加配置文件
      • Step 2:生成密码
      • Step 3:修改配置文件
      • Step 4:启动jupyter notebook
  • 二.在本地端
  • 1.服务器未采用Docker
  • 2.服务器采用Docker
      • step1:cmd打开dos命令窗口,敲入此句命令,将本地端口与服务器端相映射。
      • step2:浏览器访问

前言

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

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

一.在服务器端 1.安装anacondajupyter notebook基础环境

Anaconda 下载地址

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

2.服务器端的设置 Step 1:添加配置文件
jupyter notebook --generate-config

通过这个命令创建就在**~/.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’

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

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

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

Step 3:修改配置文件

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

vim ~/.jupyter/jupyter_notebook_config.py 

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

Step 4:启动jupyter notebook

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

mkdir workspace
cd workspace
jupyter notebook

正常运行输出的结果:

二.在本地端

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

1.服务器未采用Docker

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

http://[远程IP]:8888/tree
2.服务器采用Docker

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

step1:cmd打开dos命令窗口,敲入此句命令,将本地端口与服务器端相映射。
ssh -L [本地端口]:localhost:[远程端口] [远程用户名]@[远程IP] -p [ssh连接端口]

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

step2:浏览器访问

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

输入在服务器端设置的密码即可成功访问。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/916087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存