调试 Debian 上的 Swagger(通常指 Swagger UI / OpenAPI 接口文档) 时,问题一般集中在 服务启动、接口访问、配置、权限、日志 等方面。下面按常见场景给你一个系统化的排查思路。
在 Debian 上常见情况有:
不同技术栈调试方式略有差异,但核心思路一致。
ps aux | grep swagger
# 或看你对应的服务
systemctl status your-service
ss -lntp
# 或
netstat -lntp
例如:
LISTEN 0 128 0.0.0.0:8080
在 Debian 本机测试:
curl http://localhost:8080/swagger-ui.html
curl http://localhost:8080/v3/api-docs
✅ 能访问 → 服务正常
❌ 不能访问 → 服务或端口问题
路径是否正确
/swagger-ui.html
/swagger-ui/index.html
/v3/api-docs
/swagger-ui.html
/v3/api-docs
是否被 Spring Security 拦截
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/swagger-ui/**", "/v3/api-docs/**").permitAll();
}
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
@RestController / @RequestMappingbasePackage 配置错误curl http://localhost:8080/v3/api-docs
如果返回 JSON 但接口少:
Docket / GroupedOpenApi 配置iptables -L
ufw status
location /swagger/ {
proxy_pass http://127.0.0.1:8080;
}
检查:
//v3/api-docsping your-domain.com
典型错误:
Failed to load API definition
调试方法:
curl -I http://localhost:8080/v3/api-docs
检查:
application/jsontail -f logs/spring.log
开启 debug:
logging:
level:
org.springdoc: DEBUG
springfox: DEBUG
node app.js
# 或
pm2 logs
uvicorn main:app --reload --log-level debug
java -version
node -v
python3 --version
⚠️ 有些 Swagger 版本对 Java 17+ 敏感
journalctl -u your-service -f
ls -l /var/log/your-app
避免:
你可以直接贴出:
cat /etc/os-release)我可以一步一步帮你定位 ✅