首页/网络/常用端口速查/27018 MongoDB 副本集惯例端口

27018 MongoDB 副本集惯例端口

单机多实例部署 MongoDB 的约定俗成:同一台机器上第二个 mongod 常配 27018(副本集 secondary、测试实例);它不是官方默认值,务必以实际配置为准。

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

27018 是什么

27018 不是 MongoDB 的官方默认端口,而是社区约定:在单机多实例部署里,第二个 mongod 常配 27018,用于练习副本集或运行测试实例,第三个实例则常用 27019。生产环境的真实端口以副本集配置里的成员地址为准。把约定当默认是这类端口最典型的误用,连错库的事故往往由此而来,而且现象通常是「数据对不上」而不是报错。

基本信息

服务MongoDB 第二实例(常见约定)
协议TCP(MongoDB 线协议)
用途单机多实例、副本集演练
官方默认27017
相关约定27019(第三实例)
安全等级同 27017:认证加限网段

典型使用场景

  • 本地演练:一台机器上跑多实例练习副本集
  • 测试环境:与生产共用主机时按端口隔离实例
  • 连接串核对:确认业务连的是哪一个实例
  • 安全核查:确认每个实例都启用了认证
  • 扩容评估:多实例对内存与 IO 的竞争关系
  • 备份核对:确认备份脚本覆盖了全部实例

MongoDB 多实例常见约定

端口角色说明
27017第一实例(默认)官方默认端口
27018第二实例副本集演练与测试库(约定)
27019第三实例常被用作配置服务器(约定)
27018 对应实例数据目录与日志必须与第一实例分开

副本集成员核对

副本集成员核对
mongosh admin --eval 'rs.status().members.forEach(m=>print(m.name+" "+m.stateStr))'
mongosh --port 27018 --eval 'db.adminCommand({hello:1}).setName'   # 确认副本集名称
ss -lntp | grep 2701                                              # 实例监听概览
# 连接串: mongodb://host1:27018,host2:27018/?replicaSet=rs0
多实例部署必须为每个实例分配独立的数据目录与日志文件:共用目录会直接导致启动失败甚至数据损坏。
副本集成员的地址由配置决定:改主机名或端口后需要重新配置,否则成员之间互相找不到,集群状态一直异常。
多实例会争抢内存与 IO:wiredTiger 缓存配置要按实例数分摊,否则单个实例在高负载下会被系统回收内存拖慢。
演练实例往往沿用默认端口与空口令:它一旦与生产同网段,就成了进入内网最省事的跳板。
备份脚本通常只写了默认端口:新增实例后要同步更新备份范围,否则演练数据与生产数据都可能漏备。

易错点

  • 把约定当默认:客户端连到 27018 以为是生产库,实际是别人搭的演练实例
  • 多实例共用数据目录:实例启动失败或数据互相覆盖
  • 演练实例沿用空口令且与生产同网段:弱口令实例成为进入内网的跳板
  • 成员地址变更后不重配副本集:集群状态异常,业务侧读写失败
  • 备份脚本只覆盖默认端口:新增实例的数据没有任何备份

数据来源与参考

  • MongoDB 官方文档(副本集与单机多实例示例常用 27018)

相关工具

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