在Ubuntu 24.04上设置Jupyter Notebook远程访问

在Ubuntu 24.04上设置Jupyter Notebook远程访问的核心步骤:生成配置文件→设置密码→修改核心配置→开放防火墙→启动服务。以下是完整、安全的实现方案,包含两种访问方式(直接远程/SSH隧道)。


一、准备工作(未安装Jupyter时)

  1. 安装Jupyter Notebook(推荐虚拟环境)

    bash 复制代码
    # 安装Jupyter
    pip install jupyter notebook

二、核心配置步骤(远程访问设置)

1. 生成Jupyter配置文件
bash 复制代码
jupyter notebook --generate-config
# 输出:Writing default config to: /home/[用户名]/.jupyter/jupyter_notebook_config.py
2. 设置访问密码(两种方法)

方法A:使用官方命令(推荐)

bash 复制代码
jupyter notebook password
# 输入并确认密码,系统会自动生成哈希值保存到配置文件

方法B:手动生成哈希密码(适合自动化)

bash 复制代码
python3 -c "from notebook.auth import passwd; print(passwd())"
# 复制输出的哈希值(如:argon2:$argon2id$v=19$m=10240,t=10,p=8$...)
3. 修改配置文件(关键)

编辑配置文件:

bash 复制代码
nano ~/.jupyter/jupyter_notebook_config.py  # 或vim

添加/修改以下核心配置(取消注释并修改值):

python 复制代码
c.NotebookApp.ip = '0.0.0.0'  # 允许所有IP访问,替代'*'避免DNS解析问题
c.NotebookApp.port = 8888     # 监听端口(默认8888,可自定义)
c.NotebookApp.open_browser = False  # 禁止自动打开浏览器
c.NotebookApp.allow_remote_access = True  # 明确允许远程访问
c.NotebookApp.notebook_dir = '/home/[用户名]/notebooks'  # 自定义工作目录(可选)
# c.NotebookApp.password = '刚才生成的哈希密码'  # 方法B时需要手动添加
4. 配置防火墙(开放端口)

Ubuntu 24.04默认使用ufw防火墙,开放8888端口:

bash 复制代码
sudo ufw allow 8888/tcp  # 开放8888端口
sudo ufw enable          # 启用防火墙(如未启用)
sudo ufw status          # 验证端口状态

三、启动与访问Jupyter Notebook

1. 直接启动(前台运行)
bash 复制代码
jupyter notebook
# 或指定端口启动:jupyter notebook --port=8888
2. 远程访问方式
  • 方式A:直接远程访问(适合服务器有公网IP)
    在本地浏览器输入:http://[服务器IP]:8888,输入设置的密码登录

四、安全提示与常见问题

安全最佳实践
  1. 强制使用密码:禁用token登录,仅使用强密码访问
  2. 优先SSH隧道:避免直接暴露端口到公网,降低安全风险
  3. 定期更新 :pip install --upgrade jupyter notebook 保持版本最新
  4. 限制IP访问 :生产环境可设置c.NotebookApp.allow_origin限制特定IP
常见问题解决
  1. 端口被占用 :修改c.NotebookApp.port为其他端口(如8889),并更新防火墙规则
  2. 403 Forbidden错误 :确保c.NotebookApp.ip设置为0.0.0.0,且allow_remote_access=True
  3. 密码不生效 :删除~/.jupyter/jupyter_notebook_config.json后重新设置密码
  4. 无法远程连接:检查服务器防火墙是否开放端口,云服务器需配置安全组规则

五、快速参考命令表

操作 命令
生成配置文件 jupyter notebook --generate-config
设置密码 jupyter notebook password
启动服务 jupyter notebook --no-browser --port=8888
建立SSH隧道 ssh -L 8888:localhost:8888 user@server_ip
开放防火墙端口 sudo ufw allow 8888/tcp
相关推荐
KING-WU5124 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器
Lsetea4 小时前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
魔法阵维护师4 小时前
Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理
linux·运维·服务器
Apipi*5 小时前
30天速通Linux 第七章进程间通信
linux·运维·服务器
emo_2b5 小时前
Pycharm配置conda解释器时遇到的问题及解决方法
linux·pycharm·conda
人生百态,人生如梦5 小时前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
byte轻骑兵6 小时前
【BlueZ】hciconfig 工具:蓝牙适配器管理实操 + 源码实现基础
linux·bluez·电脑蓝牙·嵌入式蓝牙
SKH.6 小时前
Linux驱动-系统移植
linux·服务器
根目录下的猫6 小时前
虚拟机复制过来运行时:“虚拟机使用的此版本,VMware Workstation 不支持的硬件版本。”错误解决办法,亲测可用
linux·运维·服务器·后端
yunwei376 小时前
eBPF 入门实践教程十七:编写 eBPF 程序统计随机/顺序磁盘 I/O
linux·后端·性能优化