搬瓦工 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 的实时交互非常重要,上面的 Upgrade 和 Connection 头部设置不可省略。
九、安装常用扩展
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。