结论是Chrome未获取Token,因Safari与Chrome Cookie不共享、URL复制不完整或地址栏自动美化丢失token参数;jupyter notebook list仅列出已运行服务的完整URL(含端口和token),不生成新token;设永久密码更可靠,需用jupyter notebook password生成哈希并重启服务;Token验证失败还可能源于端口冲突或权限问题。

直接说结论:不是密码错了,是 Chrome 没拿到 Token —— 它根本没被传过去,或者传错了。
为什么复制 URL 到 Chrome 就提示输入 Token?
启动 jupyter notebook 时终端打印的 URL 是带完整 ?token=xxx 参数的,但 Safari 访问后,地址栏可能自动“美化”成 http://localhost:8888/,你复制的只是这个干净地址,丢掉了关键参数。
- Safari 和 Chrome 的 Cookie 不互通,Token 不会自动同步
- 复制 URL 时如果没选中整个链接(尤其跨行或被终端截断),
token=后面那串字符大概率残缺 - Token 本身是一次性绑定 session 的,URL 里少了它,浏览器就只能弹登录框
jupyter notebook list 能看到哪些信息?
这个命令只对已运行的服务有效,输出的是当前所有活跃 Jupyter 进程对应的完整访问地址,包括端口和 Token。它不生成新 Token,也不验证有效性,只是读取 runtime 目录下的 jpserver-*.json 文件。
基于官方 GMGN API 的代币分析工具。通过合约地址查询代币在 SOL/BSC/Base 链上的准确市场数据、安全检测、KOL 分析、开发者分析和 AI 智能分析(叙事/筹码/老鼠仓/机器人)。支持自动识别链。
- 输出格式固定为:
http://localhost:PORT/?token=xxxxxxxxxx:: /path/to/notebooks - 如果返回空,说明没有服务在运行,或
JUPYTER_RUNTIME_DIR被改过且当前用户无权限读取 - 多个端口(如 8888、8889)同时存在,说明有残留进程,
kill -9 PID或重启前先清理
设置永久密码比反复找 Token 更可靠吗?
是的,但要注意:密码不是明文存的,而是把哈希值写进配置文件。一旦设了,所有浏览器都认这个密码,不再依赖 URL 参数或 Cookie。
- 执行
jupyter notebook password,按提示输两次密码,会自动生成哈希并写入~/.jupyter/jupyter_notebook_config.json - 如果该文件不存在,先运行
jupyter notebook --generate-config - 别手动编辑
c.NotebookApp.password字段——容易多空格或少引号,导致启动失败 - 设完必须重启服务,否则旧 Token 仍有效,新密码不生效
Token 验证失败还可能是端口或权限问题?
经常被忽略:Token 对了,但页面卡在加载或报 Invalid credentials,实际是底层连接没通。
- 检查终端里启动时显示的端口是否真被监听:
lsof -i :8888(macOS/Linux)或netstat -ano | findstr :8888(Windows) - 远程访问时,确保 SSH 端口转发或防火墙放行的是实际服务端口(比如启动时 fallback 到了 8889,但你只映射了 8888)
- Windows 下
AppData/Roaming/jupyter/runtime权限不足会导致 Token 文件写入失败,jupyter notebook list就查不到任何服务
真正麻烦的不是找不到 Token,而是你以为找到了,其实复制时漏了一位字符,或者服务根本没跑在你以为的那个端口上。

















