首页/网络/常用端口速查/1098 rmiactivation 远程激活

1098 rmiactivation 远程激活

rmiactivation:Java RMI 激活守护进程(rmid)的注册端口,用于按需激活远程对象(Java RMI Activation 机制)。

常用端口速查网络更新于 2026-10-13

1098 与 Java RMI 激活

1098 的登记名是 rmiactivation,对应 Java RMI 的激活守护进程 rmid。RMI(远程方法调用)让 Java 程序像调用本地对象一样调用另一台 JVM 上的对象;激活机制更进一步,允许对象在真正被使用时才创建,由 rmid 负责按需启动已注册的对象。EJB 容器与早期 JMX 部署会用到它。由于实现复杂、收益有限,激活机制先被标记为废弃(JEP 385,JDK 15),随后在 JDK 17 中被移除(JEP 407),因此这个端口如今主要出现在老资产中。

基本信息

服务名Java RMI Activation(rmid)
传输层TCP
登记IANA rmiactivation 1098
关联端口rmiregistry 1099,对象通信常用随机端口
现状机制废弃,JDK 17 已移除(JEP 407)

典型使用场景

  • 老 Java 系统排障:调用远程对象失败时区分是注册表问题还是对象激活问题
  • 资产盘点:确认还有哪些主机在跑 rmid 与 rmiregistry
  • 升级评估:目标 JDK 为 17 及以上时,激活机制相关应用必须改造
  • 安全评估:RMI 的序列化机制存在历史风险,需评估暴露范围
  • 变更核实:防火墙策略调整后确认注册与对象通信两条链路都通

进程与监听核查

进程与监听核查
ss -lntp | grep -E ':(1098|1099) '   # 同时看激活守护与命名注册表
getent services rmiactivation        # 名称登记查询
jps -l 2>/dev/null | grep -i rmid    # 有 JDK 时核对 rmid 进程是否存在
sudo lsof -i :1098                   # 占用进程与路径
# 注意:导出对象时会另开随机端口,只放行 1098/1099 可能仍然调用失败

Java RMI 端口对照

端口组件说明
1099rmiregistryRMI 命名注册表
1098rmid按需激活守护(本条目)
随机端口导出对象通信实际数据通道,需另行规划策略
RMI 的注册端口与对象实际通信端口往往不同:对象导出时会另开随机端口,所以注册表可达不代表调用能成功。处置老系统时用 jps 与 ss 组合确认进程与监听的对应关系,比反复重启应用有效得多。
RMI 依赖 Java 序列化传输对象,历史上多次出现反序列化漏洞,且默认不提供加密与强认证。将 RMI 端口暴露到不可信网络属于高风险配置,应限制来源并尽快升级 JDK 与依赖库。

易错点

  • 升级到 JDK 17 及以上后激活机制不可用:老应用直接起不来,需提前改造
  • 防火墙只放行 1098/1099:对象通信走随机端口,调用仍会失败
  • 把注册表可达当作服务正常:激活失败与注册成功是两件事
  • RMI 端口跨网段开放:序列化攻击面随之扩大,应限制来源

数据来源与参考

  • IANA 端口注册表
  • Oracle JDK 文档(java.rmi.activation)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