You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用自定义端口启动Jupyter Kernel?指定端口不生效求助

问题描述

我尝试通过以下命令启动Jupyter Kernel:

jupyter-kernel \
       --ip=0.0.0.0 \
       --KernelManager.control_port=56406 \
       --KernelManager.hb_port=56407 \
       --KernelManager.iopub_port=56408 \
       --KernelManager.shell_port=56409 \
       --KernelManager.stdin_port=56410

启动成功后输出如下:

[KernelApp] Starting kernel 'python3'
[KernelApp] Connection file: /Users/jkitchin/Library/Jupyter/runtime/kernel-892382b5-8115-44ba-95cd-d8172ba848ac.json

但查看生成的连接文件时,发现其中的端口与我指定的不一致:

cat /Users/jkitchin/Library/Jupyter/runtime/kernel-892382b5-8115-44ba-95cd-d8172ba848ac.json
{
  "shell_port": 55505,
  "iopub_port": 55506,
  "stdin_port": 55507,
  "control_port": 55509,
  "hb_port": 55508,
  "ip": "0.0.0.0",
  "key": "0a163fda-2b4963c994abc4277bdf58fa",
  "transport": "tcp",
  "signature_scheme": "hmac-sha256",
  "kernel_name": ""
}

如何配置才能让指定的自定义端口生效?

解决方案

问题出在参数使用错误:jupyter-kernel命令对应的是KernelApp自身的配置,而非KernelManager的参数。KernelManager是用于管理kernel的上层组件,直接启动kernel进程时,需要使用KernelApp的端口参数。

临时生效:修改启动命令

把--KernelManager.*_port前缀去掉,直接使用--*_port参数,修改后的命令如下:

jupyter-kernel \
       --ip=0.0.0.0 \
       --control_port=56406 \
       --hb_port=56407 \
       --iopub_port=56408 \
       --shell_port=56409 \
       --stdin_port=56410

重新执行该命令,连接文件里的端口就会和你指定的一致。

持久化生效:配置文件设置

如果需要每次启动都自动应用这些端口,可以在Jupyter配置目录下创建/修改kernel_config.py文件,添加以下内容:

c.KernelApp.control_port = 56406
c.KernelApp.hb_port = 56407
c.KernelApp.iopub_port = 56408
c.KernelApp.shell_port = 56409
c.KernelApp.stdin_port = 56410
c.KernelApp.ip = '0.0.0.0'

配置文件默认路径为~/.jupyter/kernel_config.py,如果不存在,可通过jupyter kernel --generate-config命令生成。

内容的提问来源于stack exchange,提问作者John Kitchin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:40:16