小程序连不上腾讯云服务器,这问题太常见了。别急着骂代码,先按这个排查清单过一遍,90% 的问题出在配置和权限上,而不是代码逻辑本身。
1. 最基础的:网络连通性(白名单与防火墙)
这是新手最容易踩的坑。你本地能 ping 通服务器,不代表小程序能通。
- 安全组规则:登录腾讯云控制台 -> 云服务器 CVM -> 实例详情 -> 安全组。检查入站规则(Inbound)。
- 你的后端端口(比如 80, 443, 或者自定义的 8080/3000)是否放行了?
- 来源是
0.0.0.0/0吗?如果是特定 IP 段,确保没有限制死。 - 重点:很多教程让你开 22 端口,但小程序请求的是业务端口。如果你用的是 Nginx/Apache,确认那个端口开了。
- 操作系统防火墙:如果用了 CentOS 7+ 或 Ubuntu,除了云厂商的安全组,系统自带的
firewalld或ufw也要放行。- CentOS:
systemctl status firewalld,然后firewall-cmd --zone=public --add-port=你的端口/tcp --permanent再 reload。 - Ubuntu:
sudo ufw allow 你的端口/tcp。
- CentOS:
2. HTTPS 证书问题(重灾区)
微信小程序强制要求所有网络请求必须是 HTTPS。如果你的服务器没有配置有效的 SSL 证书,或者证书不受信任,连接会直接失败。
- 证书有效期:去腾讯云证书中心看看,证书是不是过期了?免费证书通常一年一签,别忘了续期。
- 域名匹配:证书的 SAN(Subject Alternative Name)必须包含你小程序请求的域名。如果你用 IP 地址直接访问,绝大多数浏览器和微信环境会拒绝 HTTPS 握手,除非你用了特殊手段(不推荐,且容易封号)。
- 协议版本:有些老旧服务器只支持 TLS 1.0/1.1,而现代客户端可能要求 TLS 1.2 以上。检查 Nginx 配置里的
ssl_protocols。
3. 域名备案与配置
- ICP 备案:你的域名必须在工信部完成备案,并在腾讯云提交备案审核通过。未备案域名解析到国内服务器,会被运营商拦截(DNS 污染或 HTTP 5xx),小程序根本拿不到响应。
- 小程序后台配置:登录微信公众平台 -> 开发管理 -> 开发设置 -> 服务器域名。
- request 合法域名:必须把你服务器的域名加进去。注意,这里只能加域名,不能加 IP。
- 格式正确:不要加
http://或https://前缀,也不要带端口号(除非是非标准端口且已特殊处理,但建议统一走 443)。 - 刷新缓存:改完域名后,有时需要重新生成体验版二维码,或者在开发者工具里清除缓存。
4. 跨域问题(CORS)
如果小程序能发起请求,但前端报错 Network Error 或 Failed to fetch,很可能是后端返回了 CORS 头缺失。
-
小程序的请求本质上是 AJAX/Fetch。如果你的前后端分离部署,后端必须允许来自
https://你的小程序域名的请求。 -
Nginx 示例:
location / { add_header Access-Control-Allow-Origin *; # 测试阶段可用 *,生产环境建议指定具体域名 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ($request_method = 'OPTIONS') { return 204; } ... } -
注意:部分后端框架(如 Spring Boot, Express, Django)也有自己的 CORS 中间件,确保它们生效了。
5. 服务器资源与进程状态
- 服务是否在运行:SSH 上去,
ps -ef | grep node或systemctl status nginx。有时候重启服务器后,服务没自启。 - 内存溢出:小程序并发虽然不高,但如果后端程序有内存泄漏,跑几天就 OOM(Out of Memory)崩溃了。看日志:
dmesg | tail或查看应用日志。 - 带宽打满:如果是轻量应用服务器,套餐带宽很小(比如 3Mbps)。一旦有人大量下载图片或视频,带宽占满,新请求就会超时。监控一下流量。
6. 小程序端的调试技巧
别光猜,用微信开发者工具的“网络”面板看真相。
- 打开调试模式:开发者工具右上角“详情” -> “本地设置” -> 勾选“不校验合法域名…”。这样可以绕过域名配置错误,直接看网络层报错。如果这时候通了,说明就是域名配置或备案问题;如果还报错,那就是代码或服务器内部问题。
- 看 Status Code:
0或network error:通常是 DNS 解析失败、SSL 握手失败、或服务器无响应(防火墙/宕机)。404:路径不对,后端路由没配好。500:后端代码崩了,查服务器日志!403:权限拒绝,可能是安全组、Nginx 权限、或后端鉴权失败。
快速自查流程图:
- 能用浏览器/Ping 通服务器吗? -> 不能 -> 查安全组/防火墙/服务器宕机。
- 能用浏览器 HTTPS 访问接口吗? -> 不能 -> 查证书/Nginx 配置/后端服务。
- 微信开发者工具(关闭域名校验)能通吗? -> 不能 -> 查代码逻辑/后端返回数据格式。
- 开启域名校验后能通吗? -> 不能 -> 查公众号后台域名配置/ICP 备案/域名解析。
最后提醒一点:不要用 localhost 或 127.0.0.1。小程序运行在微信客户端里,它无法访问你电脑本地的回环地址。你必须提供公网可访问的域名或 IP(需备案)。
按这个顺序排,基本能定位 95% 的问题。要是还搞不定,把具体的报错信息贴出来,再帮你细看。
CLOUD云枢