本帖最后由 御坂主机 于 2024-7-6 16:06 编辑
1. 简介
MongoDB是一种开源的文档型数据库,广泛应用于现代Web应用程序中。本文将详细介绍如何在linux系统上部署MongoDB,并在没有公网IP的情况下实现远程访问。
1.1 MongoDB简介
MongoDB是一种NoSQL数据库,使用JSON格式存储数据,具有高性能、高可用性和易扩展性等特点。其灵活的数据模型和强大的查询能力,使其成为开发者的首选数据库之一。
2. 环境准备
在开始部署MongoDB之前,需要确保Linux系统已经配置好,并且有足够的权限进行安装和配置操作。
2.1 更新系统包
首先,更新系统包以确保所有软件都是最新版本。
- sudo apt-get update
- sudo apt-get upgrade
复制代码
2.2 安装依赖包
安装MongoDB需要一些依赖包,可以通过以下命令安装:
- sudo apt-get install libcurl4 openssl liblzma-dev
复制代码
3. 安装MongoDB
在Linux系统上安装MongoDB可以通过MongoDB官方提供的包管理工具来完成。
3.1 添加MongoDB仓库
首先,添加MongoDB的官方仓库,以便从中安装MongoDB。
- wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- 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:
- sudo apt-get update
- sudo apt-get install -y mongodb-org
复制代码
3.3 启动并配置MongoDB
安装完成后,启动MongoDB服务,并设置其开机自启动:
- sudo systemctl start mongod
- sudo systemctl enable mongod
复制代码
4. 配置MongoDB远程访问
默认情况下,MongoDB只允许本地访问。要实现远程访问,需要修改MongoDB的配置文件。
4.1 修改配置文件
打开MongoDB配置文件,找到并修改绑定地址。
- sudo nano /etc/mongod.conf
复制代码
将bindIp字段改为0.0.0.0,以允许所有IP地址访问。
保存并关闭文件,然后重启MongoDB服务:
- sudo systemctl restart mongod
复制代码
4.2 设置防火墙
为了安全起见,只允许特定的IP地址访问MongoDB。可以通过设置防火墙规则来实现。
- sudo ufw allow from <your_ip_address> to any port 27017
复制代码
5. 实现无公网IP远程访问
在没有公网IP的情况下,可以使用内网穿透工具如Ngrok或Frp来实现远程访问。
5.1 使用Ngrok
Ngrok是一种内网穿透工具,可以将本地服务暴露给公网访问。首先,下载并安装Ngrok。
- wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
- unzip ngrok-stable-linux-amd64.zip
- sudo mv ngrok /usr/local/bin
复制代码
然后,使用Ngrok开启MongoDB的内网穿透服务:
Ngrok会生成一个公网地址,通过该地址可以远程访问本地的MongoDB服务。
5.2 使用Frp
Frp(Fast Reverse Proxy)是一种高性能的反向代理应用,支持内网穿透。首先,下载并安装Frp。
- wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
- tar -xzf frp_0.37.1_linux_amd64.tar.gz
- cd frp_0.37.1_linux_amd64
复制代码
配置Frp客户端(frpc.ini),添加MongoDB的代理配置:
- [common]
- server_addr = your_frp_server_address
- server_port = 7000
- [mongodb]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 27017
- remote_port = 27017
复制代码
启动Frp客户端:
通过配置好的公网地址,可以远程访问本地的MongoDB服务。
6. 总结
本文详细介绍了如何在Linux系统上部署MongoDB并实现无公网IP远程访问。通过使用Ngrok或Frp等内网穿透工具,可以方便地实现远程访问,而无需公网IP。希望本文对您有所帮助,如果有任何疑问或建议,欢迎交流讨论。
------------------------------------------------------------------------------------------------------------------------------------------
======== 御 坂 主 机 ========
>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<
>> 推广/合作/找我玩 TG号 : @Misaka_Offical <<
-------------------------------------------------------------------------------------------------------------------------------------------
|