无公网IP下,如何实现公网远程访问MongoDB文件数据库

本文介绍了如何在Windows上安装MongoDB并进行内网穿透,使用cpolar工具创建隧道映射,以及如何配置固定TCP端口以实现远程稳定访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

简单几步实现MongoDB远程访问。

1. 安装数据库

打开MongoDB官网https://www.mongodb.com/try/download/community,这里以windows版本为例。

20230220114401

下载好后,双击安装即可,安装到这一步,须点击complate设置账号密码

20230220114402

进入后可以设置一下密码,然后点击next,或者直接点击next安装即可

20230220114403

安装好后,我们使用连接工具测试连接,这里使用navicat连接

20230220114404

2. 内网穿透

本地连接没问题后,目前该数据库只能在局域网内被访问,不过我们可以使用cpolar内网穿透工具,将内网的MongoDB数据库映射到公网上,实现远程访问,不需要公网IP,也不用设置路由器。

2.1 安装cpolar内网穿透

进入cpolar官网下载页面,下载windows安装包到本地然后解压一路默认安装即可

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

20230220114405

2.2 创建隧道映射

cpolar安装成功后,双击打开cpolar【或者在浏览器上访问本地9200端口:127.0.0.1:9200】,使用cpolar邮箱账号登录 web UI管理界面,如果还没有注册cpolar账号的话,点击免费注册,会跳到cpolar官网注册一个账号就可以了

20230220114406

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地27017端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:27017
  • 域名类型:免费选择随机域名
  • 地区:默认China top即可

点击创建

20230220114407

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到刚刚创建的隧道已经有生成了相应的公网地址,将其复制下来

20230220114408

2.3 测试随机公网地址远程连接

打开navicat,输入tcp公网地址:3.tcp.cpolar.top端口号11249,然后点击测试连接,出现连接成功即可。

20230220114409

3. 配置固定TCP端口地址

由于以上创建的隧道是随机地址隧道,地址会在24小时内变化,为了使连接更加稳定,我们可以为其配置一个固定的tcp连接地址。

需要注意,配置固定TCP端口地址需要将cpolar升级到专业版套餐或以上。

3.1 保留一个固定的公网TCP端口地址

登录cpolar官网,点击左侧的预留,选择保留的TCP地址,我们先来为远程MongoDB保留一个固定端口地址。

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

点击保留

20230220114411

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

3.2 配置固定公网TCP端口地址

在浏览器上访问9200端口,http://127.0.0.1:9200/,登录cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到MongoDB隧道,点击右侧的编辑

20230220114413

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

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

点击更新

20230220114414

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

20230220114415

3.3 测试固定地址公网远程访问

测试使用固定TCP端口地址远程MongoDB,再次打开navicat,使用固定tcp地址连接

20230220114416

### 如何连接远程 MongoDB 数据库 #### 准备工作 为了能够成功连接到远程MongoDB数据库,在确保服务器上的MongoDB服务已经正常运行并配置好网络访问权限之后,还需要完成一些准备工作。 - **确认防火墙设置**:确保服务器的防火墙已开放MongoDB默认使用的27017端口或其他自定义端口号[^1]。 - **验证MongoDB监听地址**:通过编辑`mongod.conf`文件来调整bindIp参数,使其不仅限于localhost而是可以接受来自外部IP地址的请求。例如,将bindIp设为0.0.0.0表示接受所有接口上的连接尝试[^2]。 #### 设置安全认证机制 对于生产环境下的MongoDB实例来说,启用身份验证是非常重要的一步。这可以通过创建具有适当角色分配的管理账号实现: ```javascript use admin; db.createUser({ user: "root", pwd: "your_password_here", roles: [ {role: "userAdminAnyDatabase", db: "admin"}, "readWriteAnyDatabase" ] }); ``` 上述脚本用于建立一个超级用户账户,拥有对整个集群内所有数据库读写的权利以及创建其他用户的权限[^4]。 #### 远程客户端连接方法 当完成了以上步骤后,就可以利用多种方式去连接远端部署好的MongoDB了: ##### 使用命令行工具 `mongo/mongosh` 如果是在Linux或MacOS环境下操作,则可以直接调用终端输入如下指令来进行登录: ```bash mongosh -u root -p your_password --authenticationDatabase admin mongodb://server_ip_address:port_number/ ``` 这里的`server_ip_address`代表目标机器的实际公网IPv4地址;而`port_number`则是之前提到过的MongoDB所占用的服务端口,默认情况下是27017[^5]。 ##### Windows平台下使用图形界面应用程序 对于习惯GUI操作的朋友而言,也可以借助Robo 3T (原名Robomongo)这样的第三方软件轻松达成目的。只需按照提示新建会话时填入相应的主机名称/IP、端口数值还有刚才设立好的用户名密码即可。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值