我的Jupyter Notebook使用技巧

Jupyter Notebook 作为一个免费、易用的Python开发环境,在Python相关内容的学习方面有着独特的优势。而且其通过浏览器界面进行编程的特性让远程使用自己熟悉、可控的Python环境变得更加容易。并且支持支持 Markdown 语法,特别适合进行记录与学习。

一、远程访问的探究

由于学校的电脑在很多时候难以满足我对编译环境的需求以及个人PC携带难免不便,我一直在探究远程使用个人PC本地编译环境的方法。

1.1 公网直连

首先,最简单的方法可能就是通过公网IP进行访问,尽管对于家庭宽带公网IPv4难以获取,但IPv6的普及让公网直连访问本地服务成为可能。

通过购买域名再配置好DDNS以及端口转发我们可以通过HTTP协议以及域名方便、快速的访问到我们的服务。

当然该方案限制了访问的设备也必须连接上支持IPv6的网络,这很简单,最次使用流量就可以。

这个方案最吸引人的地方在于其访问的稳定与可观的速度,IPv6所提供的直接点对点链接理论上可以跑满上传宽带。

而该方案最大的问题是安全,HTTP协议明文传输的特性极有可能暴露访问 Jupyter Notebook 的密码,而Jupyter Notebook可以在一定程度上操作电脑存储,JupyterLab更是可以打开电脑控制台,这毫无疑问是非常危险的。虽然可以通过安装证书使用 HTTPS 协议,这终究是十分麻烦且费心维护难以让我满意。

最重要的是 [域名]:[端口号] 这种访问方式一点都不优雅。

1.2 远程桌面

然后为了安全性,我尝试使用 Todesk、向日葵这一类远程桌面软件。但这类软件必须使他一直驻留在后台且需要使用软件访问,个人不太喜欢这种方案。

1.3 云 Jupyter —— Binder

关于 Binder 我是在探究远程使用 Jupyter Notebook 时从一篇文章中了解到的,它是一种在线 JupyterNotebook 环境。你可以将你所需的 Jupyter 环境(比如需要哪些库包)配置以及代码文件放到github上,然后binder可以通过你的 github 仓库拉取一个 JupyterLab 容器供你在线使用。

这种云平台的好处就在于他配置好后的易用性以及安全性,你几乎可以在任何能使用浏览器的设备上及时的拉取一个你需要的Python环境,编写、编译你的代码。你也可以通过上传或下载代码在不同设备上持续的完成你的代码任务。也可以在别人的电脑上顺利的演示你的代码。就算你突然对一个新的库包产生了需求,但你没有提前将他写入配置文件上传 github 仓库,你也可以通过 JupyterLab 提供的控制台使用命令手动安装。

但是随着任务的复杂程度提高,你的环境配置越复杂拉取 JupyterNotebook 环境的时间就越久。并且每一次拉取的容器留存时间都十分有限,这也就意味着当你使用Binder编写代码的时候如果留神导致容器空间被释放并且你也没有及时下载你的代码文件,你的任务也将随之消失。

这里我留存三个 Binder 的配置教程网站:

https://zhuanlan.zhihu.com/p/654958973https://blog.loikein.one/posts/2018-11-16-jupyter-notebook-2-binder/https://www.oryoy.com/news/shi-yong-binder-shi-xian-python-dai-ma-de-ke-zhong-fu-xing-yan-jiu-huan-jing-da-jian-zhi-nan.html

1.4 Cloudflared

Cloudflare 是一个全球性的云平台,提供网络服务。我必须说一句 Cloudflare 是网络大圣人。他免费提供了一系列非常有价值的服务,包括提供一个超长期的免费证书让你的网站可以走 HTTPS 协议,完全没有任何配置过程你只需要点一个按钮就好。还有一个功能,非常非常很好的实现了我需求,也就是 Cloudflared,准确来说是 Cloudflare Tunnel。

Cloudflared 是 Cloudflare 的命令行工具,主要用于连接 Cloudflare 网络,提供安全、稳定的访问通道。它的核心功能是支持 Cloudflare Tunnel,把你的本地服务安全地暴露到公网,而不用自己开放端口、搞 NAT 穿透。

乍一看这不就是实现了一个内网穿透嘛。但实际上 Cloudflare Tunnel 在操作上不仅比大多数内网操作简单,他更为你的网站免费进行了DNS服务,而且也提供了一定的安全性保障。最难能可贵的是网站的访问速度在可接受的范围内,诚然,速度确实比不上公网直连,但是综合安全性以及可以去掉端口号这一小尾巴的好处,这完全是可接受的。(这会绕开国内监管,是一个上不了台面的做法。)

当然,任何命运的馈赠都在暗中标好了价格。我想代价大概是你的相关数据,反正总得有点什么。

1.5 远程 KVM

1.6 其它存在方案

至此,我就基本将我所有尝试过的远程连接方案都简要的记述了一遍。在困难的条件下,希望利用自己手中的宽带实现网络连接的自由确实非常费脑筋,但办法总比困难多。

从公网直连的尝试开始我就希望可以通过一个公网服务器正常的实现自己的博客网站发布,JupyterNotebook的远程使用。但是高昂的公网服务器费用以及复杂的备案手续基本让合规的手段与学生无缘。

但是之后一步步的探索现在回顾下来也是一段非常有意思的旅程。我基本没有尝试过内网穿透,在我看来内网穿透就是借不知道谁的鸡生自己的蛋,不安的同时也很难说满足我的需求。其间我也尝试过zerotier,这是一种借助中继服务器建立P2P连接的技术,理论上在连接建立成功之后两个设备之间的通讯速度应该能跑满宽带,但实际情况就是连网页的访问都成问题。有些网友会说它不错,有些人则也是遇到了速度极慢的问题,还有人建议使用 tailscale (和 zerotier 是同一种东西) , 或许我以后会尝试。

二、远程访问的配置

  1. 远程访问的配置

    1. config 的生成与说明

三、JupyterLab 的使用问题

  1. 内核环境的说明


我的Jupyter Notebook使用技巧
https://blog.hikoswallow.com/archives/1758300967574
发布于
2025年09月21日
更新于
2025年09月21日
许可协议