You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2实例UserData安装Redis后无法SSH连接的问题

问题排查与修复方案

你的脚本存在几个关键问题,直接导致实例无法正常连接,核心问题集中在iptables规则操作、sed命令语法这两部分,具体分析和修复如下:

1. 无效的iptables规则删除命令

脚本里的sudo iptables -D INPUT <rule_number>是占位符,实际执行时bash无法识别<rule_number>,会直接报错中断脚本执行,这会导致后续iptables配置保存操作失败,甚至让系统iptables规则处于异常状态,影响SSH连接。

修复方式:
通过命令动态匹配并删除阻断6379端口的规则,替换原硬编码命令:

# 动态查找并删除所有阻断6379端口的INPUT规则
sudo iptables -S INPUT | grep "dport 6379" | awk '{print $2 " " $1 " " $3 " " $4 " " $5 " " $6}' | while read -r line; do
    sudo iptables -D INPUT $line
done

2. sed命令的引号转义错误

脚本里使用了HTML转义的&quot;包裹sed表达式,bash无法识别该转义字符,会导致sed命令执行失败,Redis的绑定地址、保护模式配置未被修改,直接影响远程连接。

修复方式:
直接用单引号或双引号包裹sed替换表达式:

# 修改Redis绑定地址为允许所有远程连接
sudo sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf

# 关闭Redis保护模式
sudo sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis/redis.conf

3. iptables配置目录可能不存在

执行iptables-save > /etc/iptables/rules.v4前,需确保/etc/iptables目录存在,否则会报错中断脚本。

修复方式:
添加目录创建命令:

# 确保iptables配置目录存在
sudo mkdir -p /etc/iptables

完整修复后的UserData脚本

#cloud-boothook
#!/bin/bash

# 更新软件包列表
sudo apt update -y

# 安装Redis服务
sudo apt install -y redis-server

# 修改Redis绑定地址为允许所有远程连接
sudo sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf

# 关闭Redis保护模式
sudo sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis/redis.conf

# 重启Redis服务生效配置
sudo systemctl restart redis-server
sudo systemctl enable redis-server  # 可选:设置Redis开机自启

# 确保iptables配置目录存在
sudo mkdir -p /etc/iptables

# 动态查找并删除所有阻断6379端口的INPUT规则
sudo iptables -S INPUT | grep "dport 6379" | awk '{print $2 " " $1 " " $3 " " $4 " " $5 " " $6}' | while read -r line; do
    sudo iptables -D INPUT $line
done

# 保存iptables配置
sudo iptables-save > /etc/iptables/rules.v4

额外验证步骤

  1. 实例启动后,通过SSH连接执行sudo systemctl status redis-server,确认Redis服务正常运行
  2. 执行netstat -tulpn | grep redis,确认Redis监听地址为0.0.0.0:6379
  3. 在本地执行redis-cli -h <EC2实例公网IP>,测试远程连接是否正常

内容的提问来源于stack exchange,提问作者Luiz Ardezzoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:02:11