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

如何将单个子域名指向双IP服务器以实现多ISP冗余

双ISP冗余:实现server.acme.com多IP故障转移方案

根据你的场景——双NIC绑定不同ISP公网IP,要让子域名同时指向两个IP并实现故障自动切换,需要从DNS解析配置和服务器网络路由两个层面入手,缺一不可。下面是具体的实现步骤:

一、DNS层面:配置多IP冗余与智能故障检测

这是实现域名自动切换的核心:

  • 添加多A记录:在你的域名服务商后台,给server.acme.com创建两条独立的A记录:
    • 记录1:指向103.204.82.22(ISP1的公网IP)
    • 记录2:指向144.110.12.64(ISP2的公网IP)
      基础的多A记录会让DNS轮询返回两个IP给客户端,实现最基本的冗余,但默认没有故障检测能力。
  • 缩短TTL值:把这两条A记录的TTL(生存时间)设置为300秒(5分钟)。这样当其中一个IP不可用时,客户端的DNS缓存会更快过期,能及时获取到可用的IP,减少故障恢复的等待时间。
  • 进阶:启用智能DNS故障转移:如果你的域名服务商支持(比如主流云服务商的DNS服务大多具备该功能),开启健康检查型智能解析。它会定期通过ICMP ping或TCP端口探测两个IP的可用性,当某个IP检测失败时,会自动停止向客户端返回该IP,直到恢复正常——这比单纯的轮询冗余可靠性高得多。

二、服务器网络:配置源地址路由(关键!避免回包异常)

很多人会忽略这一步:如果服务器默认用同一个网卡回包,会出现「客户端从ISP1 IP发起请求,服务器用ISP2 IP回包」的情况,这种跨ISP的回包会被ISP拦截,导致访问失败。所以必须配置基于源的路由策略:

Linux服务器配置示例

  1. 创建两个路由表,分别对应两个ISP:
    echo "100 isp1" >> /etc/iproute2/rt_tables
    echo "200 isp2" >> /etc/iproute2/rt_tables
    
  2. 给每个路由表绑定对应ISP的默认网关(替换成你实际的网关地址):
    ip route add default via 103.204.82.1 dev eth0 table isp1
    ip route add default via 144.110.12.1 dev eth1 table isp2
    
  3. 添加路由规则,让从某个IP发出的流量走对应路由表:
    ip rule add from 103.204.82.22 table isp1
    ip rule add from 144.110.12.64 table isp2
    
  4. 持久化配置(以Ubuntu的Netplan为例):
    编辑你的Netplan配置文件(比如/etc/netplan/00-installer-config.yaml),添加路由规则:
    network:
      ethernets:
        eth0:
          addresses: [103.204.82.22/24]
          routes:
            - to: 0.0.0.0/0
              via: 103.204.82.1
              table: 100
          routing-policy:
            - from: 103.204.82.22
              table: 100
        eth1:
          addresses: [144.110.12.64/24]
          routes:
            - to: 0.0.0.0/0
              via: 144.110.12.1
              table: 200
          routing-policy:
            - from: 144.110.12.64
              table: 200
      version: 2
    
    应用配置:sudo netplan apply

Windows服务器配置示例

  1. 打开管理员PowerShell,查看网卡索引:
    Get-NetAdapter
    
  2. 添加持久化默认路由(替换成你的网关和网卡索引):
    route -p add 0.0.0.0 mask 0.0.0.0 103.204.82.1 metric 1 if 2
    route -p add 0.0.0.0 mask 0.0.0.0 144.110.12.1 metric 2 if 3
    
  3. 配置源地址路由策略,确保回包走对应网卡:
    New-NetRoutePolicy -DestinationPrefix 0.0.0.0/0 -SourcePrefix 103.204.82.22/32 -InterfaceIndex 2 -PolicyStore PersistentStore
    New-NetRoutePolicy -DestinationPrefix 0.0.0.0/0 -SourcePrefix 144.110.12.64/32 -InterfaceIndex 3 -PolicyStore PersistentStore
    

三、测试验证方案有效性

  • DNS解析测试:多次执行nslookup server.acme.com或dig server.acme.com,确认会交替返回两个IP。如果开启了智能故障转移,手动断开其中一个ISP的连接,等待5-10分钟后再查询,应该只返回可用的IP。
  • 服务可用性测试:用不同网络环境(比如分别连接ISP1和ISP2的WiFi)访问server.acme.com的服务,确认都能正常访问。然后断开其中一个ISP,测试是否能自动切换到另一个IP继续访问。
  • 回包路径测试:用tcpdump(Linux)或Wireshark(Windows)抓包,验证客户端从ISP1 IP发起的请求,服务器用ISP1的IP回包;从ISP2 IP发起的请求,用ISP2的IP回包——这能确保不会出现跨ISP回包被拦截的问题。

内容的提问来源于stack exchange,提问作者akjon RooSho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:46:04