温馨提示×

centos weblogic端口被占用怎么解决

小樊
43
2025-10-20 01:19:58
栏目: 智能运维

CentOS下WebLogic端口被占用的解决方法

1. 确认端口占用情况

首先需明确哪个端口被占用及占用进程。常用命令如下:

  • netstat命令sudo netstat -tuln | grep <端口号>(如sudo netstat -tuln | grep 7001),输出中会显示占用端口的进程ID(PID)和协议类型。
  • ss命令(更高效):sudo ss -tuln | grep <端口号>,功能与netstat类似,但性能更好。
  • fuser命令(快速定位进程):sudo fuser -v -n tcp <端口号>,直接显示占用端口的进程号、用户及命令。

2. 终止占用端口的进程(若非必要)

若占用端口的进程不是WebLogic自身(如其他应用、服务),可通过以下命令终止:

  • 普通终止sudo kill <PID><PID>为上一步查到的进程号),等待进程正常退出。
  • 强制终止:若普通终止无效,用sudo kill -9 <PID>强制结束进程(慎用,需确认进程无关键作用)。

3. 修改WebLogic端口配置(根本解决)

避免后续冲突,需修改WebLogic的端口设置,有两种方式:

① 通过WebLogic控制台修改(图形化操作)
  • 登录控制台:浏览器访问http://<服务器IP>:<原端口>/console(如http://localhost:7001/console),输入管理员账号密码。
  • 导航路径:环境服务器 → 选择目标服务器(如AdminServer)→ 配置监听端口
  • 修改端口:在“监听端口”字段输入新端口(如8080),点击“保存”。
② 直接修改配置文件(适用于无法登录控制台的情况)
  • 找到配置文件:进入WebLogic域目录(如/u01/domains/base_domain),打开config/config.xml文件。
  • 修改端口:定位到<server>标签(如<server name="AdminServer">),修改<listen-port>属性的值(如将7001改为8080)。
    <server name="AdminServer">
        <listen-port>8080</listen-port>  <!-- 修改为新端口 -->
        <listen-address>localhost</listen-address>
    </server>
    
  • 保存文件。

4. 调整防火墙设置(允许新端口通信)

修改端口后,需确保防火墙放行新端口,避免外部无法访问:

  • 添加永久规则sudo firewall-cmd --zone=public --add-port=<新端口>/tcp --permanent(如sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent)。
  • 重载防火墙sudo firewall-cmd --reload,使规则生效。

5. 重启WebLogic服务

使配置变更生效,执行以下命令:

  • 停止服务cd /u01/domains/base_domain/bin(域目录下的bin目录),运行./stopWebLogic.sh
  • 启动服务:运行./startWebLogic.sh,等待服务启动完成。

6. 验证端口修改结果

通过以下方式确认端口已切换:

  • 访问控制台:浏览器访问http://<服务器IP>:<新端口>/console(如http://localhost:8080/console),若能正常登录则说明成功。
  • 检查端口监听:用netstat -tuln | grep <新端口>ss -tuln | grep <新端口>,确认新端口处于LISTEN状态。

注意事项

  • 若修改的是AdminServer端口,需同步修改启动脚本(如startWebLogic.sh)中的端口引用(若有硬编码)。
  • 若端口仍被占用,需检查是否有其他服务(如Nginx、Apache)代理了该端口,或调整其配置。
  • 生产环境中,建议优先使用控制台修改方式,避免直接编辑配置文件导致格式错误。

0