当前位置: 首页 > news >正文

jupyter支持跨机器远程访问

1. 远程访问场景

本地往往缺少GPU设备,为了让我们的代码能在有GPU设备的机器上运行,就需要在远程机器上启动jupyter notebook, 这意味着我们要在本地机器的浏览器上访问远程机器上的jupyter notebook。但是直接按ip访问会报如下错误:

在这里插入图片描述

因为jupyter notebook默认只允许本地访问,需要一些步骤来开启跨机器访问。

2. 生成配置文件

Jupyter Notebook的配置文件(jupyter_notebook_config.py)用于设置各种启动选项。如果该文件尚未生成,你可以通过以下命令来生成它(如果已经生成则跳过此步):

jupyter notebook --generate-config

生成的配置文件默认位于: ~/.jupyter/jupyter_notebook_config.py

3. 设置允许任何IP

vim ~/.jupyter/jupyter_notebook_config.py 
# 这将允许来自任何IP地址的连接
c.NotebookApp.ip = '*'# 这表示在启动服务器时不要自动打开浏览器。由于你是从远程机器访问,所以不需要在服务器上打开浏览器。
c.NotebookApp.open_browser = False

重新启动jupyter notebook访问,结果没能直接进入,而是提示我输入密码或者token。
在这里插入图片描述

看来jupyter notebook对于跨机器访问是开启了安全性校验的,需要配置密码才能访问。

4. 配置密码

通过以下命令来生成一个加密的密码,并将其存储在配置文件中:

jupyter notebook password

一路按照提示输入密码,并再次输入验证你的密码,即可设置完成。
在这里插入图片描述

生成的加密密码将保存在~/.jupyter/jupyter_server_config.json文件,查看此文件可以看到hash加密后的密码:
在这里插入图片描述

将此加密密码复制到jupyter_notebook_config.py文件的c.ServerApp.password配置项中。
在这里插入图片描述

5. 访问notebook

再次启动jupyter notebook,就会直接提示输入密码:

在这里插入图片描述
输入密码后,成功进入远程机器的jupyter工作环境。
在这里插入图片描述
登上去的第一件事,看看GPU设备信息:
在这里插入图片描述

6. 后台启动jupyter

上面启动jupyter是通过远程ssh终端启动的,存在的一个问题是:当远程终端会话过期时,jupyter notebook就无法访问,因为它也随着远程终端的关闭而停止。

解决方法和linux上运行的其它程序一样,需要使用nohup在后台启动,如下:

nohup jupyter notebook > jupyter.log 2>&1 &

这样就能像访问百度这些web服务一样,随时打开浏览器都能访问。

参考资料

  • vscode远程运行jupyter notebook

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言——数组和排序
  • 赛蓝企业管理系统 AuthToken/Index 身份认证绕过漏洞复现
  • Redis1
  • vscode的json文件解析
  • Halcon学习之create_shape_model案例分解
  • TiDB系列之:使用Flink TiDB CDC Connector采集数据
  • Java中的Map(如果想知道Java中有关Map的知识点,那么只看这一篇就足够了!)
  • 【过题记录】 8.3
  • CTFHUB-SSRF-DNS重绑定 Bypass
  • [米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-01 以太网协议介绍
  • ai web 1.0靶机漏洞渗透详解
  • 搭建个人的金融系统-----第一章,数据库设计
  • Arch Linux - 2-安装中文输入法
  • 解析 C# Dictionary 代码
  • Comfyui实例容器运行横向扩展
  • 【Leetcode】101. 对称二叉树
  • CSS 专业技巧
  • C学习-枚举(九)
  • ES6--对象的扩展
  • IDEA常用插件整理
  • js
  • Js基础——数据类型之Null和Undefined
  • Laravel Telescope:优雅的应用调试工具
  • Python爬虫--- 1.3 BS4库的解析器
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • ReactNative开发常用的三方模块
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 高程读书笔记 第六章 面向对象程序设计
  • 前端学习笔记之观察者模式
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​什么是bug?bug的源头在哪里?
  • # Apache SeaTunnel 究竟是什么?
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #QT(TCP网络编程-服务端)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (南京观海微电子)——I3C协议介绍
  • (一)VirtualBox安装增强功能
  • (转)创业家杂志:UCWEB天使第一步
  • (转)大型网站的系统架构
  • (转)母版页和相对路径
  • (转)项目管理杂谈-我所期望的新人
  • (转载)Linux网络编程入门
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net Core 中间件与过滤器
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET和.COM和.CN域名区别
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @Autowired @Resource @Qualifier的区别
  • @Data注解的作用