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

告别手动复制链接!在 WSL2 中配置 Jupyter 后台服务与密码登录的完整指南

告别手动复制链接!在 WSL2 中配置 Jupyter 后台服务与密码登录的完整指南

如果你经常在 WSL2 中使用 Jupyter Notebook 进行数据分析、机器学习或日常开发工作,可能会遇到这样的困扰:每次启动 Jupyter 都需要手动复制粘贴链接到浏览器,关闭终端窗口服务就会停止,而且默认的令牌认证方式既不方便也不够安全。本文将带你彻底解决这些问题,实现一键启动、后台运行、密码保护的 Jupyter 服务。

1. 环境准备与基础配置

在开始之前,确保你的系统满足以下条件:

  • Windows 10 版本 2004 及以上或 Windows 11
  • 已启用 WSL2 并安装 Ubuntu 发行版(推荐 20.04 LTS 或更新版本)
  • 已安装 Python 环境(Anaconda 或 Miniconda 均可)

首先更新系统并安装必要组件:

sudo apt update && sudo apt upgrade -y sudo apt install python3-pip firefox -y

安装 Jupyter Notebook:

pip install notebook --user

提示:如果使用 Anaconda,可以通过conda install notebook命令安装

验证安装是否成功:

jupyter notebook --version

2. 生成配置文件与密码设置

2.1 生成默认配置文件

运行以下命令生成 Jupyter Notebook 的默认配置文件:

jupyter notebook --generate-config

这会在你的用户主目录下创建.jupyter文件夹,其中包含jupyter_notebook_config.py文件。

2.2 设置访问密码

相比默认的令牌认证,密码认证更加方便安全。我们可以通过以下步骤生成密码哈希:

  1. 启动 Python 交互环境:
python3
  1. 在 Python 环境中执行:
from notebook.auth import passwd passwd()
  1. 按照提示输入并确认你的密码,系统会返回一个类似下面的哈希值:
'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007'

注意:务必保存这个哈希值,后续配置会用到

3. 关键配置文件修改

用文本编辑器打开~/.jupyter/jupyter_notebook_config.py文件,修改以下关键参数:

# 允许任何IP访问 c.NotebookApp.ip = '*' # 不自动打开浏览器 c.NotebookApp.open_browser = False # 设置访问端口(默认为8888) c.NotebookApp.port = 8888 # 设置密码哈希(替换为你生成的哈希值) c.NotebookApp.password = 'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007' # 设置默认工作目录 c.NotebookApp.notebook_dir = '/path/to/your/notebooks'

对于较旧版本的 Jupyter Notebook,可能还需要取消以下配置的注释:

c.NotebookApp.allow_remote_access = True

4. 实现后台服务运行

4.1 使用 nohup 实现后台运行

要让 Jupyter Notebook 在后台持续运行,即使关闭终端窗口也不中断,可以使用nohup命令:

nohup jupyter notebook > /dev/null 2>&1 &

这个命令做了以下几件事:

  • nohup:忽略挂断信号,使进程在终端关闭后继续运行
  • > /dev/null:将标准输出重定向到空设备
  • 2>&1:将标准错误重定向到标准输出
  • &:在后台运行进程

4.2 检查运行状态

要查看 Jupyter 服务是否正常运行,可以使用:

ps aux | grep jupyter

如果看到类似下面的输出,表示服务正在运行:

user 12345 0.0 1.2 123456 7890 ? S 12:34 0:00 /usr/bin/python3 /usr/local/bin/jupyter-notebook

4.3 停止服务

如果需要停止后台运行的 Jupyter 服务,首先找到进程ID:

pgrep -f jupyter

然后使用 kill 命令停止服务:

kill <PID>

5. 高级配置与优化

5.1 设置开机自启动

如果你希望每次启动 WSL2 时自动运行 Jupyter Notebook,可以将其添加到.bashrc文件中:

echo "nohup jupyter notebook > /dev/null 2>&1 &" >> ~/.bashrc

5.2 多用户访问配置

如果需要支持多用户访问,可以修改以下配置:

# 允许多个用户同时访问同一个笔记本 c.NotebookApp.allow_root = True c.NotebookApp.allow_password_change = False

