在 CentOS 上“无法启动 Swagger”通常不是 Swagger 本身的问题,而是运行环境或配置导致的。下面按常见原因给你一个排查清单(你没说具体是哪种 Swagger,我按最常见情况说明)。
常见有三类:
下面以 Spring Boot + Swagger 为主说明,其他情况类似。
CentOS 默认有 firewalld
# 查看端口
firewall-cmd --list-ports
# 开放端口(如 8080)
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
云服务器还要检查 安全组。
看日志:
journalctl -u your-service
# 或
tail -f logs/spring.log
常见错误:
如果你用了 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-docsCentOS 自带 OpenJDK 可能太老:
java -version
Swagger / Springdoc 通常需要:
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
临时测试:
setenforce 0
如果好了,说明是 SELinux 问题。
# 1. 应用是否监听端口
netstat -tunlp | grep 8080
# 2. 本地能否访问
curl http://localhost:8080/swagger-ui.html
# 3. 防火墙
firewall-cmd --list-all
你可以补充:
我可以直接帮你定位到具体那一行配置或命令。