AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 69836
Accepted
Graviton
Graviton
Asked: 2009-09-30 21:54:16 +0800 CST2009-09-30 21:54:16 +0800 CST 2009-09-30 21:54:16 +0800 CST

将多个 IP 地址指向单个主机名

  • 772

在 Windows 系统中,此文件位于C:\WINDOWS\system32\drivers\etc\hosts. 该文件允许我们将特定 IP 地址默认为主机名。

现在的问题是我是否可以将多个 IP 地址设置为主机名。例如,我可以这样做:

192.168.244.128   gateway.net
192.168.226.129   gateway.net

并期望浏览器可以同时解析它们,看看哪一个可以工作,然后指向那个?

如果没有,还有其他方法可以获得我想要的行为吗?

注意:我在我自己的局域网中部署这个应用程序,所以不需要互联网。

windows
  • 10 10 个回答
  • 236461 Views

10 个回答

  • Voted
  1. Best Answer
    Mark Henderson
    2009-09-30T22:09:44+08:002009-09-30T22:09:44+08:00

    通常,您不会使用主机来执行此操作,而是使用您的 DNS。如果您将多个 A 记录分配给区域中的一个名称,大多数 DNS 将提供所谓的“循环”。

    然后它会做什么,是第一个通过的请求会收到192.168.244.128,下一个会收到192.168.226.129,依此类推。但是,根据设计,您的本地计算机将缓存其 DNS 解析,并且通常会一遍又一遍地使用相同的 IP 地址,直到它过期(生存时间,TTL)。

    • 32
  2. MarkR
    2009-09-30T22:47:50+08:002009-09-30T22:47:50+08:00

    是的,你可以这样做,我用它来测试循环 DNS 场景,而不必实际输入 DNS 中的主机。

    当应用程序调用 gethostbyname 时,它​​会返回完整的 IP 地址列表(可能以随机顺序 - 取决于库/操作系统)。

    • 22
  3. Nick Kavadias
    2009-10-01T00:58:42+08:002009-10-01T00:58:42+08:00

    我认为你正在以错误的方式解决这个问题。如果我在这里做出错误的假设,请告诉我。

    设想:

    • 您有两个运行相同 Web 应用程序的 Windows 服务器,可能在 IIS 上。
    • 您希望您的应用程序具有容错性,以便如果其中一台服务器发生故障,您的应用程序仍然可用。
    • 您希望这种容错对浏览器是透明的,以便用户可以继续使用相同的主机名访问应用程序,即 gateway.net

    您尝试做的事情称为循环 DNS(又名糟糕的负载平衡),但您尝试从客户端执行此操作。即使我刷新 DNS 缓存,这似乎也没有达到预期的效果(至少在我的 Windows XP 机器上)。Windows 只会解析到文件中的第一个 IP。尽管如此,循环 DNS 不是容错的,所以这不会帮助你实现你想要的。

    建议的解决方案:

    硬件负载均衡器:一些品牌名称是 Alteon、Big-IP、Barracuda。它所做的基本上是为您的用户提供一个单独的 IP 来连接并将请求转发到 Web 服务器。如果其中一台服务器不可用,则它将不再向其转发流量。这是昂贵的选择。

    网络负载平衡服务:这是 Windows 服务器上可用的 Microsoft 技术,它将为您提供单个群集 IP。它实现了与硬件负载均衡器相同的结果,但方式不同。您需要做的就是配置它。

    • 13
  4. Peter
    2012-07-29T21:10:17+08:002012-07-29T21:10:17+08:00

    来自http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

    IPv4 示例

    192.168.1.1 hostA hostB 192.168.2.2 hostA hostC host-C

    在本例中,hostA 有 2 个 IP 地址和 3 个别名。别名 hostB 指定第一个地址,别名 hostC 和 host-C 指定第二个地址。LSF 使用官方主机名 hostA 来标识两个 IP 地址属于同一主机。

    • 2
  5. lg.
    2009-10-01T02:09:59+08:002009-10-01T02:09:59+08:00

    我的建议是使用具有 DNS 循环和 TTL=0 的内部 DNS 服务器。如果您在 IP/服务器关闭时更新 DNS 记录(也使用自动 ip 检查系统),您可以拥有一个高可用性系统。

    • 1
  6. Suan
    2009-11-28T21:32:45+08:002009-11-28T21:32:45+08:00

    我在家庭网络上完成了这项工作,我为笔记本电脑的有线和无线网络接口分配了静态 IP,并从另一台机器的主机文件中将单个主机名指向这两个 IP 地址。它似乎工作正常。

    • 1
  7. obrousse
    2016-05-21T06:43:19+08:002016-05-21T06:43:19+08:00

    来自 http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

    IPv4 示例

    192.168.1.1 hostA hostB 192.168.2.2 hostA hostC host-C

    在本例中,hostA 有 2 个 IP 地址和 3 个别名。别名 hostB 指定第一个地址,别名 hostC 和 host-C 指定第二个地址。LSF 使用官方主机名 hostA 来标识两个 IP 地址属于同一主机。

    基于这个例子我做了以下 10.18.yx 192.168.zx hostA

    其中 hostA 是我打算从内部网络 (192.168.yx) 和 VPN (10.8.zx) 访问的服务器的主机名。

    ping hostA
    sending 'ping' on 192.168.y.x [10.8.z.x]
    Answer from 10.8.z.x : bytes=32 time=98 ms TTL=64
    Answer from 10.8.z.x : bytes=32 time=78 ms TTL=64
    Answer from 10.8.z.x : bytes=32 time=111 ms TTL=64
    Answer from 10.8.z.x : bytes=32 time=136 ms TTL=64
    

    所以它运行良好,我可以使用主机名通过 VNP 让 samba 工作,所以在这两种情况下(LAN 或 VPN 连接)我都可以在 Windows 中连接我的驱动器。

    此致。

    • 1
  8. Odoggz
    2009-11-18T07:15:18+08:002009-11-18T07:15:18+08:00

    @ Plamen Dimitrov 您需要一个设备来处理这种平衡,可能是一个可以在您的 FW 前面处理 BGP 的交换机,或者如果有能力使用您的 FW。如果您的 Cisco 处理 BGP,请考虑实施。这样,您可以让您的两个 ISP IP 进入 Cisco/或交换机,并且目标服务器将具有 24 位公共 IP 的有效 IP(与 2 个 ISP IP 不同)。此时(您正在使用 3 个不同的公共 IP 块,您的服务器的一个必须是 24 位),您需要让您的每个 ISP 都了解此解决方案,并且他们必须愿意支持他们之间的BGP解决方案,大多数人都会这样做。现在,当您的 FQDN 解析时,它将解析为您的 24 位 IP 块,即使 1 条 ISP 线路出现故障。目标是,由于您的 ISP 同意通过他们的线路路由该 24 位地址,因此您的 24 位地址将始终可用。这也适用于 VPN,因为您用于 VPN 的只是 24 位地址,而不是您插入 cisco/或交换机的 ISP 的任何一个 IP。在这一点上,你必须警惕 BGP FLAPPING,如果你的线路经常上下波动,由于线路得到 DOS,DNS 地址会在互联网上发生很大变化,DNS 服务器将自动删除 IP这导致您的 24 位 IP 块。这是对 BGP 解决方案的 DOS 攻击。在这一点上,你必须警惕 BGP FLAPPING,如果你的线路经常上下波动,由于线路得到 DOS,DNS 地址会在互联网上发生很大变化,DNS 服务器将自动删除 IP这导致您的 24 位 IP 块。这是对 BGP 解决方案的 DOS 攻击。在这一点上,你必须警惕 BGP FLAPPING,如果你的线路经常上下波动,由于线路得到 DOS,DNS 地址会在互联网上发生很大变化,DNS 服务器将自动删除 IP这导致您的 24 位 IP 块。这是对 BGP 解决方案的 DOS 攻击。

    • 0
  9. Ron
    2017-07-13T12:06:46+08:002017-07-13T12:06:46+08:00

    在这里稍微澄清一下,至少在 Windows 世界中:您可以在主机文件中为单个名称提供两个 IP 地址。查询时,返回所有地址。应用程序(即浏览器)将依次尝试连接到每个应用程序,直到建立连接。IOW,它将在超时之前尝试所有地址。(这是一个常见的误解,因为许多人认为它只会尝试“第一个”地址。)

    您可以通过以下实验验证这一点:

    在 hosts 文件中为主机添加两个或多个地址,一个是真实的,另一个是假的。(按字母顺序缩小假地址。)打开浏览器并尝试连接到主机名。同时运行 netstat -no。您应该会看到与虚假地址的连接尝试。(卡在 SYN_SENT 中)浏览器最终会到达正确的地址并连接。连接有延迟,但它会起作用。

    • 0
  10. Max Alginin
    2009-09-30T22:18:50+08:002009-09-30T22:18:50+08:00

    您不能使用主机文件执行此操作。

    您也不能使用 DNS 执行此操作:您可以为单个名称提供多个 IP,但浏览器只会选择其中一个 IP,尝试一下,如果此主机当前关闭,浏览器将显示连接错误.

    一种可能的解决方案是设置代理服务器并将这两个 IP 配置为它们所服务域的父级。至少在 Squid 的情况下,代理将尝试一台服务器,如果失败,则尝试第二台服务器。然后将您的浏览器配置为使用此代理服务器。

    • -1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 如何在笔记本电脑上使用 Tobit David?[关闭]

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve