news 2026/4/30 16:13:34

MongoDB 本地用得爽?突破局域网,cpolar这招让数据访问更自由

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MongoDB 本地用得爽?突破局域网,cpolar这招让数据访问更自由

MongoDB 是一款分布式 NoSQL 数据库,核心功能是灵活存储 JSON 格式的复杂数据,比如嵌套对象、数组等,其查询语言支持类似 SQL 的聚合、筛选、分组统计,还能对数组、地理位置等字段建索引,加速数据检索。它适合需要快速搭建灵活数据模型的开发者、处理半结构化数据的数据分析团队,以及想入门 NoSQL 的学生;优点在于数据模型灵活,无需固定表结构,查询能力强大,能高效应对多样的数据处理需求。

使用 MongoDB 时,感受最深的是它的灵活性 —— 添加新字段无需修改表结构,嵌套文档能轻松整合关联数据,比如存储用户信息时直接嵌入订单记录。但要注意,索引虽能提速,过多或不合理的索引会拖慢写入速度,需根据查询场景合理设计。

不过,MongoDB 默认只在局域网内可访问,这带来不少麻烦:开发测试时,异地同事想调试数据却连不上本地库;数据分析团队外出时,无法远程调取实时数据;学生在家做项目,实验室的 MongoDB 服务只能闲置。

而当 MongoDB 与 cpolar 结合后,这些问题迎刃而解。cpolar 能将本地 MongoDB 的端口映射到公网,无需公网 IP,也不用复杂配置,远程设备通过生成的公网地址就能轻松连接,无论是团队跨地域协作调试,还是异地调取数据做分析,都变得简单高效。

1. 安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令:

添加Docker源

# Add Docker's official GPG key:sudoapt-getupdatesudoapt-getinstallca-certificatescurlgnupgsudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmoda+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:echo\"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(./etc/os-release&&echo"$VERSION_CODENAME")stable"|\sudotee/etc/apt/sources.list.d/docker.list>/dev/nullsudoapt-getupdate

安装Dokcer包

sudoapt-getinstalldocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通过运行映像来验证 Docker 引擎安装是否成功

sudodockerrun hello-world

2. 使用Docker拉取MongoDB镜像

sudodockerpull mongo

然后执行查看镜像命令:

sudodockerimages

可以看到成功拉取了MongoDB镜像。

3. 创建并启动MongoDB容器

成功拉取MongoDB镜像后,我们可以使用该镜像创建并运行一个MongoDB容器。

首先在宿主机上创建存储目录/docker_mount/mongodb/data,用于持久化MongoDB数据。

您可以使用以下命令进行创建:

sudomkdir-p/docker_mount/mongodb/data

然后在终端执行以下命令运行容器:

sudo docker run -d -p 27017:27017 --name mongodb -v /docker_mount/mongodb/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=password mongo

参数说明:

  • –name excalidraw:本例容器名称为mongodb,大家可以自己起名。
  • **-e MONGO_INITDB_ROOT_USERNAME=root:**初始化一个root角色的用户root
  • **-e MONGO_INITDB_ROOT_PASSWORD=password:**密码是password,大家可以自己设置。
  • -p 27017:27017: 端口进行映射,将本地27017端口映射到容器内部的27017端口。
  • **-d ** :设置容器在在后台一直运行。

然后执行下方命令查看容器是否正在运行:

sudodockerps

可以看到刚才创建的MongoDB容器正在运行中。

4. 本地连接测试

OK,经过以上过程,docker部署 mongodb 就完成了,现在我们可以通过Navicat进行连接测试。

我使用的 Navicat 的版本是 16,如下图新建 mongodb 的连接:

主机填写宿主机ip,大家可以在终端中输入ip addr命令进行查看。

端口填写:27017

验证填写:admin

用户名和密码填写刚才启动容器时设置的账号密码:root和password

然后点击测试连接,可以看到连接成功!

5. 公网远程访问本地MongoDB容器

不过我们目前只能在本地连接刚刚使用docker部署的MongoDB服务,如果身在异地,想要远程访问在本地部署的MongoDB容器,但又没有公网ip怎么办呢?

我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

5.1 内网穿透工具安装

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl-Lhttps://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash
  • 向系统添加服务
sudosystemctlenablecpolar
  • 启动cpolar服务
sudosystemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

5.2 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:mongo1
  • 协议:tcp
  • 本地地址:27017
  • 域名类型:随机域名
  • 地区:选择China VIP

点击创建

然后打开在线隧道列表,查看并且复制tcp协议的公网地址,注意tcp://无需复制

打开navicat或者其他连接工具,主机选项输入上面我们cpolar中创建的公网地址,端口号对应地址冒号后面生成的公网端口号。

然后点击测试连接,可以看到连接成功!

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的TCP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地MongoDB服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的TCP地址来远程访问。

5.3 使用固定TCP地址远程访问

登录cpolar官网后台,点击左侧的预留,找到保留的tcp地址,我们来为远程连接MongoDB数据库保留一个固定tcp地址。

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

本例中地址为:6.tcp.vip.cpolar.cn:13644

然后在浏览器上访问Linux局域网ip地址+:9200端口,登录cpolar web ui管理界面。

点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的远程数据库隧道,点击右侧的编辑

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

打开连接工具,输入官网保留的固定tcp地址,端口为地址后面对应的公网端口号,点击测试连接。

出现连接成功表示成功,现在这个公网地址不会再随机变化,只要保持隧道正常在线,我们在外就可以通过这个公网地址远程连接到局域网内的MongoDB数据库。

通过这样的搭配,MongoDB 的灵活性能在更广阔的场景中发挥作用,远程访问不再受局域网限制,数据管理的便利性大幅提升,适合有远程协作或异地访问需求的用户尝试。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 20:46:06

电路跳动的心脏----常用晶振有哪些?价格如何?

晶振在数字电路中广泛使用,如果拿到下面的PCBA,能快速识别出哪个是晶振?是什么类型的晶振? 能快速了解价格水平是怎样的吗?本文总体介绍常用晶振类型及相应价格水平,让大家有初步了解。晶振主要类别有恒温晶…

作者头像 李华
网站建设 2026/5/1 8:14:27

2026爆火6款AI论文神器!告别论文焦虑,限时公开实测结果!

倒计时警告! 如果你还在为开题报告、文献综述、数据分析和降重查重彻夜难眠,恭喜你,这篇文章就是你2026年毕业季最后的“救命稻草”。别再相信“慢慢来”的谎言,学术圈的竞争早已进入“快鱼吃慢鱼”的时代。拖延一天,就…

作者头像 李华
网站建设 2026/5/1 7:46:58

2025年IDM永久免费使用终极指南:告别激活烦恼

2025年IDM永久免费使用终极指南:告别激活烦恼 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 还在为Internet Download Manager的激活问题而烦恼吗&a…

作者头像 李华
网站建设 2026/5/1 6:49:20

终极Live Server使用指南:5个隐藏技巧让前端开发效率翻倍

终极Live Server使用指南:5个隐藏技巧让前端开发效率翻倍 【免费下载链接】vscode-markdown 项目地址: https://gitcode.com/gh_mirrors/vsc/vscode-markdown 作为一名长期奋战在前端开发一线的工程师,我深知实时预览对于开发效率的重要性。VS C…

作者头像 李华
网站建设 2026/5/1 6:48:26

GLM-4.6V-Flash-WEB与主流视觉模型的精度对比实验

GLM-4.6V-Flash-WEB与主流视觉模型的精度对比实验 在当前多模态AI技术快速演进的背景下,一个现实问题正日益凸显:许多视觉语言模型(VLM)虽然在学术榜单上表现亮眼,但在真实业务场景中却“水土不服”。推理延迟高、部署…

作者头像 李华
网站建设 2026/4/26 9:05:34

Dify如何实现百万级DOCX文档处理?:深度剖析其架构设计与优化策略

第一章:Dify如何实现百万级DOCX文档处理?在面对海量DOCX文档的解析与结构化处理需求时,Dify通过分布式架构与异步任务机制实现了高效、稳定的百万级文档吞吐能力。系统核心依赖于文件预处理流水线、多节点并行解析以及资源动态调度策略&#…

作者头像 李华