Skip to content
Frank
Back

连接 AWS EC2 失败:DNS 污染导致解析异常

Edit on GitHub

连接 AWS EC2 失败问题记录(DNS 污染导致解析异常)

一、问题背景

环境详情
客户端WSL 2(Ubuntu 子系统),用户名 frank
目标服务AWS EC2 实例(东京区域 ap-northeast-1
预期配置实例公网 IP:54.95.61.230(AWS 控制台确认),连接方式:SSH(密钥认证)
网络环境校园网,客户端运行 FClash 代理工具

二、核心现象

1. SSH 连接错误
frank@LAPTOP-D1IUBHQH:~$ ssh -i /home/frank/learning/cloud.pem ubuntu@ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
kex_exchange_identification: Connection closed by remote host
Connection closed by 28.0.0.22 port 22
frank@LAPTOP-D1IUBHQH:~$ ssh -i /home/frank/learning/cloud.pem ubuntu@ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
ssh: Could not resolve hostname ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com: Temporary failure in name resolution

通过 nslookup 命令定位解析异常,结果显示 DNS 返回错误 IP:

frank@LAPTOP-D1IUBHQH:~$ nslookup ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
Server:         10.255.255.254    本地私有 DNS 服务器(代理分配)
Address:        10.255.255.254 53

Name:   ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
Address: 28.0.0.22    错误解析结果,与 EC2 真实 IP 不符
排查方向操作步骤结果反馈
校园网直接解析Windows 主机执行 nslookup 相同域名同样解析到 28.0.0.22,排除 WSL 独立问题
公共 DNS 测试指定 Google DNS(8.8.8.8)解析仍返回 28.0.0.22,说明解析请求被拦截篡改
代理工具影响关闭 FClash 后重新解析解析结果恢复为 54.95.61.230,确认代理工具是污染源头

四、根本原因

FClash 代理工具导致 DNS 污染,具体机制:

  1. FClash 未正确配置 DNS 转发规则,将 AWS 域名(*.amazonaws.com)的解析请求劫持,返回虚假 IP(28.0.0.22);

  2. 代理的 DNS 缓存未及时清理,即使后续调整配置,旧的错误解析结果仍被复用;

  3. WSL 2 共享 Windows 系统的 DNS 配置,FClash 对 Windows DNS 的修改直接同步到 WSL 环境,导致子系统解析异常。

    五、解决方案

    1. 临时解决:快速恢复连接
  WSL 终端执行(清理 WSL 缓存)
sudo systemd-resolve --flush-caches
  Windows 管理员终端执行(清理系统缓存)
ipconfig /flushdns
2. 长期解决:正确配置 FClash 避免污染

 (1)DNS 配置优化
  1. 打开 FClash → 「设置」→「DNS 设置」;

  2. 启用「自定义 DNS 服务器」,添加加密 DNS(防止劫持):

    • Cloudflare DNS:1.1.1.1(DoH 地址:https://cloudflare-dns.com/dns-query
    • Google DNS:8.8.8.8(DoH 地址:https://dns.google/dns-query
  3. 关闭「虚假 DNS」「DNS 劫持」功能,开启「DNS 缓存自动清理」。

    (2)分流规则配置

添加 AWS 域名专属规则,确保解析走代理且不被污染:

  1. 「规则」→「添加规则」,选择「域名后缀匹配」;

  2. 匹配值:amazonaws.com(覆盖所有 AWS 服务域名);

  3. 动作:「代理」(若校园网封锁 AWS,需选择有效代理节点);

  4. 调整规则优先级至顶部(优先匹配)。

    1. 验证修复效果
  解析验证(正确返回 EC2 真实 IP)
frank@LAPTOP-D1IUBHQH:~$ nslookup ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
Server:         1.1.1.1
Address:        1.1.1.1 53

Name:   ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
Address: 54.95.61.230

  SSH 连接验证(成功建立会话)
frank@LAPTOP-D1IUBHQH:~$ ssh -i /home/frank/learning/cloud.pem ubuntu@ec2-54-95-61-230.ap-northeast-1.compute.amazonaws.com
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1019-aws x86_64)
...
ubuntu@ip-xxx-xxx-xxx-xxx:~$    连接成功

Edit on GitHub
Share this post

Previous
AWS EC2 连接异常的技术原因客观分析
Next
WSL2 的 NAT 和 Mirrored 模式到底有什么区别