5.3 性能优化

对于大型项目,可以调整以下参数提升性能:

# 设置最大内存使用量(MB) c.NotebookApp.mem_limit = 4096 # 设置最大线程数 c.NotebookApp.iopub_msg_rate_limit = 1000

6. 常见问题解决方案

6.1 无法访问 localhost:8888

如果无法通过浏览器访问 Jupyter Notebook,尝试以下步骤:

  1. 检查 WSL2 的 IP 地址:
hostname -I
  1. 在浏览器中使用 WSL2 的实际 IP 地址访问,如http://<WSL2_IP>:8888

6.2 密码认证失败

如果密码认证失败,可以重新生成密码哈希并更新配置文件:

jupyter notebook password

这个命令会交互式地让你输入新密码,并自动更新配置文件。

6.3 端口冲突

如果默认的 8888 端口被占用,可以:

  1. 查找占用端口的进程:
sudo netstat -tulnp | grep 8888
  1. 终止占用进程或修改 Jupyter 的端口配置

7. 安全最佳实践

为了确保 Jupyter Notebook 服务的安全性,建议遵循以下原则:

  • 定期更新密码:每隔一段时间更换访问密码
  • 使用 HTTPS:配置 SSL 证书加密通信
  • 限制 IP 访问:如果只在本地使用,可以将c.NotebookApp.ip设置为'localhost'
  • 启用防火墙:限制不必要的端口访问

配置 SSL 加密的示例:

# 生成自签名证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem # 修改 Jupyter 配置 c.NotebookApp.certfile = '/path/to/mycert.pem' c.NotebookApp.keyfile = '/path/to/mykey.key'

8. 与 Windows 系统集成

8.1 创建桌面快捷方式

在 Windows 桌面上创建快捷方式,直接打开 Jupyter Notebook:

  1. 右键桌面 → 新建 → 快捷方式
  2. 输入位置:http://localhost:8888
  3. 命名快捷方式为 "Jupyter Notebook"

8.2 使用 Windows Terminal 快速启动

在 Windows Terminal 中添加一个专门用于启动 Jupyter 的配置文件:

{ "guid": "{随机生成的GUID}", "name": "Jupyter Notebook", "commandline": "wsl -e bash -c \"nohup jupyter notebook > /dev/null 2>&1 &\"", "hidden": false }

8.3 文件系统互通

WSL2 和 Windows 文件系统可以互相访问:

  • 在 WSL2 中访问 Windows 文件:/mnt/c/
  • 在 Windows 中访问 WSL2 文件:\\wsl$\Ubuntu\home\username

建议将 Jupyter 的工作目录设置为共享位置,方便两边编辑:

c.NotebookApp.notebook_dir = '/mnt/c/Users/YourName/JupyterNotebooks'

9. 替代方案与工具推荐

9.1 JupyterLab

JupyterLab 是 Jupyter Notebook 的下一代界面,提供更强大的功能:

pip install jupyterlab

启动方式与 Notebook 类似:

nohup jupyter lab > /dev/null 2>&1 &

9.2 VS Code 集成

VS Code 提供了优秀的 Jupyter 支持:

  1. 安装 "Jupyter" 扩展
  2. 打开.ipynb文件即可直接编辑运行
  3. 可以连接到远程 Jupyter 内核

9.3 使用 screen 或 tmux

除了nohup,还可以使用screentmux管理长时间运行的任务:

sudo apt install tmux tmux new -s jupyter jupyter notebook # 按 Ctrl+B 然后 D 分离会话

要重新连接会话:

tmux attach -t jupyter

10. 性能监控与日志管理

10.1 查看运行日志

Jupyter Notebook 默认会将日志输出到nohup.out文件:

tail -f nohup.out

10.2 资源监控

使用htop监控系统资源使用情况:

sudo apt install htop htop

10.3 内核管理

查看正在运行的 Jupyter 内核:

jupyter kernelspec list

删除不再使用的内核:

jupyter kernelspec remove old_kernel_name

11. 自定义主题与扩展

11.1 安装主题

安装流行的 Jupyter 主题:

pip install jupyterthemes jt -t onedork -fs 12 -altp -tfs 12 -nfs 12 -cellw 88% -T

