亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Go 連接到遠程 Linux MongoDb(無需身份驗證)

從 Go 連接到遠程 Linux MongoDb(無需身份驗證)

Go
侃侃無極 2023-07-31 14:51:06
登錄 Linux 盒子后,無需身份驗證即可連接 MongoDB。如何從 Go 代碼連接到這樣的 MongoDB 實例?我需要使用用戶名和密碼通過 SSH 連接到 Linux 盒子,然后連接到 MongoDB。嘗試了下面的代碼,但它拋出:“無法訪問的服務器”從命令提示符處,我可以 ping Linux 機器的 IP 地址,并且我的 IDE 也可以連接到互聯網。    mongoDBDialInfo := &mgo.DialInfo{        Addrs:    []string{"<LINUX_IP_ADDRESS>"},        Timeout:  60 * time.Second,        Database: "<MONGODB_DATABASE_NAME>",        Username: "<LINUX_USERNAME>",        Password: "<LINUX_PASSWORD>",    }    mongoSession, err := mgo.DialWithInfo(mongoDBDialInfo)    if err != nil {        log.Fatalf("CreateSession: %s\n", err)    }
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

ssh 隧道是一種可行的保護服務的措施,盡管有時很棘手。

棘手的部分是隧道可能會崩潰,而發生這種情況時您無能為力,因為隧道是在應用程序外部創建的。

然而,對于 MongoDB 來說,它還帶來了一些相當討厭的副作用:您需要對設置和 DNS 進行大量修改才能設置和運行副本,更不用說分片了。

如果您啟用身份驗證(這并不難)和 TLS 以及適當的安全措施,然后將您的 MongoDB 服務器綁定到 0.0.0.0 或您用于連接到機器的 IP 地址,那就更好了。

旁注:確保您安裝了諸如fail2ban或denyhosts之類的強力攔截器,配置為保護MongoDB并測試是否這樣做。

如果上述總和看起來太復雜,您應該非常徹底地考慮是否不應該使用托管 MongoDB 服務,例如MongoDB Inc 的 Atlas或mLab。

不過,您可以按照以下方法進行操作:

$?ssh?user@linuxhost?-N?-f?-L?27017:127.0.0.1:27017
Password:

輸入密碼。該進程將進入后臺,您可以通過以下方式檢查它是否仍在運行

$?ps?ax?|?grep?ssh

這將打開到遠程主機的 ssh 隧道,打開端口 27017(運行命令的計算機上的第一個端口),并通過 ssh 連接將其隧道連接到端口 27017 上的 127.0.0.1(遠程主機的本地主機地址) 。

現在,您只需設置&mgo.DialInfo{Addrs:[]string{"127.0.0.1:27017"}}

查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號