局域网访问 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 数据!