![]()
Could not connect to Redis at 192.168.137.132:6379: 由于連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。
當出現 “Could not connect to Redis at 192.168.137.132:6379: No route to host” 錯誤,意味著客戶端無法找到通往 Redis 服務器(IP 為 192.168.137.132,端口為 6379)的路由,這通常是由網絡方面的問題引起的。下面為你詳細分析可能的原因及對應的解決辦法:
- 原因:虛擬機的網絡可能沒有正確連接到宿主機所在的網絡環境,比如網絡適配器配置錯誤或者網絡線纜(虛擬層面)未正確連接。
- 解決辦法
- 檢查虛擬機的網絡設置,確保網絡適配器的連接模式(如橋接模式、NAT 模式等)配置正確。以 VMware 虛擬機為例,可在虛擬機設置中查看和修改網絡適配器的相關配置。
- 嘗試重新啟動虛擬機的網絡服務。在 Linux 虛擬機中,可以使用以下命令重啟網絡服務:
sudo systemctl restart NetworkManager
- 原因:在同一網絡中,可能存在其他設備使用了相同的 IP 地址(192.168.137.132),導致路由混亂。
- 解決辦法
- 在虛擬機中使用
ip addr show 命令確認當前虛擬機的 IP 地址是否為 192.168.137.132。
- 檢查網絡中的其他設備,確保沒有設備使用相同的 IP 地址??梢酝ㄟ^路由器的管理界面查看已連接設備的 IP 分配情況。
- 原因:虛擬機的防火墻可能阻止了外部對 Redis 端口(6379)的訪問,或者阻止了網絡數據包的正常傳輸。
- 解決辦法
- CentOS 系統(使用 firewalld 防火墻):
# 開放 6379 端口
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重新加載防火墻規則
sudo firewall-cmd --reload
# 允許 6379 端口的 TCP 連接
sudo ufw allow 6379/tcp
- 原因:宿主機的防火墻可能阻止了與虛擬機的網絡通信。
- 解決辦法
- 在 Windows 宿主機中,打開防火墻設置,在入站規則中添加允許訪問 192.168.137.132 地址和 6379 端口的規則。
- 在 Linux 宿主機中,同樣需要檢查并開放相應的端口和 IP 訪問權限。
- 原因:虛擬機的路由表可能配置錯誤,導致無法正確路由到目標 IP 地址。
- 解決辦法
- 使用
route -n 命令查看虛擬機的路由表,確認默認網關和目標網絡的路由配置是否正確。
- 如果路由表存在問題,可以使用
ip route add 或 ip route del 命令來添加或刪除路由規則。例如,添加默認網關:
sudo ip route add default via <網關 IP 地址>
- 原因:Redis 服務可能沒有正常啟動,或者監聽的 IP 地址和端口與客戶端連接的不一致。
- 解決辦法
sudo systemctl status redis
sudo systemctl start redis
- 打開 Redis 配置文件
/etc/redis/redis.conf,確保 bind 配置項設置為 0.0.0.0 或者正確的監聽 IP 地址,并且 port 配置項為 6379。修改完成后,重啟 Redis 服務:
sudo systemctl restart redis
也可以使用config get命令查看當前Redis 運行的配置項
config get bind
config get protected-mode
![]()