如何在局域网运行Spring Boot与Keycloak?防火墙配置求助
解决方案
一、Keycloak防火墙规则配置
kc.bat start-dev实际是通过Java进程启动Keycloak,所以找不到独立的Keycloak程序,需针对Java进程或端口配置规则:
按进程允许
- 打开Windows Defender防火墙 → 高级设置 → 入站规则 → 新建规则
- 规则类型选「程序」,点击下一步
- 选择「此程序路径」,定位到Java安装目录下的
java.exe(例:C:\Program Files\Java\jdk-17.x.x\bin\java.exe),点击下一步 - 选择「允许连接」,点击下一步
- 勾选「专用」(局域网属于专用网络),取消「域」「公网」,点击下一步
- 命名规则(如「Allow Keycloak Java Process」),完成
注:若使用JRE,路径对应C:\Program Files\Java\jre-17.x.x\bin\java.exe
按端口允许(更精准)
Keycloak开发模式默认端口为8080,直接开放该端口给局域网:- 打开Windows Defender防火墙 → 高级设置 → 入站规则 → 新建规则
- 规则类型选「端口」,点击下一步
- 选择「TCP」,输入「特定本地端口」为
8080,点击下一步 - 选择「允许连接」,点击下一步
- 勾选「专用」,取消「域」「公网」,点击下一步
- 命名规则(如「Allow Keycloak 8080 Lan」),完成
二、Spring Boot应用防火墙规则配置
Spring Boot应用同样以Java进程运行,需开放业务端口和调试端口:
- 业务端口开放:参考上述端口规则,开放Spring Boot的业务端口(若你修改过默认端口,需替换为实际端口)
- 调试端口开放(如需远程调试):新建入站规则,开放TCP端口
5005,允许专用网络连接 - 按进程允许:同Keycloak的进程规则配置,允许Java进程的入站连接,可覆盖所有Java运行的应用(无需精准控制时使用)
三、规则生效验证
- 重启Keycloak和Spring Boot应用
- 在局域网设备上访问
http://你的PC固定IP:8080/admin测试Keycloak控制台,访问Spring Boot接口验证应用连通性 - 若仍无法访问,排查以下点:
- 确认规则已勾选「专用」网络
- 确认PC的固定IP为局域网内有效地址(例:
192.168.x.x) - 检查路由器是否存在额外防火墙拦截流量
额外注意事项
- 若修改过Keycloak端口,需同步更新防火墙规则的端口号
- Keycloak开发模式默认绑定
0.0.0.0(对外暴露),若配置中改为localhost,需改回0.0.0.0 - Spring Boot默认绑定
0.0.0.0,若配置server.address=localhost,需调整为0.0.0.0
内容的提问来源于stack exchange,提问作者galalem
相关产品推荐
相关产品推荐

