Jupyter Notbook如何安装配置并结合内网穿透实现无公网IP远程连接使用

文章目录

    • 推荐
      • 1.前言
      • 2.Jupyter Notebook的安装
        • 2.1 Jupyter Notebook下载安装
        • 2.2 Jupyter Notebook的配置
        • 2.3 Cpolar下载安装
      • 3.Cpolar端口设置
        • 3.1 Cpolar云端设置
        • 3.2.Cpolar本地设置
      • 4.公网访问测试
      • 5.结语

推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】

1.前言

在数据分析工作中,使用最多的无疑就是各种函数、图表、代码和说明文档,这些复杂的内容不仅让使用的人头晕脑胀,也让普通的聊天工具一脸蒙圈。沟通工具不给力,就没法协同办公,可数据分析又离不开多人配合,所以Jupyter Notebook就成为大部分数据工作人员的必备工具。正如之前所说,Jupyter Notebook很适应复杂内容的沟通,因此现在也在机器学习、深度学习和教育工作中获得广泛应用。

但Jupyter Notebook也有缺陷,就是被局限在局域网范围。那有什么工具能让Jupyter Notebook在公共互联网下使用吗,答案自然是肯定的。现在我们就来看看,如何[cpolar](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)与Jupyter Notebook配合,实现在公共互联网使用数据分析工作的无缝配合。

2.Jupyter Notebook的安装

由于jupyter notebook来源于IPython,所以想要安装使用jupyter notebook,就要先安装Python环境。好在Python安装并不复杂,直接到Python官网下载合适版本安装即可。

20230310100101

20230310100102

在安装Python时需要注意的是,要记得在安装界面下方勾选Add python.exe to PATH选项,即将python加入环境变量中。

20230310100103

Python安装完成后,就可以进行jupyter notebook的安装。

2.1 Jupyter Notebook下载安装

要安装jupyter notebook,我们需要打开windows的命令行界面,在命令行界面输入命令

pip install jupyter

系统会自动进行安装程序

20230310100104

安装完成后,再输入命令

jupyter Notebook

就能启动jupyter notebook程序

20230310100105

程序启动后,会在最下方显示jupyter notebook的地址,只要在浏览器中贴入这个地址(或者直接输入端口地址)就能打开jupyter notebook。

20230310100106

2.2 Jupyter Notebook的配置

由于我们的jupyter notebook需要连入公共互联网使用,因此有必要加入一道密码防护,并允许互联网连接。

先关闭之前的命令行窗口,再新开一个命令行窗口,输入命令

jupyter notebook --generate-config

新建一个配置文件,此时程序会反馈这个配置文件的所在位置,需要记住这个位置方便之后的操作。

20230310100107

接着输入创建访问密码的命令

jupyter notebook password

系统会要求输入两次密码(确认密码)。输入新密码后,就会反馈密码已经加入配置文件中。

20230310100108

最后,依照之前显示的config文件存放位置,打开jupyter_notebook_config.json文件,将其中那一长串密文复制下来。

20230310100109

再打开jupyter_notebook_congfig.py配置文件,添加下面的参数并保存保存

c.NotebookApp.ip='*' #允许访问的IP地址,设置为*代表允许任何客户端访问
c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$QcZlyMBu9icwhDDiUl+lZw$y4EP3WI4gZjc'#刚才生成密码时上面复制的密文
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True

20230310100110

保存所做的修改,退出修改界面,再回到命令行界面,启动jupyter notebook,就会发现在启动时出现了防火墙警报,点击允许访问即可。

20230310100111

同样的,jupyter notebook会出现一个带端口号的地址。

20230310100112

将这个地址粘贴到浏览器中,就会出现要求输入密码才能访问jupyter notebook的页面,就说明我们所做的配置已经生效。

20230310100113

完成了jupyter notebook的配置,我们就可以进行另一项必要工作,即安装cpolar,并使用cpolar为jupyter notebook生成一条专属的内网穿透数据隧道。

2.3 Cpolar下载安装

相较于jupyter notebook,cpolar的安装就无脑多了,只要在cpolar官网下载对应版本的cpolar安装程序即可。

20230310100114

笔者的操作系统为windows,因此选择windows的安装程序,双击.msi程序一路下一步即可。

20230310100115

20230310100116

需要注意的是,cpolar会为每个用户生成专属的数据隧道,并辅以复杂的token口令保证数据传输的安全,因此使用cpolar需要注册个人专属的账号,具体过程就不在此详述。

3.Cpolar端口设置

