AWS EC2 Amazon Linux搭建网关遇问题:Worker节点丢SSH连接求助
AWS EC2 Amazon Linux 网关配置问题解决
方案可行性确认
这个方案完全可行,问题出在Worker机器的路由配置逻辑上,和AWS单网卡架构本身无关。
网关机器正确配置步骤
- 启用IPv4转发:
- 临时生效:
echo 1 > /proc/sys/net/ipv4/ip_forward - 永久生效:编辑
/etc/sysctl.conf,设置net.ipv4.ip_forward = 1,执行sysctl -p加载配置
- 临时生效:
- 添加iptables NAT伪装规则:
- 假设网关主网卡为
eth0,执行:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - 永久保存规则:
service iptables save(若未安装iptables服务,先执行yum install iptables-services)
- 假设网关主网卡为
- 无需重启网络服务,配置立即生效
Worker机器SSH断开问题根源
当设置默认网关为网关机器后,Worker的所有出站流量(包括返回本地电脑的SSH回包)都会发往网关机器。但AWS EC2的源IP校验机制会导致:Worker私网IP的流量经网关伪装后以网关公网IP出站,返回的SSH流量只会回到网关,无法正确路由回Worker的原有SSH会话,最终导致连接断开。
Worker机器修复配置
临时生效(测试用)
- 记录Worker原默认网关(设置新网关前执行):
ip route show default,假设原网关为10.0.0.1 - 添加本地IP的静态路由(确保SSH返回流量走原路径):
ip route add YOUR_LOCAL_IP/32 via 10.0.0.1 - 设置默认网关到网关机器:
ip route add default via GATEWAY_MACHINE_IP
永久生效
- 编辑网卡配置文件(如
/etc/sysconfig/network-scripts/ifcfg-eth0),添加/修改:GATEWAY=GATEWAY_MACHINE_IP - 创建静态路由文件
/etc/sysconfig/network-scripts/route-eth0,写入:YOUR_LOCAL_IP/32 via ORIGINAL_DEFAULT_GATEWAY dev eth0 - 重启网络服务:
service network restart
安全组补充检查
- 网关机器安全组:允许Worker所在私网IP段的所有入站流量,允许所有出站流量
- Worker机器安全组:允许与网关机器的双向所有流量,允许本地电脑的SSH入站流量
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

