Fedora环境连接Postgres数据库报错,Windows与Gitpod可正常运行
问题:Fedora本地无法连接Vercel数据库,报ETIMEDOUT超时错误
- 新手使用Fedora跟随Next.js教程开发
- Windows本地、Gitpod环境均可正常连接Vercel数据库,但Fedora本地连接失败
- 核心报错:
NeonDbError: fetch failed,根源为ETIMEDOUT连接超时 - 已尝试安装PostgreSQL驱动并启动进程,问题未解决
完整报错日志
Database Error: NeonDbError: Error connecting to database: fetch failed at execute (webpack-internal:///(rsc)/./node_modules/@neondatabase/serverless/index.js:4689:21) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async fetchRevenue (webpack-internal:///(rsc)/./app/lib/data.ts:30:22) at async Page (webpack-internal:///(rsc)/./app/dashboard/page.tsx:19:21) { code: null, sourceError: TypeError: fetch failed at node:internal/deps/undici/undici:12618:11 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: AggregateError [ETIMEDOUT]: at internalConnectMultiple (node:net:1116:18) at internalConnectMultiple (node:net:1184:5) at Timeout.internalConnectMultipleTimeout (node:net:1710:5) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { code: 'ETIMEDOUT', [errors]: [Array] } } } ⨯ app/lib/data.ts (33:10) @ fetchRevenue ⨯ Error: Failed to fetch revenue data. at fetchRevenue (./app/lib/data.ts:35:15) at async Page (./app/dashboard/page.tsx:19:21) 31 | } catch (error) { 32 | console.error('Database Error:', error); > 33 | throw new Error('Failed to fetch revenue data.'); | ^ 34 | } 35 | } 36 | ⨯ app/lib/data.ts (33:10) @ fetchRevenue ⨯ Error: Failed to fetch revenue data. at fetchRevenue (./app/lib/data.ts:35:15) at async Page (./app/dashboard/page.tsx:19:21) digest: "1123824755" 31 | } catch (error) { 32 | console.error('Database Error:', error); > 33 | throw new Error('Failed to fetch revenue data.'); | ^ 34 | } 35 | }
解决方案
1. 检查防火墙规则
Fedora默认启用firewalld,大概率是防火墙拦截了出站连接:
- 临时关闭防火墙测试:
重启Next.js服务后尝试连接,若成功则是防火墙问题。sudo systemctl stop firewalld - 永久允许PostgreSQL端口(5432)的出站流量:
sudo firewall-cmd --add-port=5432/tcp --permanent sudo firewall-cmd --reload
2. 排查代理设置
代理配置错误会导致连接超时:
- 查看当前代理环境变量:
echo $HTTP_PROXY $HTTPS_PROXY - 临时取消代理测试:
之后重启项目服务,确认是否能连接。unset HTTP_PROXY HTTPS_PROXY
3. 验证DNS解析
DNS解析失败会导致无法定位数据库服务器:
- ping数据库域名测试(替换为你的实际数据库域名):
ping your-db-hostname.neon.tech - 若ping不通,切换公共DNS(比如Google DNS):
编辑/etc/resolv.conf,添加:
保存后重试连接。nameserver 8.8.8.8 nameserver 8.8.4.4
4. 检查Node.js版本兼容性
@neondatabase/serverless对Node.js版本有要求,过低版本可能引发问题:
- 查看当前Node.js版本:
node -v - 升级到LTS版本(推荐18.x或20.x):
使用nvm安装:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash nvm install --lts nvm use --lts
5. 重置网络栈
系统网络栈异常也可能导致连接失败:
- 重启网络服务:
sudo systemctl restart NetworkManager - 若无效,直接重启系统:
sudo reboot
内容的提问来源于stack exchange,提问作者TORNADO ZW
相关产品推荐
相关产品推荐

