天天看點

阿裡雲Redis公網連接配接的解決辦法

<a href="https://help.aliyun.com/document_detail/43850.html" target="_blank">https://help.aliyun.com/document_detail/43850.html</a>

如果您需要從本地 PC 端通路 Redis 執行個體進行資料操作,可以通過在 ECS 上配置端口映射或者端口轉發實作。但必須符合以下前提條件:

若 Redis 執行個體屬于專有網絡(VPC),ECS 必須與 Redis 執行個體屬于同一個 VPC。

若 Redis 執行個體屬于經典網絡,ECS 必須與 Redis 執行個體屬于同一節點(地域)。

若 Redis 執行個體開啟了 IP 白名單,必須将 ECS 的内網位址加入白名單清單内。

目前雲資料庫 Redis 版需要通過 ECS 的内網進行連接配接通路,如果您需要本地通過公網通路雲資料庫 Redis 版,可以在 ECS Windows 雲伺服器中通過 netsh 進行端口映射實作。

登入 ECS Windows 伺服器,在 cmd 執行以下指令:

<code>netsh interface portproxy add v4tov4 listenaddress=ECS伺服器的私有IP位址 listenport=6379 connectaddress=雲資料庫Redis的連接配接位址 connectport=6379</code>

阿裡雲Redis公網連接配接的解決辦法

其中:

<code>netsh interface portproxy delete v4tov4 listenaddress=ECS公網伺服器的公網IP位址 listenport=6379</code> 可以删除不需要的映射。

<code>netsh interface portproxy show all</code> 可以檢視目前伺服器中存在的映射。

設定完成後在本地進行驗證測試。

阿裡雲Redis公網連接配接的解決辦法

在本地通過 redis-cli 連接配接 ECS Windows 伺服器。假設 ECS Windows 伺服器的 IP 是 1.1.1.1,即 <code>telnet 1.1.1.1 6379</code>。

連接配接上 ECS windows 伺服器後,輸入連接配接 Redis 的密碼:<code>auth Redis的連接配接密碼</code>。

進行資料寫入及查詢驗證。

通過上述步驟即可實作:您本地 PC 或伺服器通過公網連接配接 ECS Windows 6379端口,對雲資料庫 Redis 進行通路。

注意:因 portproxy 由微軟官方提供,未開源使用,您如果配置使用過程中遇到疑問,可參看 netsh 的 portproxy 使用說明或向微軟官方咨詢确認。或者您也可以考慮通過其他的方案實作,比如通過 portmap 配置代理映射。

目前雲資料庫 Redis 版需要通過 ECS 進行内網連接配接通路。如果您本地需要通過公網通路雲資料庫 Redis,可以在 ECS Linux 雲伺服器中安裝 rinetd 進行轉發實作。

在雲伺服器 ECS Linux 中安裝 rinetd。

<code>wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&amp;&amp;tar -xvf rinetd.tar.gz&amp;&amp;cd rinetd</code>

<code>sed -i 's/65536/65535/g' rinetd.c (修改端口範圍)</code>

<code>mkdir /usr/man&amp;&amp;make&amp;&amp;make install</code>

注意:rinetd 安裝包下載下傳位址不確定下載下傳可用性,您可以自行搜尋安裝包進行下載下傳使用。

打開配置檔案 rinetd.conf。

<code>vi /etc/rinetd.conf</code>

在配置檔案中輸入如下内容:

<code>0.0.0.0 6379 Redis 的連結位址 6379</code>

<code>logfile /var/log/rinetd.log</code>

說明:您可以使用 <code>cat /etc/rinetd.conf</code>指令來檢驗配置檔案是否修改正确。
阿裡雲Redis公網連接配接的解決辦法

執行如下指令啟動 rinetd。

<code>rinetd</code>

注意 您可以通過 <code>echo rinetd &gt;&gt;/etc/rc.local</code> 将 rinetd 設定為自啟動。 若遇到綁定報錯,可以執行 <code>pkill rinetd</code> 結束程序,再執行 <code>rinetd</code>啟動程序 rinetd。 rinetd 正常啟動後, 執行<code>netstat -anp | grep 6379</code> 确認服務是否正常運作。
阿裡雲Redis公網連接配接的解決辦法

在本地進行驗證測試。

您可以在本地通過 redis-cli 連接配接 ECS Linux 伺服器後進行登入驗證,比如安裝了 rinetd 的伺服器的 IP 是 1.1.1.1,即<code>redis-cli -h 1.1.1.1 -a Redis的執行個體ID:Redis密碼</code>。或者通過 telent 連接配接 ECS Linux 伺服器後進行操作驗證。假設 ECS Linux 伺服器的 IP 是 1.1.1.1,即<code>telnet 1.1.1.1 6379</code>。

連接配接上 ECS Linux 伺服器後,輸入連接配接 Redis 的密碼:<code>auth Redis的連接配接密碼</code>。

阿裡雲Redis公網連接配接的解決辦法

通過上述步驟即可實作:您本地的 PC 或伺服器通過公網連接配接 ECS Linux 6379 端口,對雲資料庫 Redis 進行通路。

注意:您可以通過該方案進行測試使用,因 rinetd 為開源軟體,如在使用過程中存在疑問,您可以參看其官方文檔或與 rinetd 官方進行聯系确認。

如何聯系我:【萬裡虎】www.bravetiger.cn

【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)

【部落格】http://www.cnblogs.com/kenshinobiy/

繼續閱讀