无界面的 Ubuntu 系统配置远程访问配置 JupyterLab(Jupyter Notebook),在windows中通过网页访问,解决网页空白的问题和API的404问题

404错误:

[W 2025-07-18 16:49:04.843 ServerApp] 404 GET /api/kernels?1752828544725 (6f99c1ab21584553b5ac0af7dc7d5f6d@172.1.172.91) 2.03ms referer=http://127.0.0.1:8889/lab?

本方法使用于在无界面的linux系统中安装Jupyter,然后在windows中通过网页访问,之前用的别的方法,登录后网页是空白的,显示很多404错误,下面的方法可以解决,第一步是安装(我用的是miniconda并且重新构建了,pip也可以的),可以跳过




一,安装 Jupyter Notebook ,已安装的可以跳过

  1. 使用conda安装
# 使用conda安装(更可靠的依赖解析)
conda install jupyterlab notebook -c conda-forge
  1. 查询版本,看看是否安装成功
(myenv) root@fuwuqi:~/yilai# jupyter --version
Selected Jupyter core packages...
IPython          : 8.20.0
ipykernel        : 6.28.0
ipywidgets       : 8.1.1
jupyter_client   : 8.6.3
jupyter_core     : 5.8.1
jupyter_server   : 2.16.0
jupyterlab       : 4.4.4
nbclient         : 0.9.0
nbconvert        : 7.16.5
nbformat         : 5.10.4
notebook         : 7.4.4
qtconsole        : not installed
traitlets        : 5.14.1

  1. 重建 JupyterLab 资源

JupyterLab 的构建过程必须依赖 Node.js。这是因为 JupyterLab 的前端界面基于现代 JavaScript 框架开发,需要 Node.js 和 npm(或 yarn)来编译、打包和优化这些资源。

