Oracle WebLogic 12c:关闭后SSL端口7003仍可访问的问题求助
排查WebLogic受管服务器关闭后7003端口仍可访问的问题
这问题我之前帮团队排查过类似的,大概率是这几个常见原因导致的,咱们一步步拆解:
1. 浏览器缓存在“搞鬼”
很多时候不是端口真的在运行,而是浏览器缓存了之前访问过的页面(尤其是静态HTML、CSS这类资源)。你关闭服务器后访问,其实读的是本地缓存,不是真的连到了7003端口。
- 验证方法:用隐私/无痕窗口重新访问,或者直接清空浏览器缓存;更靠谱的是用命令行工具,比如执行
curl -I your-server-ip:7003或者telnet your-server-ip 7003,看是否真的能建立连接。
2. WebLogic进程没被彻底杀掉
stopWeblogic.sh 脚本有时候会因为进程僵死、资源未正常释放(比如数据库连接没断开、线程挂起),导致脚本执行完了,但实际的WebLogic Java进程还在后台偷偷跑着,继续占用7003端口。
- 排查步骤:
- Linux系统执行
ps -ef | grep weblogic,Windows打开任务管理器找Java进程; - 找到对应受管服务器的进程PID,用
kill -9 PID(Linux)或者右键结束任务(Windows)彻底杀掉,再检查端口状态。
- Linux系统执行
3. 端口被其他进程占用
如果WebLogic确实已经关闭,可能有其他程序(比如测试工具、其他服务)刚好占用了7003端口,导致你访问时能得到响应。
- 验证方法:
- Linux执行
netstat -tulpn | grep 7003,Windows执行netstat -ano | findstr :7003; - 查看输出里的进程ID和名称,确认是不是WebLogic的进程。
- Linux执行
4. SSL长连接/会话残留
SSL协议支持长连接机制,客户端和服务器的连接关闭后,可能会处于TIME_WAIT状态(等待会话过期),看起来端口还在“运行”,但其实已经没有进程在监听了。
- 验证方法:用
netstat查看端口状态,如果是TIME_WAIT,不用着急,过几分钟系统会自动释放;如果是LISTEN状态,那才是真的有进程在监听。
5. 管理服务器的转发/代理(集群场景)
如果你的受管服务器属于WebLogic集群,且管理服务器开启了请求转发,可能受管服务器关闭后,管理服务器把请求转发到了集群内其他正常运行的节点?不过你说的是单受管服务器的话这个可能性较低,但可以检查管理服务器的运行状态,看看是不是它在处理7003的请求。
快速排查流程
- 先用
netstat/ss工具确认7003端口的状态(LISTEN/TIME_WAIT/其他); - 检查是否有残留的WebLogic Java进程;
- 用命令行工具(curl/telnet)验证端口是否真的能建立连接;
- 杀掉所有WebLogic进程后,再次检查端口状态。
内容的提问来源于stack exchange,提问作者chandu
相关产品推荐
相关产品推荐

