Skip to content

Cursor 登录按钮失效?从日志揪出「真凶」——Ubuntu 22.04 排障全记录

Cursor 作为 AI 驱动的编辑器,登录后才能使用 AI 功能。然而不少 Linux 用户会遇到一个恼人的问题:点击 Sign In / Log In 按钮毫无反应,浏览器没有自动弹出,控制台里却疯狂报 404。重装、清理、换 AppImage 都无济于事。

本文以 Ubuntu 22.04 为例,完整复盘一次从迷茫到解决的排查过程,希望能帮你节省几个小时的时间。

问题现象

  • Cursor 版本:2.6.19
  • 环境:Ubuntu 22.04,使用 sudo dpkg -i 安装官方 .deb 包
  • 症状:点击界面上的 Sign UpLog In 按钮,没有任何反应;开发者工具(Ctrl+Shift+I)Console 中反复出现类似 GET https://api2.cursor.sh/auth/poll?uuid=... 404 (Not Found) 的错误。

第一轮尝试:常规清理

网上常见的解决方案是彻底删除 Cursor 的配置目录,我先后执行了:

bash
rm -rf ~/.cursor ~/.config/cursor ~/.config/Cursor ~/.local/share/cursor ~/.cache/cursor

并用 cursor --disable-gpu 启动,问题依旧。甚至换成 AppImage 版本,依然无法点击登录。

排查网络连通性

先用 curl 测试 API 是否可达(注意我的环境有代理):

bash
curl -v https://api2.cursor.sh

返回了 Welcome to Cursor. From ...,说明网络没问题,代理也正常。

检查协议处理器

Cursor 登录会通过 cursor:// 协议回调,测试协议能否唤醒 Cursor:

bash
xdg-open "cursor://"

Cursor 窗口被成功唤起,说明协议处理器工作正常。那么问题很可能出在 打开普通网页(https)的环节

关键线索:终端日志

关闭所有 Cursor 进程,从终端启动并捕获日志:

bash
cursor --enable-logging --log-level=0 > cursor.log 2>&1

点击登录按钮后,查看 cursor.log,发现了一行醒目的错误:

Command '/usr/bin/firefox' requires the firefox snap to be installed.
Please install it with:
snap install firefox

真相大白! 系统默认的 Web 浏览器被设置成了 /usr/bin/firefox,而这个文件实际上是一个指向 snap 包的 stub,但 snap 版的 Firefox 根本没有安装。因此 Cursor 试图打开登录页面(https 链接)时,系统找不到可用的浏览器,整个操作被静默丢弃。

验证默认浏览器设置

查看当前默认的 Web 浏览器:

bash
xdg-settings get default-web-browser

输出可能是 firefox_firefox.desktop 或为空。再测试打开一个普通网页:

bash
xdg-open https://cursor.sh

果然没有任何反应。

解决方案:选择一个真实可用的浏览器并设为默认

你需要安装一个正常的、非 snap 版本的浏览器,并将其设置为系统默认。以下以三种常见浏览器为例(选择其中一种即可)。

1. 安装浏览器

🟢 安装 Microsoft Edge

bash
# 添加微软仓库
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge.list'
rm microsoft.gpg

# 安装
sudo apt update
sudo apt install microsoft-edge-stable

Edge 的 desktop 文件名为 microsoft-edge.desktop(或 microsoft-edge-stable.desktop)。

🟢 安装 Google Chrome

bash
# 下载并安装
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install google-chrome-stable

Chrome 的 desktop 文件名为 google-chrome.desktop

🟢 安装 Firefox(非 snap 版)

如果你希望继续使用 Firefox,建议从 Mozilla 官方 PPA 安装,而不是 snap 版。

bash
# 移除 snap 版 Firefox(如果已存在)
sudo snap remove firefox

# 添加 Mozilla 官方 PPA
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update

# 安装 Firefox
sudo apt install firefox

# 锁定 snap 版,防止被重新安装
sudo apt-mark hold firefox

Firefox 的 desktop 文件名为 firefox.desktop

2. 将所选浏览器设为系统默认

方法一:使用 xdg-settings(推荐)

首先确认浏览器的 desktop 文件正确名称(通常与安装的包名一致,如 google-chrome.desktopmicrosoft-edge.desktopfirefox.desktop)。然后执行:

bash
xdg-settings set default-web-browser <desktop文件>

例如,设置为 Edge:

bash
xdg-settings set default-web-browser microsoft-edge.desktop

设置为 Chrome:

bash
xdg-settings set default-web-browser google-chrome.desktop

设置为 Firefox:

bash
xdg-settings set default-web-browser firefox.desktop

方法二:修改 mime 数据库(直接)

编辑 ~/.config/mimeapps.list 文件,确保包含以下两行(以 Chrome 为例):

x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop

保存后更新数据库:

bash
update-desktop-database ~/.local/share/applications

方法三:使用 update-alternatives(系统级)

bash
# 以 Chrome 为例
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/google-chrome 200
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/google-chrome 200

# 交互式选择默认浏览器
sudo update-alternatives --config x-www-browser
sudo update-alternatives --config gnome-www-browser

3. 验证设置

运行以下命令,应该自动打开你设定的浏览器并访问 cursor.sh:

bash
xdg-open https://cursor.sh

如果浏览器成功打开,说明默认浏览器已生效。现在启动 Cursor,点击 Log In,登录页面终于弹出了!

为什么清理脚本无效?

清理脚本只删除了 Cursor 自身的配置,但系统级别的默认浏览器设置并未改变。即使重新安装 Cursor,它仍然会调用 xdg-open 来打开链接,而 xdg-open 遵循的是系统的 mime 关联。所以问题的根源根本不在 Cursor 内部,而在系统环境。

总结与建议

  1. 遇到点击登录无响应,优先检查默认浏览器设置

    bash
    xdg-settings get default-web-browser
    xdg-open https://example.com   # 测试能否打开
  2. 从终端启动应用并捕获日志:很多 GUI 应用会将错误输出到终端,这是最直接的线索。

  3. 不要忽略看似不相关的系统警告:如本文中的 Command '/usr/bin/firefox' requires the firefox snap to be installed,它直接指向了问题核心。

  4. 协议处理器与网页打开是两套机制cursor:// 能打开不代表 https:// 能打开,要分别测试。

  5. 对于 Ubuntu 22.04 用户:如果你从未手动设置过默认浏览器,系统可能默认使用 snap 版 Firefox,而 snap 可能未正确安装或配置,导致这类问题。

希望这篇排障记录能帮助到同样被 Cursor 登录困扰的朋友。如果你有其他环境下的类似问题,欢迎在评论区交流。

© 2025 技术博客. All rights reserved by 老周有AI