Jupyter 远程连接服务器

前言

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

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

一.在服务器端

1.安装anaconda,jupyter 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密码,即成功进入。
结果
输入在服务器端设置的密码即可成功访问。

  • 12
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘梓枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值