核心业务端口和监控端点端口必须分开配置,通过management.server.port独立监听监控端口(如8081),server.port运行业务(如8080),并配合端点收敛、spring security内网访问控制及专用ip绑定,实现物理隔离与安全强化。

核心业务端口和监控端点端口必须分开配置,不能混用。Spring Boot 默认把 Actuator 监控端点(如 /actuator/health、/actuator/metrics)和主应用共用一个端口(比如 8080),这会带来安全与稳定性风险:外部请求可能压垮监控接口,监控调用也可能干扰业务响应延迟,甚至暴露敏感指标。
用 management.server.port 独立监听监控端口
在 application.properties 或 application.yml 中显式指定独立的管理端口,是最直接有效的隔离方式:
-
properties 示例:
management.server.port=8081
server.port=8080 -
yml 示例:
server:
port: 8080
management:
server:
port: 8081
这样业务流量走 8080,所有 /actuator/** 请求全部由 8081 处理,物理层面就完成了网络通道分离。
限制监控端点访问范围,强化网络隔离
仅改端口还不够,需配合访问控制防止未授权探测:
- 通过
management.endpoints.web.exposure.include按需开放端点,禁用高危项:
management.endpoints.web.exposure.include=health,info,metrics,prometheus
不暴露env、beans、loggers等可读敏感配置的端点 - 结合 Spring Security,只允许内网 IP 访问监控端口:
在配置类中添加规则,例如只放行127.0.0.1和运维网段192.168.10.0/24
生产环境建议绑定到专用 IP 地址
如果服务器有多网卡或多 IP,可进一步提升隔离等级:
- 让业务服务绑定公网或业务网段 IP:
server.address=192.168.5.10 - 让监控服务仅监听内网或运维专用 IP:
management.server.address=192.168.10.5
这样即使端口被扫描到,没有对应网段路由也无法访问,比单纯防火墙策略更底层、更可靠。
端口隔离不是加个配置就完事,关键是让监控流量不经过业务链路、不共享线程池、不共用连接资源。做到端口独立 + 地址限定 + 端点收敛,才算真正落地。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











