公网访问阿里云数据库MongoDB——填坑笔记
業(yè)務(wù)情景
兩臺(tái)服務(wù)器,一臺(tái)阿里云ECS云服務(wù)器(專用網(wǎng)絡(luò)),另一臺(tái)是阿里云數(shù)據(jù)庫(kù)MongoDB,處于安全考慮MongoDB是不運(yùn)行外網(wǎng)連接的,那接下來(lái)就看怎么實(shí)現(xiàn)公網(wǎng)訪問(wèn)。
看到上面紅色的網(wǎng)絡(luò)類型描述,有些人可能已經(jīng)看出問(wèn)題所在了,小小的提示:問(wèn)題出現(xiàn)在開(kāi)放端口上!
專用網(wǎng)絡(luò)和經(jīng)典網(wǎng)絡(luò)的大致區(qū)別可以用一句話講明白:專用網(wǎng)絡(luò)更安全,需要設(shè)置和配置的東西比較多,適合精通網(wǎng)絡(luò)的高手;經(jīng)典網(wǎng)絡(luò)使用更方便,適合更適合小白用戶,使用起來(lái)更簡(jiǎn)單方便,不用繁雜的配置;
思路分析
既然無(wú)法直接使用公網(wǎng)(俗稱的外網(wǎng)都是一個(gè)意思),那就使用端口轉(zhuǎn)發(fā)的形式,把可以訪問(wèn)的一臺(tái)服務(wù)器的公網(wǎng)ip和端口轉(zhuǎn)到MongoDB的服務(wù)器即可,接下來(lái)我們使用rinetd的方式實(shí)現(xiàn)端口轉(zhuǎn)發(fā)。
具體步驟
rinetd的安裝方式有兩種,如果是Ubuntu系統(tǒng),可用apt-get install rinetd -y安裝.
下面重點(diǎn)介紹源碼安裝
1、安裝rinetd
分別執(zhí)行下面命令:
1. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd 2. sed -i 's/65536/65535/g' rinetd.c 3. mkdir /usr/man&&make&&make install2、配置端口映射
打開(kāi)文件/etc/rinetd.conf,配置內(nèi)容:
1 0.0.0.0 3717 MongoDB的鏈接地址 3717 2 logfile /var/log/rinetd.log0.0.0.0表示本機(jī)的所有ip.
如圖:
?
3、啟動(dòng)/關(guān)閉 rinetd
啟動(dòng):rinetd關(guān)閉:killall rinetd
4、查看運(yùn)行情況
netstat -tanulp|grep rinetdtcp ? ? ? ?0 ? ? ?0 0.0.0.0:3717 ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?4270/rinetd
如上內(nèi)容,顯示是運(yùn)行正常的。
遇到的坑
經(jīng)過(guò)如上的配置之后,使用公網(wǎng)連接還是失敗了,訪問(wèn)不了!筆者經(jīng)過(guò)數(shù)次改配置,反復(fù)啟動(dòng)ip,還是無(wú)果,于是感覺(jué)進(jìn)坑了!
?
問(wèn)題處理
經(jīng)過(guò)筆者反復(fù)排除,使用telnet等手段,分析得出3717的端口是問(wèn)題的,于是爬文檔,發(fā)現(xiàn)如果服務(wù)器是專用網(wǎng)絡(luò)的話是需要手動(dòng)設(shè)置開(kāi)放端口的。
具體操作如下:云服務(wù)器ECS => 安全組規(guī)則 => 添加安全組規(guī)則 => 如方向配置端口范圍3717/3717,如下:
?
經(jīng)過(guò)配置之后,使用MongoDB客戶端連接竟然成功了,如圖:
開(kāi)森
?
?
參考:https://help.aliyun.com/knowledge_detail/39952.html
?
總結(jié)
以上是生活随笔為你收集整理的公网访问阿里云数据库MongoDB——填坑笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WebApi开启CORS支持跨域POST
- 下一篇: 实战:Redis 哨兵模式(下)