Jupyter 服务端口是什么
8888 是 Jupyter Notebook 与 JupyterLab 的默认端口:浏览器打开这个地址就能新建笔记本、执行代码、查看数据与图表。它的鉴权方式是启动时生成的令牌加可选口令,但本质上它是一个能执行任意代码的面板——只要能打开页面并登录,就等于拿到了在服务器上运行 Python(以及调用 shell)的能力。
基本信息
| 服务 | Jupyter Notebook / JupyterLab |
|---|---|
| 协议 | TCP/HTTP(令牌或口令认证) |
| 默认监听 | 127.0.0.1:8888 |
| 相关工具 | jupyter server list、JupyterHub(多用户) |
| 安全等级 | 仅内网;公网必须叠加反代、强认证与 TLS |
典型使用场景
- 数据分析与建模:交互式探索数据、画图、训练与评估模型
- 临时脚本与运维核查:用笔记本代替临时脚本做一次性数据处理
- 教学与演示:把代码、输出与说明放在同一份文档里
- 团队共享:通过 JupyterHub 为多人分配独立环境
- 安全评估:确认实例是否绑定到 0.0.0.0 或经反代无鉴权暴露
受控启动与状态核对
受控启动与状态核对
jupyter lab --ip=127.0.0.1 --port 8888 --no-browser
jupyter server list # 列出运行中的实例与访问地址
lsof -i :8888 # 确认监听进程
ss -lntp | grep 8888 # 检查绑定地址是否为回环常见暴露路径与加固方向
| 暴露方式 | 风险点 | 加固方向 |
|---|---|---|
| 绑定 0.0.0.0 裸跑 | 无 TLS,令牌在链路上明文 | 改绑回环或反代加 HTTPS |
| 容器端口映射 | 可能绕过本机防火墙 | 映射绑定回环或置于内网 |
| 反代仅做转发 | 认证缺口整体暴露 | 反代层补认证与来源限制 |
| 多用户共享实例 | 互相可见文件与进程 | 改用 JupyterHub 做隔离 |
令牌与访问控制
令牌与访问控制
jupyter server password # 设置登录口令
jupyter lab --ServerApp.token='<强随机串>' --ServerApp.password=''
jupyter lab --ServerApp.allow_origin='https://lab.example.com'
# 生产建议:反代 + TLS + SSO,并限制可访问的来源网段能打开 Jupyter 就等于能在服务器上执行任意代码:裸跑在公网的实例被当成挖矿入口的案例极多,且这类事件通常不需要漏洞,直接登录执行即可。
笔记本里的 shell 调用、包安装命令与文件读写都会作用在宿主环境;多人共享建议用 JupyterHub 做隔离与配额,而不是让所有人共用一个实例。
运维建议
- 默认只监听回环,外部访问一律经反向代理
- 反代层启用 HTTPS 与认证,并限制来源网段
- 设置资源配额,避免单个笔记本跑满 CPU 与内存
- 定期清理闲置实例与过期令牌