我正在尝试绑定到我的公共 IP。但是,当编辑其中的内容时,nano /etc/mongod.conf
它不起作用。现在我认为这可能是问题所在。运行ifconfig
只显示我的私有 ip 地址:
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.7 netmask 255.255.255.0 broadcast 10.0.0.255
现在,如果我想从我的网络外部访问这个数据库,我当然不想绑定到这个私有 IP 地址,那么我该如何使用我的公共 IP 地址呢?
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,public_ip_here
尝试使用此配置重新启动服务时,这是我收到的错误消息:
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-06-15 19:04:21 EDT; 1s ago
Docs: https://docs.mongodb.org/manual
Process: 4616 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=48)
Main PID: 4616 (code=exited, status=48)
Jun 15 19:04:21 server systemd[1]: Started High-performance, schema-free document-oriented database.
Jun 15 19:04:21 server systemd[1]: mongod.service: Main process exited, code=exited, status=48/n/a
Jun 15 19:04:21 server systemd[1]: mongod.service: Failed with result 'exit-code'.
我认为问题必须围绕执行ifconfig
命令时未显示我的公共 IP 地址这一事实展开。但是,我不完全确定。除了有线互联网连接外,我正在使用我的一个带有 ubuntu 的旧桌面塔来托管 mongodb 实例。感谢所有提前回复的人。
通常,当您想要连接到单个公共 IP(家庭或小型办公室 DSL 或电缆连接等)后面的服务时,您会做的是将服务绑定到机器的私有 IP,然后配置您的路由器以转发适当的端口到正确的内部地址和端口(它们可以不同)
为了帮助提高安全性,可以使用所谓的 DMZ。这实质上分离了您的内部网络的另一个子网,该子网可以由路由器转发到该子网并由您的网络的其余部分访问,但其上的机器/服务无法启动与您的内部 LAN 的连接。这样,如果服务被黑客攻击,攻击者就无法将其用作连接到您的工作站等的桥梁。
不幸的是,“如何执行此操作”取决于您拥有的路由器、它运行的软件/固件版本等。使用您最喜欢的搜索引擎并使用诸如“端口转发”或“DMZ”之类的术语 - “RotoRouterv3。 14端口转发”