局域網訪問 Redis 方法
默認情況下,Redis 只允許本機 (127.0.0.1
) 訪問。如果你想讓局域網中的其他設備訪問 Redis,需要 修改 Redis 配置,并確保 防火墻放行端口。
方法 1:修改 Redis 配置
1. 修改 redis.conf
(或 memurai.conf
)
-
Windows
-
Redis 舊版(Windows 3.2) 配置文件路徑:
C:\Program Files\Redis\redis.windows.conf
-
Memurai(Redis 替代方案) 配置文件路徑:
C:\Program Files\Memurai\memurai.conf
-
-
Linux/WSL 配置文件路徑:
/etc/redis/redis.conf
🔧 編輯 redis.conf
(或 memurai.conf
),找到 bind 127.0.0.1
,修改為:
bind 0.0.0.0
這允許 Redis 監聽所有 IP 地址。
🔧 找到 protected-mode yes
,改為:
protected-mode no
(否則 Redis 仍會阻止遠程訪問)
🔧 找到 requirepass yourpassword
(如果有),設置訪問密碼:
requirepass your_secure_password
(建議設置密碼,防止未授權訪問)
2. 允許遠程訪問
Linux / WSL 啟動 Redis
redis-server /etc/redis/redis.conf
Windows 啟動 Redis
redis-server.exe redis.windows.conf
方法 2:放行防火墻
默認 Redis 監聽 6379 端口,需要放行此端口。
Windows 放行 6379 端口
-
打開
cmd
(管理員權限) -
運行:
netsh advfirewall firewall add rule name="Allow Redis" dir=in action=allow protocol=TCP localport=6379
Linux 放行 6379 端口
如果使用 iptables
:
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
如果使用 ufw
(Ubuntu 推薦):
sudo ufw allow 6379/tcp
方法 3:局域網其他設備訪問
在局域網中的其他設備上(例如另一臺 Windows / Linux 電腦),使用 Redis CLI 或 編程方式 連接 Redis。
1. 使用 Redis CLI
假設 Redis 服務器 IP 是 192.168.1.100
,在客戶端設備上運行:
redis-cli -h 192.168.1.100 -p 6379 -a your_secure_password
如果成功連接,測試:
PING
返回:
PONG
2. 使用 C# 代碼連接 Redis
安裝 StackExchange.Redis(C# Redis 客戶端):
dotnet add package StackExchange.Redis
然后在 C# 代碼中:
using StackExchange.Redis;
using System;class Program
{static void Main(){var redis = ConnectionMultiplexer.Connect("192.168.1.100:6379,password=your_secure_password");var db = redis.GetDatabase();db.StringSet("hello", "world");Console.WriteLine(db.StringGet("hello")); // 輸出 "world"}
}
方法 4:使用 Docker 運行 Redis(局域網可訪問)
如果你在 Docker 中運行 Redis,需要 映射端口 并允許外部訪問:
docker run -d --name redis-server -p 6379:6379 redis --bind 0.0.0.0 --protected-mode no
然后在局域網客戶端連接:
redis-cli -h 192.168.1.100 -p 6379
總結
方法 | 操作 |
---|---|
修改 redis.conf | bind 0.0.0.0 ,protected-mode no ,設置密碼 |
放行防火墻 | netsh advfirewall (Windows),ufw 或 iptables (Linux) |
客戶端連接 | redis-cli -h 192.168.1.100 -p 6379 -a yourpassword |
C# 代碼 | StackExchange.Redis.ConnectionMultiplexer |
推薦:
-
如果 Windows 上使用 Redis(Memurai),修改
memurai.conf
并放行端口即可。 -
如果 使用 WSL/Ubuntu,修改
/etc/redis/redis.conf
并放行端口。 -
確保設置密碼,否則任何人都能訪問你的 Redis 數據!