前提條件
如果您需要從本地 PC 端訪問 Redis 執行個體進行資料操作,可以通過在 ECS 上配置連接埠映射或者連接埠轉寄實現。但必須符合以下前提條件:
ECS Windows 篇
目前ApsaraDB for Redis需要通過 ECS 的內網進行串連訪問,如果您需要本地通過公網訪問ApsaraDB for Redis,可以在 ECS Windows 雲端服務器中通過 netsh 進行連接埠映射實現。
- 登入 ECS Windows 伺服器,在 cmd 執行以下命令:
netsh interface portproxy add v4tov4 listenaddress=ECS伺服器的私網IP地址 listenport=6379 connectaddress=ApsaraDB for Redis的串連地址 connectport=6379
如果需要查看當前伺服器存在的映射,可用
netsh interface portproxy show all
命令。 - 設定完成後在本地進行驗證測試。
- 在本地通過 redis-cli 串連 ECS Windows 伺服器。假設 ECS Windows 伺服器的 IP 是 1.1.1.1,即
telnet 1.1.1.1 6379
。 - 串連上 ECS windows 伺服器後,輸入串連 Redis 的密碼:
auth Redis的串連密碼
。 - 進行資料寫入及查詢驗證。
通過上述步驟即可實現:您本地 PC 或伺服器通過公網串連 ECS Windows 6379連接埠,對ApsaraDB for Redis 進行訪問。
注意因 portproxy 由微軟官方提供,未開源使用,您如果配置使用過程中遇到疑問,可參看 netsh 的 portproxy 使用說明或向微軟官方諮詢確認。或者您也可以考慮通過其他的方案實現,比如通過 portmap 配置代理映射。
- 在本地通過 redis-cli 串連 ECS Windows 伺服器。假設 ECS Windows 伺服器的 IP 是 1.1.1.1,即
- 完成相關操作後,如需刪除公網轉寄,可用
netsh interface portproxy delete v4tov4 listenaddress=ECS伺服器的私網IP地址 listenport=6379
刪除不需要的映射。
ECS Linux 篇
目前ApsaraDB for Redis需要通過 ECS 進行內網串連訪問。如果您本地需要通過公網訪問ApsaraDB for Redis,可以在 ECS Linux 雲端服務器中安裝 rinetd 進行轉寄實現。
- 在Elastic Compute Service Linux 中安裝 rinetd。
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd sed -i 's/65536/65535/g' rinetd.c (修改連接埠範圍) mkdir /usr/man&&make&&make install
注意rinetd 安裝包下載地址不確保下載可用性,您可以自行搜尋安裝包進行下載使用。
- 開啟設定檔 rinetd.conf。
vi /etc/rinetd.conf
- 在設定檔中輸入如下內容:
0.0.0.0 6379 Redis 的連結地址 6379 logfile /var/log/rinetd.log
说明 您可以使用cat /etc/rinetd.conf
命令來檢驗設定檔是否修改正確。 - 執行如下命令啟動 rinetd。
rinetd
-
您可以通過
echo rinetd >>/etc/rc.local
將 rinetd 設定為自啟動。 -
若遇到綁定報錯,可以執行
pkill rinetd
結束進程,再執行rinetd
啟動進程 rinetd。 -
rinetd 正常啟動後, 執行
netstat -anp | grep 6379
確認服務是否正常運行。
-
- 在本地進行驗證測試。
- 您可以在本地通過 redis-cli 串連 ECS Linux 伺服器後進行登入驗證,比如安裝了 rinetd 的伺服器的 IP 是 1.1.1.1,即
redis-cli -h 1.1.1.1 -a Redis的執行個體ID:Redis密碼
。或者通過 telent 串連 ECS Linux 伺服器後進行操作驗證。假設 ECS Linux 伺服器的 IP 是 1.1.1.1,即telnet 1.1.1.1 6379
。 - 串連上 ECS Linux 伺服器後,輸入串連 Redis 的密碼:
auth Redis的串連密碼
。 - 進行資料寫入及查詢驗證。
- 您可以在本地通過 redis-cli 串連 ECS Linux 伺服器後進行登入驗證,比如安裝了 rinetd 的伺服器的 IP 是 1.1.1.1,即
通過上述步驟即可實現:您本地的 PC 或伺服器通過公網串連 ECS Linux 6379 連接埠,對ApsaraDB for Redis 進行訪問。
您可以通過該方案進行測試使用,因 rinetd 為開源軟體,如在使用過程中存在疑問,您可以參看其官方文檔或與 rinetd 官方進行聯絡確認。