如果没安装node的,需要先安装node

  • 3.1 在系统上安装 Node.js 20.x

    # 安装 NodeSource 仓库(提供官方 Node.js)
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    
    # 安装 Node.js 和 npm
    sudo apt-get install -y nodejs
    
    # 验证版本
    node --version  # 应显示 v20.x.x以上
    npm --version   # 应显示 9.x.x以上
    
  • 3.2 配置 JupyterLab 使用系统 Node.js

    # 激活你的 Conda 环境
    conda activate myenv
    
    # 检查系统 Node.js 路径
    which node  # 通常是 /usr/bin/node
    
    # 设置环境变量,让 JupyterLab 使用系统 Node.js
    export NODE_EXECUTABLE=$(which node)
    
    # 清理并重建 JupyterLab
    jupyter lab clean
    jupyter lab build --dev-build=False --minimize=False
    
  • 3.3 清理并重建 JupyterLab

    jupyter lab clean
    jupyter lab build
    
  1. 配置方式1(参考):配置 JupyterLab 远程访问

    • 4.1 生成配置文件

      jupyter lab --generate-config
      

      配置文件路径:~/.jupyter/jupyter_lab_config.py

    • 4.2. 设置密码:按提示输入密码,加密后的密码会保存在配置文件中

      jupyter lab password
      
    • 4.3. 修改配置文件
      打开配置文件:

      nano ~/.jupyter/jupyter_lab_config.py
      

      添加 / 修改以下内容(取消注释并更新值):

      c.ServerApp.ip = '0.0.0.0'          # 允许所有IP访问
      c.ServerApp.port = 8889             # 指定端口
      c.ServerApp.open_browser = False    # 禁止自动打开浏览器
      c.ServerApp.allow_remote_access = True  # 允许远程访问
      c.ServerApp.root_dir = '/'          # 工作目录(可选)
      

      按 Ctrl+O 保存,Ctrl+X 退出

    • 4.4. 后台运行 JupyterLab

      • 使用 screen 或 tmux 创建持久会话(推荐 screen):

        screen -S jupyter
        jupyter lab
        
        
        #jupyter notebook
        

        按 Ctrl+A+D 分离会话(JupyterLab 继续运行)。未来可通过 screen -r jupyter 重新连接。

      • 使用nohup让 Jupyter 在后台运行:

        nohup jupyter lab &
        
    • 4.5. 防火墙配置(如果需要)
      开放 8889 端口:

      sudo ufw allow 8889
      
  2. 配置方式2(参考):直接启动JupyterLab 远程访问

    • 5.1 jupyter lab启动

      jupyter lab --no-browser --port=8888
      
      • –no-browser:不自动打开浏览器(适用于无界面服务器)
      • –port=8888:指定端口(可自定义
    • 5.2. 后台运行 JupyterLab

      # 方法1:使用 nohup
      nohup jupyter lab --no-browser --port=8889 &
      
      # 方法2:使用 screen(推荐,方便后续管理)
      screen -S jupyter
      jupyter lab --no-browser --port=8889
      # 按 Ctrl+A+D 分离会话,后续可通过 screen -r jupyter 重新连接
      



二,服务器上开启jupyter lab

jupyter-lab --ip 0.0.0.0 --port 8889 --no-browser --allow-root

#--ip 0.0.0.0 :代表不限制ip
#--port 8889  :端口号
#--no-browser :启动的时候不自动打开浏览器
#--allow-root :允许root 身份运行




三,本地做端口映射

打开cmd ,把本地8888端口映射到服务器8889上,

ssh -N -f -L localhost:8888:localhost:8889 user_name@server_ip -p 22

#user_name:服务器ssh的登录名
#server_ip: 服务器的ip地址

服务器可以用netstat网络命令查看端口占用情况:

  • netstat:这是一个用于显示网络连接、路由表和网络接口等网络相关信息的工具。
  • -tulnp:这是 netstat 的一组选项参数,各个字母代表的含义如下:
  • -t:用于显示 TCP 协议的连接情况。
  • -u:用于显示 UDP 协议的连接情况。
  • -l:只显示处于监听状态(Listening)的服务。
  • -n:直接使用 IP 地址和端口号,而不通过 DNS 进行反向解析查找对应的主机名。
  • -p:显示与网络连接相关的进程 ID(PID)以及进程名称。
(myenv) root@fuwuqi:~/yilai# netstat -tulnp | grep 8889
tcp        0      0 0.0.0.0:8889            0.0.0.0:*               LISTEN      2207257/python3.10

#tcp:表明这是一个 TCP 协议的连接。
#0.0.0.0:8889:意味着该服务正在监听所有可用的网络接口,使用的端口号是 8889。
#LISTEN:说明当前服务正处于监听状态,随时准备接受客户端的连接请求。
#2207257/python3.10:这里的 2207257 是进程 ID(PID),python3.10是进程名称,这表明是 Python 程序在使用这个端口。



四,本地浏览器进行访问

  1. 打开本地浏览器,若有设置密码,则输入之前设置的密码登录:
http://localhost:8888

在这里插入图片描述

在这里插入图片描述

  1. 验证 GPU 支持(可选):
    在 JupyterLab 中创建新笔记本,运行:
import torch
print(f"CUDA可用: {torch.cuda.is_available()}")
  1. 故障排除
  • 端口被占用:修改配置文件中的 port 为其他值(如 8889)。
  • 忘记密码:删除 ~/.jupyter/jupyter_server_config.json 中的密码字段,重新设置密码
  • JupyterLab 已成功启动,但由于以 root 用户 运行而被阻止。这是 Jupyter 的安全机制,默认禁止 root 用户直接启动。
    • 错误信息: [C 2025-07-18 … Running as root is not recommended.]

    • 解决1:强制以 root 身份运行

      • 添加 --allow-root 参数:
        jupyter lab --no-browser --port=8888 --allow-root
        
      • 修改配置文件 ~/.jupyter/jupyter_lab_config.py:
        c.ServerApp.allow_root = True
        
    • 解决2:以普通用户身份运行,创建新用户并授予必要权限

      adduser jupyter  # 创建新用户
      usermod -aG sudo jupyter  # 添加 sudo 权限
      su - jupyter  # 切换到新用户
      
      # 在新用户环境中重新安装 Jupyter 或激活环境
      conda activate myenv
      jupyter lab --no-browser --port=8888
      
<think>我们参考了用户提供的多个引用,特别是引用[1][2][4][5]中关于Ubuntu系统下安装AnacondaJupyter Notebook的步骤。 为了在Ubuntu系统中搭建Anaconda环境并安装Jupyter Notebook,我们将按照以下步骤进行: 1. 安装Anaconda:下载Anaconda安装脚本,运行安装脚本,并按照提示完成安装。 2. 配置环境变量(可选):如果安装过程中没有自动配置,需要手动将Anaconda的bin目录添加到PATH环境变量中。 3. 创建并激活虚拟环境(可选,但推荐):使用conda命令创建独立的Python环境。 4. 安装Jupyter Notebook:在目标环境中使用conda命令安装Jupyter Notebook。 5. 生成Jupyter配置文件并设置密码(可选):为了安全,可以设置访问密码。 6. 配置Jupyter Notebook:修改配置文件以允许远程访问或设置其他参数。 7. 启动Jupyter Notebook:运行命令启动服务。 下面详细说明每个步骤: ### 步骤1:安装Anaconda 1.1 下载Anaconda安装脚本: 访问Anaconda官方网站(https://www.anaconda.com/products/distribution)获取最新版本的下载链接,或者使用清华大学镜像站(如引用[5])加快下载速度。 在终端中使用`wget`命令下载,例如: ``` wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh ``` 注意:请替换为最新版本的链接。 1.2 安装Anaconda: 运行下载的脚本: ``` bash Anaconda3-2024.02-1-Linux-x86_64.sh ``` 按照提示进行安装,注意阅读许可协议,同意后选择安装位置(默认位置通常是`~/anaconda3`)。 1.3 激活安装: 安装程序会询问是否初始化Anaconda3,选择“yes”将conda添加到PATH环境变量中。如果选择“no”,则需要手动添加。 手动添加方法(如果安装时没有选择自动添加): 编辑`~/.bashrc`文件,在末尾添加: ``` export PATH="/path/to/anaconda3/bin:$PATH" ``` 然后运行`source ~/.bashrc`使更改生效。 1.4 (可选)修改conda源为国内镜像: 为了加快包下载速度,可以修改conda的源,如引用[5]所示: ``` conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes ``` ### 步骤2:创建虚拟环境(可选) 虽然可以直接在base环境中安装,但推荐创建独立环境: ``` conda create -n myenv python=3.9 # 这里myenv是环境名称,可自定义 conda activate myenv ``` ### 步骤3:安装Jupyter Notebook 在激活的环境中(如果创建了虚拟环境,则先激活)运行: ``` conda install jupyter notebook ``` ### 步骤4:生成配置文件并设置密码(可选) 4.1 生成配置文件: ``` jupyter notebook --generate-config ``` 该配置文件通常位于`~/.jupyter/jupyter_notebook_config.py`。 4.2 设置密码: 打开Python,输入以下命令生成密码的哈希值: ```python from notebook.auth import passwd passwd() ``` 输入密码并确认,会得到一串哈希值,复制下来。 4.3 修改配置文件: 打开配置文件`~/.jupyter/jupyter_notebook_config.py`,修改以下内容: ``` c.NotebookApp.password = '刚才复制的哈希值' # 注意:要用单引号括起来 c.NotebookApp.ip = '*' # 允许任何IP访问 c.NotebookApp.open_browser = False # 不自动打开浏览器 c.NotebookApp.port = 8888 # 指定端口,可改为其他端口 ``` ### 步骤5:启动Jupyter Notebook 在终端运行: ``` jupyter notebook ``` 或者,如果想在后台运行,可以使用: ``` jupyter notebook & ``` ### 注意事项 - 如果是服务器环境(如阿里云),需要确保安全组开放了对应的端口(如8888)。 - 如果系统有防火墙,需要开放对应端口,例如: ``` sudo ufw allow 8888 ``` - 远程访问时,在浏览器中输入`http://<服务器IP>:8888`,然后输入之前设置的密码。 以上步骤综合了多个引用的方法,用户可以根据实际情况选择操作。 §§相关问题§§ 1. 如何在Jupyter Notebook中安装其他内核(如R、Julia)? 2. 如何配置Jupyter Notebook使其在系统启动时自动运行? 3. 如何将Jupyter Notebook配置为使用HTTPS(SSL证书)? </think>### 在Ubuntu系统搭建Anaconda环境并安装Jupyter Notebook的方法 #### 1. **安装Anaconda** - **下载安装脚本** 访问[Anaconda官网](https://www.anaconda.com/products/distribution)获取最新Linux安装脚本链接,或直接使用wget下载: ```bash wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh ``` - **运行安装脚本** 执行安装并遵循提示(安装路径建议默认`~/anaconda3`): ```bash bash Anaconda3-2024.02-1-Linux-x86_64.sh ``` - **激活环境变量** 安装完成后初始化PATH: ```bash source ~/.bashrc ``` - **配置国内镜像源(可选)** 加速包下载[^5]: ```bash conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes ``` #### 2. **创建独立环境(推荐)** ```bash conda create -n jupyter_env python=3.9 # 创建名为jupyter_env的环境 conda activate jupyter_env # 激活环境 ``` #### 3. **安装Jupyter Notebook** ```bash conda install jupyter notebook ``` #### 4. **配置Jupyter Notebook** - **生成配置文件**: ```bash jupyter notebook --generate-config ``` - **设置访问密码**: ```python ipython from jupyter_server.auth import passwd passwd() # 生成密码哈希字符串(保存输出结果)[^4] ``` - **修改配置文件**(路径:`~/.jupyter/jupyter_notebook_config.py`): ```python c.NotebookApp.ip = '*' # 允许所有IP访问 c.NotebookApp.open_browser = False # 禁止自动打开浏览器 c.NotebookApp.password = '刚才生成的哈希字符串' # 粘贴密码哈希 c.NotebookApp.port = 8888 # 指定端口 ``` #### 5. **启动Jupyter Notebook** ```bash jupyter notebook --allow-root # 允许root用户运行(非root用户可省略) ``` - 访问方式:浏览器打开 `http://<服务器IP>:8888`,输入设置的密码。 #### 6. **防火墙配置(如需要远程访问)** ```bash sudo ufw allow 8888/tcp # 开放指定端口 sudo ufw reload ``` #### 验证安装 ```bash conda list | grep jupyter # 查看jupyter是否在环境包列表 jupyter --version # 检查版本 ``` > **注意事项** > - 若使用云服务器(如阿里云),需在安全组规则中开放端口[^3] > - 工作目录权限:确保`/opt/jupyter_notebook_workspace`等目录有写入权限[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值