阿里云ECS + Tailscale无缝集成指南:告别内网访问异常

作者: 伯言伯言 发布时间:2025-08-28 阅读: 1186 评论: 0
发现城市之美,记录生活精彩

一、主要异常表现

  安装并启动 Tailscale 后,你可能会遇到以下一种或多种情况:0sb路丁路笔记

  1. SSH 连接闪断或卡顿:如果你是通过 SSH 连接到 ECS 的,在启动 Tailscale 的瞬间,当前的 SSH 会话可能会卡住,甚至断开连接。重新连接后可能正常,也可能偶尔还会出现延迟。
  2. 无法通过内网 IP 访问 ECS 上的服务:在 ECS 内部或用同一 VPC 内其他机器访问该 ECS 的内网 IP(例如 172.16.0.10)上的服务(如 Web 服务、数据库、Redis 等)时,出现:
    • 连接超时
    • 响应极慢
    • 直接无法建立连接
  3. ECS 无法访问同一 VPC 内其他机器的内网服务:从安装了 Tailscale 的这台 ECS 上,去访问同 VPC 下其他机器的内网 IP,发现访问失败。
  4. ECS 无法访问阿里云内网服务:无法访问阿里云的内网 API 端点(如 oss-cn-hangzhou-internal.aliyuncs.com)或其他需要通过内网访问的云服务。

  关键特征:所有这些异常都发生在内网(VPC)流量上,而通过公网 IP 的访问以及 Tailscale 虚拟组网后的 IP 的访问通常是正常的。0sb路丁路笔记


二、根本原因

  问题的核心在于 路由冲突 和 策略路由0sb路丁路笔记

  1. Tailscale 的默认行为:Tailscale 安装后,为了让你能通过其他 Tailscale 节点访问这台 ECS,它会自动修改系统的路由表和防火墙规则。它会添加一条默认路由针对对等节点路由,将所有出口流量(或目标为其他 Tailscale 节点的流量)通过 Tailscale 的虚拟网卡(如 tailscale0)发送。
  2. 阿里云 VPC 的特殊性:阿里云的 VPC 内部网络依赖其自身的内部路由和 DNS 系统。ECS 的内网 IP(172.16.0.10)在 VPC 内是有特定路由规则的。
  3. 冲突发生:当 Tailscale 的路由规则(优先级较高)介入后,系统在尝试访问同一个 VPC 内的另一个内网 IP(例如 172.16.0.11)时,可能会错误地判断该流量不应该走物理网卡(eth0),而应该走 Tailscale 的虚拟网卡(tailscale0)。但由于目标地址 172.16.0.11 并不在 Tailscale 的虚拟网络中,导致流量 “走错了路”,最终无法到达目的地。

  简单来说:系统本来去邻居家(同 VPC 机器)应该走 “小区内部道路”(eth0),但 Tailscale 给它装了个 “智能导航”(路由规则),这个导航错误地引导车子先开上了 “私人高架桥”(tailscale0),结果发现高架桥不通往那个邻居家,导致无法到达。0sb路丁路笔记


三、解决方案:一键修复

sudo tailscale up --netfilter-mode=off --accept-dns=false

探索未知世界,分享真实故事