Google Colab本地运行时连接失败:出现404 GET错误
我来帮你排查这个Colab本地运行时的404问题。从你给出的Jupyter日志来看,服务器确实在http://localhost:8891/正常运行,但Colab连接时找不到对应端点,大概率是连接参数或者Jupyter配置的问题,试试下面这些步骤:
确认连接URL与端口完全匹配
你的Jupyter日志显示服务运行在8891端口,连接Colab本地运行时的时候,务必确保输入的URL是http://localhost:8891/,同时仔细核对Colab生成的连接命令里的端口号——有时候复制命令时容易手滑输错端口,这是最常见的问题。重启Jupyter并添加跨域访问参数
Colab需要跨域访问本地Jupyter服务,默认启动的Jupyter可能没有开启这个权限。先按Ctrl+C停止当前服务器,然后用下面的命令重启:jupyter notebook --port=8891 --allow-origin='https://colab.research.google.com' --NotebookApp.allow_origin='https://colab.research.google.com' --NotebookApp.port_retries=0这条命令明确指定端口,同时允许Colab的域名访问,避免跨域限制导致的404错误。
验证Jupyter API端点是否正常
打开浏览器直接访问http://localhost:8891/api,如果能看到返回的JSON格式数据,说明Jupyter的API路由是正常的;如果仍然返回404,那可能是Jupyter的配置文件jupyter_notebook_config.py里禁用了API路由,需要检查文件里是否有类似c.NotebookApp.disable_check_xsrf = False或者其他限制路由的设置,必要时重置配置文件。清除Colab缓存并重新生成连接令牌
有时候Colab本地存储的旧连接令牌会导致匹配失败。建议关闭所有Colab标签页,清除浏览器缓存(或者直接用隐私窗口打开Colab),然后重新生成本地运行时的连接命令,复制到终端执行后再尝试连接。排查防火墙或代理的拦截
本地防火墙、杀毒软件或者代理工具可能会阻止Colab访问localhost的8891端口。可以暂时关闭防火墙,或者把8891端口加入信任列表,再测试连接是否正常。
内容的提问来源于stack exchange,提问作者Adam Shai

