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

JupyterHub服务不可用(HTTP 403)及端口占用问题求助

问题解决方案:JupyterHub启动失败(端口占用+HTTP 403)

让我们一步步拆解并解决你的问题,先从最直观的端口占用问题入手:

1. 解决端口8000/8001被占用的问题

日志里的EADDRINUSE错误明确说明这两个端口已经被其他进程占用,ConfigProxy无法正常启动,这是导致后续服务不可用的核心原因之一。

  • 方法一:杀掉占用端口的进程
    先找出占用端口的进程PID:

    # 查找8000端口进程
    sudo lsof -i :8000
    # 或者用netstat
    sudo netstat -tulpn | grep :8000
    

    拿到PID后强制终止进程:

    sudo kill -9 <查到的PID>
    

    对8001端口重复上述操作即可。

  • 方法二:修改JupyterHub端口配置
    如果不想终止现有进程,可以在jupyterhub_config.py里指定新的端口:

    # 将主服务端口改为8002
    c.JupyterHub.port = 8002
    # 将Proxy API端口改为8003
    c.ConfigurableHTTPProxy.api_url = 'http://127.0.0.1:8003/api/routes'
    

    修改后记得重启JupyterHub生效。

2. 修复HTTP 403 Forbidden错误

这个错误源于Hub和Proxy之间的认证令牌问题,日志里提示Generating CONFIGPROXY_AUTH_TOKEN说明没有设置固定令牌,导致双方认证失败。

  • 设置固定的认证令牌
    你有三种方式配置:
    1. 临时启动时设置环境变量:
      # 生成随机令牌
      export CONFIGPROXY_AUTH_TOKEN=$(openssl rand -hex 32)
      # 启动JupyterHub
      jupyterhub
      
    2. 永久添加到环境变量(比如~/.bashrc或/etc/profile):
      export CONFIGPROXY_AUTH_TOKEN="你的随机令牌"
      
    3. 直接写进jupyterhub_config.py:
      c.JupyterHub.proxy_auth_token = '你的随机令牌'
      
    推荐用openssl rand -hex 32生成安全的随机令牌。

3. 处理deprecated的proxy_cmd提示

日志里提示JupyterHub.proxy_cmd is deprecated,需要更新配置项:
将原来的:

c.JupyterHub.proxy_cmd = ['/usr/local/bin/configurable-http-proxy']

替换为:

c.ConfigurableHTTPProxy.command = ['/usr/local/bin/configurable-http-proxy']

4. 最后检查几个细节

  • 确认SSL证书mycert.pem和密钥mykey.key的路径正确,且密钥文件权限设置为chmod 600 mykey.key(避免权限过宽导致问题)。
  • 核对GitHub OAuth应用里的回调URL,必须和配置里的c.GitHubOAuthenticator.oauth_callback_url完全一致(包括https、IP、端口和路径,不能有任何拼写错误)。
  • 检查whitelist和admin_users里的GitHub用户名拼写是否准确,大小写也要匹配。

完成以上修改后,重启JupyterHub即可:

jupyterhub --config=/path/to/your/jupyterhub_config.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:28:20