如何通过Windows端Redis Insight访问WSL中转的AWS Redis实例?
解决Windows Redis Insight连接WSL内SSM转发的ElastiCache Redis问题
方案1:修改SSM端口转发命令绑定WSL可访问IP
WSL2默认用NAT网络,Windows的localhost和WSL的localhost不是同一地址,得让SSM转发直接绑定到WSL的对外IP:
- 在WSL终端执行
hostname -I,拿到WSL的IP(比如172.17.0.2) - 替换原SSM命令的
localPortNumber参数,改成绑定0.0.0.0或者WSL的具体IP:
aws ssm start-session --profile xxx \ --region us-east-1 \ --target i-xxxxxxxxxxxxxxxxx \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters host="aaa.bbbb.0001.use1.cache.amazonaws.com",portNumber="6379",localPortNumber="0.0.0.0:6379"
- 打开Windows的Redis Insight,直接连接
WSL_IP:6379(比如172.17.0.2:6379)
方案2:调整socat参数并放行Windows防火墙
- 重新执行socat命令,加上
reuseaddr参数避免端口占用问题:
socat TCP-LISTEN:6380,bind=0.0.0.0,fork,reuseaddr TCP:localhost:6379
- 打开Windows Defender防火墙,添加入站规则,允许TCP协议的6380端口连接
- Redis Insight里不要用
localhost:6380,换成WSL的IP加6380端口(比如172.17.0.2:6380)
方案3:用Windows端口转发工具(netsh)
- 以管理员身份打开Windows命令提示符(CMD)
- 执行以下命令,把Windows本地6380端口转发到WSL的6379端口(替换
WSL_IP为实际获取的WSL地址):
netsh interface portproxy add v4tov4 listenport=6380 listenaddress=0.0.0.0 connectport=6379 connectaddress=WSL_IP
- 现在Redis Insight直接连接
localhost:6380就能访问到WSL内转发的Redis集群了
方案4:切换WSL到桥接模式(WSL2专属)
如果经常需要跨WSL和Windows访问服务,直接改WSL网络模式更省心:
- 先关闭WSL:在Windows CMD执行
wsl --shutdown - 在
C:\Users\你的用户名路径下新建/编辑.wslconfig文件,添加以下内容(vmSwitch填你Hyper-V里的虚拟交换机名称,没有的话先在Hyper-V管理器里创建一个桥接交换机):
[wsl2] networkingMode=bridged vmSwitch=WSL桥接交换机
- 重启WSL,此时WSL会获得和Windows同网段的IP,再执行原SSM命令绑定0.0.0.0:6379,Redis Insight直接连WSL的IP加6379端口即可
内容的提问来源于stack exchange,提问作者Tuma
相关产品推荐
相关产品推荐

