關於mongodb遠程訪問問題

背景:在視頻學習vue開發中使用到了mongodb這個數據庫,視頻中安裝在本地也能經過mongo命令訪問到本地數據庫。在練習中將mongodb安裝到了雲服務器上,經過外網來訪問這個mongodb的時候卻超時了。嘗試使用ping命令去訪問服務器ip能ping通,在本地的window下使用telnet ip:port的時候卻ping不一樣vue

版本:
mongodb3.6社區版mongodb

搜索資料:shell

  • 防火牆限制了端口的訪問
解決: 直接關閉防火牆
結果:不起做用
  • mongodb配置文件中指定訪問的ip
解決: mongodb -help查看幫助選項,
發現--config --bind_ip --bing_ip_all, 能夠從三者中配置ip地址,配置ip爲0.0.0.0(全部ip都能訪問)
結果:不起做用

通讀官網資料:
mongodb3.6版本變動 中有下面的一段引用數據庫

Previously, starting from MongoDB 2.6, only the binaries from the official MongoDB RPM (Red Hat, CentOS, Fedora Linux, and derivatives) and DEB (Debian, Ubuntu, and derivatives) packages bind to localhost by default.
When bound only to the localhost, these MongoDB 3.6 binaries can only accept connections from clients (including the mongo shell, other members in your deployment for replica sets and sharded clusters) that are running on the same machine. Remote clients cannot connect to the binaries bound only to localhost.
To override and bind to other ip addresses, you can use the net.bindIp configuration file setting or the --bind_ip command-line option to specify a list of ip addresses.
mongodb只綁定localhost,客戶端只能經過localhost訪問,若是想要經過外網來訪問須要添加bind_ip,那麼問題來了上面經過查看別人博客的時候也使用了bind_ip選項綁定了0.0.0.0 爲何行不通? 這裏精確到綁定ip爲雲服務器的ip
結果:不起做用,啓動報錯

使用ssl做爲外部鏈接的認證安全

上面經過綁定bind_ip選項來啓動mongod服務發現報錯,這裏須要配置ssl證書, 參考官網配置ssl證書,還須要配置客戶端的ssl,參考 官網Client配置ssl,簡單歸納就是:要想外網訪問就須要配置bing_ip,要想bing_ip起做用就得配置ssl經過經過證書認證
結果:不起做用,mongo 啓動報錯

都幹到這一步了放棄是不可能的,繼續查資料服務器

安所有署MongoDB最佳實踐,中描述:MongoDB集羣之間以及從客戶端鏈接到MongoDB實例的鏈接應該使用SSL。使用SSL對性能沒有影響而且能夠防範相似於man-in-the-middle的攻擊。參見 配置SSL 以得到更多信息。 注意MongoDB社區版默認並不支持SSL。你能夠選用MongoDB企業版(有SSL支持),或者從源碼從新編譯MongoDB並使用 —ssl 選項來得到SSL功能。

下載企業版ide

下載企業版要我註冊是怎麼回事? 內心有種不祥的預感,繼續查資料, clipboard.png

不想折騰了,直接老老實實在window下安裝個mongodb吧,先入門了再研究更深的性能

相關文章
相關標籤/搜索