Cpolar在本地设备上安装完成后,就可以在客户端建立免费的数据隧道,连接jupyter notebook端口(具体过程参见3.2 cpolar本地设置)。不过免费的数据隧道每个24小时就会更新一次公共互联网地址,并不符合笔者的使用场景。因此笔者升级了cpolar的vip套餐,以便获得能长期稳定存在的内网穿透数据隧道。

3.1 Cpolar云端设置

要使用cpolar设立长期稳定数据隧道,需要先登录cpolar的官网,在cpolar主页面左侧找到预留按钮,进入预留数据隧道页面。在这个页面中,找到保留的二级子域名栏位。

20230310100117

保留二级子域名栏位中,我们需要对几个信息进行设置,以便cpolar生成一条我们定义的空白数据隧道,这条数据隧道最终会与jupyter notebook的端口连接起来。需要设置的信息为以下3项:

  • 地区:即服务器地址,就近选择就好;
  • 二级域名:即打算生成什么样的域名,这个二级域名会显示在最终域名中,因此需要注意输入的内容;
  • 描述:即这条数据隧道的说明,只要自己可以分辨即可。

20230310100118

完成设置后,就可以点击右侧的保留按钮,生成一条空白数据隧道。如果不打算再使用这条数据隧道,就可以点击右侧的小X,将这条数据隧道轻易删除。

20230310100119

3.2.Cpolar本地设置

在完成cpolar云端的空白数据隧道设置后,就可以回到本机的cpolar客户端,将空白数据隧道与本地jupyter notebook端口连接起来(如果没有cpolar的vip,可以直接在客户端设置临时隧道,而设置步骤都是一样的)。我们可以在开始菜单中找到cpolar的快捷方式,也可以在浏览器中输入localhost:9200,打开cpolar的Web-UI界面。

