找回密码
 立即注册
查看: 419|回复: 0

[linux] Linux系统部署MongoDB开源文档型数据库并实现无公网IP远程访问

[复制链接]

224

主题

0

回帖

773

积分

高级会员

积分
773
发表于 2024-7-5 19:25:44 | 显示全部楼层 |阅读模式
本帖最后由 御坂主机 于 2024-7-6 16:06 编辑

1. 简介

MongoDB是一种开源的文档型数据库,广泛应用于现代Web应用程序中。本文将详细介绍如何在linux系统上部署MongoDB,并在没有公网IP的情况下实现远程访问。

1.1 MongoDB简介

MongoDB是一种NoSQL数据库,使用JSON格式存储数据,具有高性能、高可用性和易扩展性等特点。其灵活的数据模型和强大的查询能力,使其成为开发者的首选数据库之一。

2. 环境准备

在开始部署MongoDB之前,需要确保Linux系统已经配置好,并且有足够的权限进行安装和配置操作。

2.1 更新系统包

首先,更新系统包以确保所有软件都是最新版本。

  1. sudo apt-get update
  2. sudo apt-get upgrade
复制代码


2.2 安装依赖包

安装MongoDB需要一些依赖包,可以通过以下命令安装:

  1. sudo apt-get install libcurl4 openssl liblzma-dev
复制代码


3. 安装MongoDB

在Linux系统上安装MongoDB可以通过MongoDB官方提供的包管理工具来完成。

3.1 添加MongoDB仓库

首先,添加MongoDB的官方仓库,以便从中安装MongoDB。

  1. wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
  2. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
复制代码


3.2 安装MongoDB

更新系统包列表,然后安装MongoDB:

  1. sudo apt-get update
  2. sudo apt-get install -y mongodb-org
复制代码


3.3 启动并配置MongoDB

安装完成后,启动MongoDB服务,并设置其开机自启动:

  1. sudo systemctl start mongod
  2. sudo systemctl enable mongod
复制代码


4. 配置MongoDB远程访问

默认情况下,MongoDB只允许本地访问。要实现远程访问,需要修改MongoDB的配置文件。

4.1 修改配置文件

打开MongoDB配置文件,找到并修改绑定地址。

  1. sudo nano /etc/mongod.conf
复制代码


将bindIp字段改为0.0.0.0,以允许所有IP地址访问。

  1. bindIp: 0.0.0.0
复制代码


保存并关闭文件,然后重启MongoDB服务:

  1. sudo systemctl restart mongod
复制代码


4.2 设置防火墙

为了安全起见,只允许特定的IP地址访问MongoDB。可以通过设置防火墙规则来实现。

  1. sudo ufw allow from <your_ip_address> to any port 27017
复制代码


5. 实现无公网IP远程访问

在没有公网IP的情况下,可以使用内网穿透工具如Ngrok或Frp来实现远程访问。

5.1 使用Ngrok

Ngrok是一种内网穿透工具,可以将本地服务暴露给公网访问。首先,下载并安装Ngrok。

  1. wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
  2. unzip ngrok-stable-linux-amd64.zip
  3. sudo mv ngrok /usr/local/bin
复制代码


然后,使用Ngrok开启MongoDB的内网穿透服务:

  1. ngrok tcp 27017
复制代码


Ngrok会生成一个公网地址,通过该地址可以远程访问本地的MongoDB服务。

5.2 使用Frp

Frp(Fast Reverse Proxy)是一种高性能的反向代理应用,支持内网穿透。首先,下载并安装Frp。

  1. wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
  2. tar -xzf frp_0.37.1_linux_amd64.tar.gz
  3. cd frp_0.37.1_linux_amd64
复制代码


配置Frp客户端(frpc.ini),添加MongoDB的代理配置:

  1. [common]
  2. server_addr = your_frp_server_address
  3. server_port = 7000

  4. [mongodb]
  5. type = tcp
  6. local_ip = 127.0.0.1
  7. local_port = 27017
  8. remote_port = 27017
复制代码


启动Frp客户端:

  1. ./frpc -c ./frpc.ini
复制代码


通过配置好的公网地址,可以远程访问本地的MongoDB服务。

6. 总结

本文详细介绍了如何在Linux系统上部署MongoDB并实现无公网IP远程访问。通过使用Ngrok或Frp等内网穿透工具,可以方便地实现远程访问,而无需公网IP。希望本文对您有所帮助,如果有任何疑问或建议,欢迎交流讨论。





------------------------------------------------------------------------------------------------------------------------------------------

========  御 坂 主 机  ========

>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<

>> 推广/合作/找我玩  TG号 : @Misaka_Offical <<

-------------------------------------------------------------------------------------------------------------------------------------------

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 08:41 , Processed in 0.065455 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表