温馨提示×

centos为何无法启动swagger

小樊
42
2026-09-27 09:55:08
栏目: 智能运维

在 CentOS 上“无法启动 Swagger”通常不是 Swagger 本身的问题,而是运行环境或配置导致的。下面按常见原因给你一个排查清单(你没说具体是哪种 Swagger,我按最常见情况说明)。


一、先确认你说的“Swagger”是哪种

常见有三类:

  1. Spring Boot + Swagger / Springdoc
  2. Swagger UI 单独部署(Nginx / Node)
  3. Swagger Editor / Codegen

下面以 Spring Boot + Swagger 为主说明,其他情况类似。


二、CentOS 上最常见的 6 个原因

1️⃣ 端口未开放(最常见)

CentOS 默认有 firewalld

# 查看端口
firewall-cmd --list-ports

# 开放端口(如 8080)
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

云服务器还要检查 安全组。


2️⃣ 应用根本没启动成功

看日志:

journalctl -u your-service
# 或
tail -f logs/spring.log

常见错误:

  • 端口被占用
  • 数据库连接失败
  • Swagger 依赖冲突

3️⃣ Swagger 路径被拦截(Spring Security)

如果你用了 Spring Security:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
      .authorizeRequests()
      .antMatchers("/swagger-ui/**", "/v3/api-docs/**").permitAll()
      .anyRequest().authenticated();
}

Springdoc 路径通常是:

  • /swagger-ui.html
  • /swagger-ui/index.html
  • /v3/api-docs

4️⃣ JDK 版本不兼容

CentOS 自带 OpenJDK 可能太老:

java -version

Swagger / Springdoc 通常需要:

  • Java 8+
  • Spring Boot 3 → Java 17+

5️⃣ 依赖未正确引入

Maven 示例(Springdoc):

<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.3.0</version>
</dependency>

旧 Swagger:

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
</dependency>

⚠️ Spring Boot 3 不能用 springfox


6️⃣ SELinux 阻止访问

临时测试:

setenforce 0

如果好了,说明是 SELinux 问题。


三、快速自检清单 ✅

# 1. 应用是否监听端口
netstat -tunlp | grep 8080

# 2. 本地能否访问
curl http://localhost:8080/swagger-ui.html

# 3. 防火墙
firewall-cmd --list-all

四、如果你愿意,我可以更精准帮你

你可以补充:

  1. CentOS 版本(7 / 8 / Stream)
  2. Java & Spring Boot 版本
  3. 用的是 Swagger / Springdoc
  4. 报错日志或截图

我可以直接帮你定位到具体那一行配置或命令。

0 踩