在cpolar客户端的主界面,点击左侧“隧道管理”项下的“创建隧道”按钮,进入本地隧道创建页面。与cpolar的云端设置一样,在cpolar客户端也需要进行几项设置。这些设置包括

  • 隧道名称:可以看做cpolar本地的隧道信息注释,只要方便分辨即可;
  • 协议:即以何种方式连接本地端口,这里我们选择http协议;
  • 本地地址:本地地址即为本地网站的输出端口号,在这里输入888;
  • 域名类型:由于我们已经在cpolar云端预留了二级子域名的固定隧道,因此勾选“二级子域名”(如果有自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“jupyterwork”。如果打算设置临时内网穿透数据隧道,这里则勾选“随机域名”;
  • 地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

完成这些设置后,就可以点击页面下方的“创建”按钮,生成能够穿透本地局域网的数据隧道。

20230310100120

本地隧道生成后,可以在隧道管理项下的隧道列表中看到,并且还可以在这里对这条隧道的开启、关闭、删除进行操作,当然,也能在编辑中对这条隧道的信息进行变更。

20230310100121

而这条隧道的公共互联网地址,则可以在状态项下的在线隧道列表中找到

20230310100122

4.公网访问测试

最后,我们将cpolar客户端显示的地址粘贴到位于本地局域网以外设备的浏览器中,就能打开本地的jupyter notebook。

20230310100123

5.结语

至此,我们就完成了使用cpolar生成的数据隧道,将内网的jupyter notebook发布到公共互联网的操作。虽然步骤看着很多,但实际操作起来非常快。只要注意对jupyter notebook配置时不要输入错误指令,应该能很轻松的完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java swing个人财务收支管理系统eclipse开发Mysql数据库CS结构java编程

一、源码特点 java swing 个人财务收支管理系统 是一套完善的窗体设计系统,对理解SWING java 编程开发语言有帮助,系统具有完整的源代码和数据库,,系统主要采用C/S模式开发。 应用技术:javamysql 开发工具&#xf…

web APIs总结(1)

1. 根据CSS选择器来获取DOM元素 (重点) 获取一个DOM元素我们使用谁?能直接操作修改吗?querySelector() 可以返回值:CSS选择器匹配的第一个元素,一个 HTMLElement对象。如果没有匹配到,则返null 获取多个DOM元素我们使…

有时导数据代码比写SQL要快很多

一、背景 接到一个数据需求,是从我们的Mongo中导出的,但要取的值得到很深的层级,尝试写了半天Mongo的查询查不出来,问了半天大模型给的也不对,于是考虑写代码的方式 二、数据格式 // 1 {"_id": ObjectId(&…

考研数学|张宇《1000题》做不下来怎么办?

不要害怕,你绝对可以做下来! 1000题分为基础题和难题,基础题做题来还好,但是难题就有点偏和怪了,这是大部分考研人对于1000题的一致评价。 我觉得你可以这么做: 基础阶段可以做1000里面比较基础,简单的题…

ReLU Strikes Back: Exploiting Activation Sparsity in Large Language Models

iclr 2024 oral reviewer 评分 688 1 intro 目前LLM社区中通常使用GELU和SiLU来作为替代激活函数,它们在某些情况下可以提高LLM的预测准确率 但从节省模型计算量的角度考虑,论文认为经典的ReLU函数对模型收敛和性能的影响可以忽略不计,同时…

SAP SD学习笔记03 - SD模块中的主数据

上一章讲了SD中的组织单位和SD的简单流程。 SAP SD学习笔记02 - 销售流程中的组织单位-CSDN博客 SAP SD学习笔记01 - 简单走一遍SD的流程:受注,出荷,请求-CSDN博客 这一章讲SD中的主数据: - 得意先Master(客户&…

LeetCode404:左叶子之和

题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 代码 class Solution { public:int getLeftSum(TreeNode* node, int& sum) {if (node nullptr || (node->leftnullptr &&node->rightnullptr)) return 0;if (node->left) getLeftS…

企业营销线索溯源:拒绝合规风险!

天眼销的线索溯源功能已经上线一段时间了。 溯源功能主要是查找从天眼销下载的企业营销线索的来源,通过输入相应的数据,就能查到该营销线索的来源网站。 虽然我们在所有的宣传介绍都表明我们的数据都是从公开渠道获取的,但是还是有很多用户会…

electron的webview和内嵌网页如何通信

在 Electron 的世界里,webview 标签相当于一个小盒子,里面可以装一个完整的网页,就像一个迷你浏览器。当你想和这个小盒子里的内容说话时(也就是进行通信),这里有几个方法可以帮你做到: 这里只写…

golang es查询的一些操作,has_child,inner_hit,对索引内父子文档的更新

1.因为业务需要查询父文档以及其下子文档,搞了很久才理清楚。 首先还是Inner_hits,inner_hits只能用在nested,has_child,has_parents查询里面 {"query": {"nested": {"path": "comments","query": {"match…

损失函数篇 | YOLOv8更换损失函数之Powerful-IoU(2024年最新IoU)

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。不同的损失函数适用于不同的问题,例如均方误差损失函数适用于回…

【随笔】Git 高级篇 -- 相对引用1 main^(十二)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

lomobok源码编译学习笔记(1)

lomobok学习笔记(1) 项目导入 lombok的github地址 GitHub - projectlombok/lombok: Very spicy additions to the Java programming language. 开发工具 idea不知道为啥,装上ant工具也不好用,eclipse默认自带有ant,不需要装。…

基于SpringBoot+vue网上点餐系统包含万字文档

基于SpringBoot的网上点餐系统包含万字文档 项目视频演示: springboot027网上点餐系统包含万字文档 开发系统:Windows 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要…

这一次,阿里能完成变革么

更多精彩内容在公众号。 马云在阿里内网发表题为《致改革 致创新》的帖子。释放支持继续改革信号。全文参考下图 马云在最近的发言中首先引用了阿里巴巴集团董事局主席蔡崇信的一次采访,表示对蔡崇信坦率地承认过去错误的勇敢态度表示赞赏。马云强调,犯错…

Python - 深度学习系列32 - glm2接口部署实践

说明 前阵子,已经对glm2的接口部署做了镜像化。本次的目的是: 1 测试在隔了一阵子(忘记)的情况下,快速部署时是否有障碍,是不是足够方便2 在算网机环境下,能否快速的实现部署。仅考虑文件方式…

「每日跟读」英语常用句型公式 第9篇

「每日跟读」英语常用句型公式 第9篇 1. Go-to ___ 第一选择___ What’s your go-to snack when you’re hungry? (你饿的时候第一选择的零食是什么?) Who’s your go-to friend for advice? (你第一选择的朋友是谁来寻求建议?) Which is your go-t…

Python实现BOA蝴蝶优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

智慧矿山视频智能监控与安全监管方案

一、行业背景 随着全球能源需求的日益增长,矿业行业作为国民经济的重要支柱,其发展日益受到广泛关注。然而,传统矿山管理模式的局限性逐渐显现,如生产安全、人员监管、风险预警等方面的问题日益突出。因此,智慧矿山智…

降本增效,赋予利润弹性,李子园努力践行“以投资者为本”理念降本增效,业绩稳步提升

4月9日,李子园发布2023年年度报告,披露了2023年业绩及经营数据。 2023年,李子园实现营业收入约14.1亿元,同比增长0.6%;实现归属于上市公司股东的扣非净利润约2.19亿元,同比增长16.75%。 数据显示&#xff…