11.2 常用扩展

安装 Jupyter Notebook 扩展:

pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user

启用有用的扩展:

  • Table of Contents
  • Variable Inspector
  • ExecuteTime

12. 备份与迁移

12.1 配置文件备份

备份你的 Jupyter 配置:

cp ~/.jupyter/jupyter_notebook_config.py ~/.jupyter/jupyter_notebook_config.py.bak

12.2 笔记本备份

定期备份你的笔记本文件:

tar -czvf notebooks_backup.tar.gz /path/to/your/notebooks

12.3 环境迁移

使用pip freeze保存 Python 环境:

pip freeze > requirements.txt

在新环境中恢复:

pip install -r requirements.txt

经过以上配置,你现在拥有了一个稳定、安全、随时可用的 Jupyter Notebook 服务。无论你是关闭终端窗口还是重启电脑,只要 WSL2 在运行,你的 Jupyter 服务就会持续工作,让你可以专注于数据分析与开发,而不是环境配置。

http://www.jsqmd.com/news/682203/

相关文章:

  • Netflix 4K画质与杜比音效优化指南:3个关键技术方案
  • 猎头公司加盟,真的是割韭菜吗?深度解读南方新华加盟政策 - 榜单推荐
  • 如何高效处理闲置瑞祥商联卡?教你快捷回收技巧 - 团团收购物卡回收
  • 别再让UI卡死!Qt5子线程安全更新UI的两种实战方案(附代码避坑)
  • AI写作神器推荐:导师说开题报告“深度不够”!别慌!这款AI开题工具真的可以拔高你论文的层次 - 逢君学术-AI论文写作
  • 2026年贵阳房屋改造与全屋整装定制服务深度横评 - 年度推荐企业名录
  • 2026年佛山市振煜贸易有限公司可信度高吗看看它在行业排名咋样 - myqiye
  • 最新YOLO实现的水果识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
  • 01华夏之光永存:黄大年茶思屋榜文解法「11期1题」 大规模集群分布式存储系统流控机制完整揭榜解法
  • Windows运行库终极管理方案:Visual C++ Redistributable AIO深度应用指南
  • 从材质到工艺:PPH储罐生产厂家有哪些?质量/性能/口碑/价格/定制能力横向对比 - 品牌推荐大师
  • 通义千问3-VL-Reranker-8B实战:批量处理1000+图文数据的保姆级脚本
  • GPEN肖像增强实测:一键修复老照片,效果惊艳
  • Betaflight固件编译:如何选择GCC工具链版本的终极指南
  • 山东一卡通快捷回收平台解析:高效、便捷、安全的回收体验 - 团团收购物卡回收
  • 2026年奇宣部创新能力怎么样,它在全国影视服务行业排名如何 - mypinpai
  • 终极MASA模组汉化包:让Minecraft专业工具说中文的完整指南
  • 杭州余杭永鸿再生资源回收:余杭区厂房拆除回收公司 - LYL仔仔
  • 2026药品强光照射试验箱行业深度报告:专业厂家测评与合规选型指南 - 品牌推荐大师1
  • 量子梯度估计中的参数位移规则优化与应用
  • 锐捷交换机RG-S5750运维避坑指南:密码忘了、配置丢了怎么办?
  • 从人脸编辑到语义分割:深入解读CelebAMask-HQ数据集的设计哲学与实战价值
  • 2026年全国宣传片制作推荐企业排名,凯玛广告值得关注 - 工业设备
  • RegNet实战:在Colab上5分钟复现论文核心实验,验证‘好网络’的通用准则
  • Fan Control终极指南:5分钟实现Windows风扇智能控制
  • Adobe-GenP 3.0:5分钟解锁Adobe全家桶的终极免费方案
  • 保姆级教程:用Python复现AD-Census的十字交叉域代价聚合(CBCA)核心步骤
  • UE5实战:用PlayerCameraManager和CameraModifier实现一个丝滑的第三人称镜头震动效果
  • 如何用WebToEpub将任何网页小说一键转换为EPUB电子书:终极免费解决方案
  • 不只是磁化曲线:手把手教你用OOMMF的ODT和OVF文件做数据可视化分析