VPS 端口打不开,怎么查?
先从服务器本机请求应用,再查 Docker 映射、安全组和防火墙。IP 可访问而域名失败,才继续查 DNS 和代理。
容器在运行,浏览器却打不开,先看应用监听的地址和端口。DNS、安全组、防火墙只负责各自一段访问过程,不会让尚未启动的程序开始监听。
先绕过域名,检查本机服务
下面假设应用发布在宿主机 3000 端口,把数值换成实际配置:
sudo ss -lntp
curl -I http://127.0.0.1:3000
sudo docker compose ps
sudo docker compose logs --tail=100
应用没有实现 HEAD 请求时,curl -I 可能返回 405;继续按应用支持的正常请求检查,不能只因为不是 200 就判断网络断了。连接拒绝时先确认服务状态和端口,暂时不用修改域名。
Docker 发布地址决定谁能访问
127.0.0.1:3000:3000 将应用发布到宿主机回环地址,适合由宿主机代理承接公网;直接访问服务器公网 IP 的 3000 会失败,这是该配置的限制。
ports:
- "127.0.0.1:3000:3000"
若 Caddy 在另一个容器里,这里的 127.0.0.1 不是应用所在宿主机;共享网络后使用服务名和内部端口。程序在应用容器内部也应监听正确接口,不能只听容器自己的回环地址,却期待发布端口能转进去。
本机正常,再检查外部规则
确认云平台入站规则、宿主机规则及 Docker 的端口处理。Docker 发布端口与 UFW 的关系需要单独核对,不能只看 UFW 显示拒绝就认定公网一定被挡住。
从自己的网络访问实际地址与端口。网站由代理提供 HTTPS 时,重点验证 80、443 和代理到上游的路径,不必把应用端口也开放给所有人。SSH、数据库和管理面板按用途限制来源。
域名错误最后再查 DNS 和代理
公网 IP 正常、域名失败时,检查 A、AAAA 和 CDN 代理状态。无效 AAAA 可能让部分客户端走到不可用的 IPv6。Cloudflare 普通代理也不能承接任意 TCP 端口。
每次只改一个条件,保留成功和失败的请求结果。已有云控制台入口时再修改管理端口,避免排障过程中把唯一的登录方式也关掉。
套餐有端口限制时,怎样换机
监听、安全组和系统规则错误先在原实例修复。确认 NAT 映射、端口限制或公网入口确实不满足业务,再按Docker VPS 的网络条件选择新套餐;新旧机器都用同一套访问与读写检查,避免换了机器又出现同样的配置错误。
业务需要固定公网入口时,先选能按要求开放端口的实例,核对 NAT、共享 IP 与映射限制。可通过 查看雨云 RCS 的 IP 与网络选项 选择配置,或比较 Evoxt 当前地区与实例。监听地址和规则错误在原机修复即可;原商品确实无法提供所需入口时,再买符合条件的目标机并验证域名与业务端口。




