Windows与Linux下JupyterLab和Jupyter Notebook端口冲突问题解决
解决Linux下Jupyter Notebook和JupyterLab双端口启动失败问题
1. 先确认端口是否被占用
Linux下端口占用检测命令:
# 检查8858端口 lsof -i :8858 # 检查8859端口 lsof -i :8859
如果有进程占用,用kill -9 <PID>终止对应进程后再尝试启动。
2. 独立启动两个服务(核心解决方法)
Windows下JupyterLab默认作为Notebook的扩展运行,因此可以共用端口,但Linux下需分别启动两个独立进程,各自指定端口:
- 启动Jupyter Notebook:
jupyter notebook --port=8858 --notebook-dir=/path/to/new_proj - 启动JupyterLab:
jupyter lab --port=8859
注意:两个命令需要在不同终端窗口执行,或用nohup/screen实现后台运行。
3. 通过配置文件永久固定端口和路径
生成并修改各自的配置文件,避免每次启动重复输入参数:
- 生成配置文件:
# 生成Notebook配置 jupyter notebook --generate-config # 生成Lab配置 jupyter lab --generate-config - 编辑Notebook配置文件(路径:
~/.jupyter/jupyter_notebook_config.py):# 设置端口 c.NotebookApp.port = 8858 # 设置默认工作目录 c.NotebookApp.notebook_dir = '/path/to/new_proj' # 允许本地访问 c.NotebookApp.ip = 'localhost' - 编辑Lab配置文件(路径:
~/.jupyter/jupyter_lab_config.py):# 设置端口 c.LabApp.port = 8859 # 设置访问路径(对应你的/doc) c.LabApp.base_url = '/doc' # 允许本地访问 c.LabApp.ip = 'localhost'
之后直接执行jupyter notebook和jupyter lab即可按配置启动。
4. 检查Linux防火墙和SELinux限制
- 防火墙放行端口:
sudo ufw allow 8858/tcp sudo ufw allow 8859/tcp sudo ufw reload - SELinux端口上下文配置(若SELinux处于开启状态):
sudo semanage port -a -t http_port_t -p tcp 8858 sudo semanage port -a -t http_port_t -p tcp 8859
5. 更新Jupyter到稳定版本
版本差异可能导致跨平台行为不一致,执行更新:
pip install --upgrade jupyter jupyterlab
内容的提问来源于stack exchange,提问作者Krish
相关产品推荐
相关产品推荐

