本地使用远程服务器的jupyter notebook

本文详细介绍了如何配置和使用Jupyter Notebook进行远程访问。步骤包括生成配置文件,设置密码,创建SSL证书,修改配置以允许任意IP访问,并通过SSH隧道实现本地与服务器端口映射,确保安全的远程工作流程。
摘要由CSDN通过智能技术生成

本文参考了 link,并做了适合自己的修改。

本地使用远程服务器的jupyter notebook

远程服务器端

  1. 生成jupyter notebook配置文件(终端输入命令)

    jupyter notebook --generate-config

  2. 配置密码 (终端打开ipython/python,输入两行命令)

    from notebook.auth import passwd
    passwd()

    input自己想要设置的密码,之后会自动返回一个密码序列,复制下来,第四步用

  3. 配置密码生成ssl证书(最后需要用https登录jupyter), 进入想要保存证书的目录内,粘贴以下命令

    openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

  4. 修改jupyter配置文件

    vim ~/.jupyter/jupyter_notebook_config.py

    对以下几行做如下修改:

    c.NotebookApp.password=u'sha1:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
                                  //  (注:XXXXXXXXXXXXXXXXXXXXXXX 为第2步中生成的密码序列)
    c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
    c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
                         //(注:为第3步中生成的mycert.pem和mykey.key两个文件的绝对路径,可用pwd查看)        
    c.NotebookApp.ip = '*'
    c.NotebookApp.open_browser = False
    c.NotebookApp.port = 8889     //自己可以设定成别的
    c.NotebookApp.notebook_dir = u'/home/me/ipython' # 指定工作目录(可以不指定,在哪里运行命令,就在哪里工作)
    

    :x 或者 :wq! 保存并退出

  5. 在服务器上运行jupyter Notebook

    nohup jupyter notebook --no-browser --port=8888 --ip=0.0.0.0 –allow-root > /usr/local/myout.log 2>&1 &

    nohup不挂断的运行,可以使命令永久运行下去,和用户终端没有关系,关闭终端不会影响它的运行;no-browser是指不在服务器上使用浏览器;port可以设置成任何空闲的端口号(上一步的配置文件中我把默认端口号8888改改为了8889,这里用8888依然可以);ip如果不设置为0.0.0.0我的服务器会报错:OSError: [Errno 99] Cannot assign requested addres;[-u表示无缓冲输出(执行程序后的输出内容)暂时不加-u];–allow-root 如果不是root用户,就不用写;>将nohup默认的输出重定向到指定文件;2>&1用来将标准错误2重定向到标准输出1中;&是指在后台运行,和nohup配合使用,使命令永久在后台执行,最后可以用kill -9 进程号 结束程序

    终端查看程序进程号

    pgrep jupyter

本地端

本地打开https: //服务器ip:8889
注意:因为生成了key,cert这些东西,所以必须用https访问。

-----------------------------------------下面方法弃用-----------------------------------------

  1. 打开Xshell,选择与该服务器的连接会话,右键,点属性在这里插入图片描述然后添加隧道,设置端口号全部为8889,写上说明"远程使用jupyter notebook"
    在这里插入图片描述设置完成后,打开会话,就可以用https : //localhost:8889访问jupyter了。

  2. 本地和服务器端口映射

    ssh username@server_ip -L127.0.0.1:8000:127.0.0.1:8888

    username就是在服务器上开设的用户名,server_ip就是服务器的IP,至于“-L127.0.0.1”中为什么是127.0.0.1我也不太清楚(L和127之间没有空格),然后就是将本地的8000端口映射到服务器端的8888端口,也就是jupyter notebook使用的端口

  3. 本地浏览器打开服务器上的Jupyter Notebook

    在本地的浏览器里输入https://127.0.0.1:8000,回车,自动跳转到输入密码页面,输入第2步中自己设置的密码(注意不是返回的那个密码序列),就可以打开服务器上的Jupyter Notebook了,开始使用吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值