搬瓦工 VPS 搭建 Jupyter Notebook 远程开发环境教程

Jupyter Notebook 是数据科学和机器学习领域最受欢迎的交互式开发环境之一,它允许用户在浏览器中编写和执行 Python 代码,并实时查看运行结果。将 Jupyter Notebook 部署到搬瓦工 VPS 上,可以获得一个随时随地都能访问的远程开发平台,无需依赖本地计算资源。本文将详细介绍从安装到安全配置的完整流程。

一、环境要求与准备

  • 操作系统:Ubuntu 20.04 或更高版本(推荐 Ubuntu 22.04)。
  • 内存:至少 1GB,建议 2GB 以上以获得流畅体验。
  • Python:Python 3.8 或更高版本。
  • 搬瓦工方案:推荐选择内存较充裕的方案,可参考 全部方案 进行选购。

首先通过 SSH 连接到你的搬瓦工 VPS,如果不熟悉 SSH 操作,可以参考 VPS 基础管理教程

二、安装 Python 和 pip

Ubuntu 22.04 系统通常自带 Python 3,但我们需要确保 pip 包管理器已安装:

apt update && apt upgrade -y
apt install python3 python3-pip python3-venv -y
python3 --version
pip3 --version

2.1 创建虚拟环境

建议使用虚拟环境隔离 Jupyter 及其依赖,避免与系统包冲突:

mkdir -p /opt/jupyter && cd /opt/jupyter
python3 -m venv venv
source venv/bin/activate

三、安装 Jupyter Notebook

在虚拟环境中使用 pip 安装 Jupyter:

pip install jupyter notebook

如果你希望使用功能更丰富的 JupyterLab 界面,可以同时安装:

pip install jupyterlab

安装常用的数据科学库:

pip install numpy pandas matplotlib scikit-learn seaborn

四、生成配置文件

生成 Jupyter Notebook 的默认配置文件:

jupyter notebook --generate-config

这会在 ~/.jupyter/ 目录下创建 jupyter_notebook_config.py 文件。

4.1 设置访问密码

为了安全起见,必须为 Jupyter 设置密码:

jupyter notebook password

系统会提示你输入并确认密码,密码哈希会自动保存到配置文件中。

4.2 修改配置文件

编辑配置文件以允许远程访问:

cat >> ~/.jupyter/jupyter_notebook_config.py <<EOF
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
c.NotebookApp.notebook_dir = '/opt/jupyter/notebooks'
EOF
mkdir -p /opt/jupyter/notebooks

五、配置防火墙

如果服务器启用了防火墙,需要开放 Jupyter 使用的端口:

# UFW 防火墙
ufw allow 8888/tcp

# 或 iptables
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT

六、配置 SSL 加密

在公网上使用 Jupyter 强烈建议启用 HTTPS 加密。使用 OpenSSL 生成自签名证书:

mkdir -p ~/.jupyter/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout ~/.jupyter/ssl/jupyter.key \
  -out ~/.jupyter/ssl/jupyter.crt \
  -subj "/C=US/ST=State/L=City/O=Org/CN=jupyter"

在配置文件中添加 SSL 设置:

cat >> ~/.jupyter/jupyter_notebook_config.py <<EOF
c.NotebookApp.certfile = '/root/.jupyter/ssl/jupyter.crt'
c.NotebookApp.keyfile = '/root/.jupyter/ssl/jupyter.key'
EOF

七、使用 Systemd 管理服务

创建 systemd 服务文件,使 Jupyter 以守护进程方式运行并开机自启:

cat > /etc/systemd/system/jupyter.service <<EOF
[Unit]
Description=Jupyter Notebook Server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/jupyter
ExecStart=/opt/jupyter/venv/bin/jupyter notebook --config=/root/.jupyter/jupyter_notebook_config.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

启动并设置开机自启:

systemctl daemon-reload
systemctl enable jupyter
systemctl start jupyter
systemctl status jupyter

八、通过 Nginx 反向代理

如果你希望通过域名和标准 HTTPS 端口访问 Jupyter,可以配置 Nginx 反向代理。首先安装 Nginx:

apt install nginx -y

创建 Nginx 配置文件:

cat > /etc/nginx/sites-available/jupyter <<'EOF'
server {
    listen 80;
    server_name jupyter.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}
EOF
ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

WebSocket 的代理配置对于 Jupyter 的实时交互非常重要,上面的 UpgradeConnection 头部设置不可省略。

九、安装常用扩展

Jupyter 生态系统提供了丰富的扩展来增强功能:

# 安装 nbextensions 扩展包
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --sys-prefix

# 安装代码格式化工具
pip install autopep8
pip install jupyter-black

常用的扩展包括目录生成、代码折叠、变量检查器和执行时间显示等。

十、使用 JupyterLab

JupyterLab 是 Jupyter Notebook 的下一代界面,提供更现代的用户体验:

# 如果之前已安装可直接启动
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser

要将默认界面切换为 JupyterLab,修改 systemd 服务中的启动命令即可。JupyterLab 支持多标签页、文件浏览器、终端模拟器和丰富的插件系统。

十一、安全加固建议

  • 修改默认端口:不要使用默认的 8888 端口,改为一个不常见的端口号。
  • 限制 IP 访问:通过防火墙规则只允许特定 IP 地址访问。
  • 使用强密码:设置复杂的访问密码,避免被暴力破解。
  • 定期更新:保持 Jupyter 和依赖库的更新,修补安全漏洞。
  • 非 root 运行:创建专用用户运行 Jupyter,降低安全风险。

十二、常见问题

无法远程访问

检查防火墙设置是否放行了对应端口,确认配置文件中 ip 设置为 0.0.0.0,并确认搬瓦工控制面板中没有额外的防火墙限制。

内核频繁崩溃

通常是内存不足导致。可以查看系统日志确认:

dmesg | grep -i "out of memory"
free -h

如果内存确实紧张,建议升级 VPS 方案或添加 swap 空间。

总结

通过在搬瓦工 VPS 上部署 Jupyter Notebook,你可以获得一个功能完整的远程 Python 开发和数据分析环境。配合 SSL 加密和密码保护,可以安全地在任何设备上进行编码工作。如果你对 AI 和机器学习感兴趣,还可以进一步部署 HuggingFace 模型推理LangChain 应用开发 等项目。选购搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。