如何在 Windows 上创建 IP 别名

Posted

技术标签:

【中文标题】如何在 Windows 上创建 IP 别名【英文标题】:How to create an IP alias on Windows 【发布时间】:2012-02-15 05:19:54 【问题描述】:

我需要为我的网络接口创建一个别名,以便可以使用 127.0.0.1 或 33.33.33.33 在本地访问它。

在 *nix 中我会这样做:

sudo ifconfig en1 inet 33.33.33.33/32 alias

看来netsh 工具也许能够做同样的事情。如果是这样,怎么做?我看过一些看起来很接近的例子,但我不明白提供的选项。

这样做的动机是在没有端口偏移的同一台机器上运行两个 JBossAS 实例。因此,它们需要使用相同的端口号而不会发生冲突。

【问题讨论】:

【参考方案1】:

你是对的。此外,您可以使用高级界面属性屏幕添加多个地址,而无需触摸命令行。

netsh interface ip add address "Local Area Connection" 33.33.33.33 255.255.255.255

【讨论】:

有没有办法在 Windows 7 下使用 DHCP同时向接口卡添加别名?使用您建议的两种解决方案需要停用 DHCP。 命令netsh interface ip add address "Local Area Connection" 33.33.33.33 255.255.255.255 对我有用,方法是将名称更改为 Loopback,如下所示 - netsh interface ip add address "Loopback" 33.33.33.33 255.255.255.255,而不更改任何默认 Windows 配置。只需使用管理员权限运行命令即可。【参考方案2】:

这可能取决于您使用的 Windows 版本,但这里有一些来自我的 Windows 7 机器的步骤。您想访问“本地适配器设置”。可能有 1000 种方法可以做到这一点,但这里有一种。

转到控制面板 -> 网络和共享中心 点击左侧的“更改适配器设置” 右键单击您的本地网络连接并转到属性 选择您的 TCP/IP v4 协议并点击属性 TCP 必须设置为静态寻址,因此将其设置为“使用以下地址”并为网络设置默认 IP 配置。然后点击高级。 在高级 TCP/IP 设置中的 IP 地址下,单击添加 根据需要添加额外的 IP 地址

另一种方法是将 Microsoft Loopback 适配器添加为网络设备。这使您可以在计算机上设置虚拟网络适配器。这对于在您自己的机器上进行网络测试很有用。请参阅http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/259c7ef2-3770-4212-8fca-c58936979851/ 了解更多信息。

【讨论】:

你能在启用 DHCP 的情况下做到这一点吗? 没有。我相信这需要所有静态 IP 地址,但我已经有几年没有这样做了,所以事情可能已经改变了。 查看我的答案,了解添加别名、DHCP 或静态地址的正确方法。【参考方案3】:

有一条关于如何添加别名同时仍将 DHCP 用作主要别名的评论。 我也有类似的问题。

解决办法是:

    将 Microsoft Loopback Adapter 添加为网络设备(根据其中一条评论的建议)。 指定新网络接口的 IP 地址。

(1) 将 Microsoft Loopback Adapter 添加为网络设备(取自here):

    点击开始菜单。 搜索“cmd”。 右键单击“cmd”并选择“以管理员身份运行” 输入“hdwwiz.exe”

从那时起,它与 Vista 下的方法相同,即:

    在“欢迎使用添加硬件向导”中,单击下一步。 选择“安装我从列表中手动选择的硬件(高级)”,然后单击下一步。 向下滚动并选择“网络适配器”,然后点击下一步。 在制造商“Microsoft”下选择,然后在网络适配器“Microsoft Loopback Adapter”下选择,然后单击下一步。

(2)查看新添加的网络接口,并指定IP地址:

    进入控制面板 -> 网络和共享中心 点击左侧的“更改适配器设置” 查找设备名称为“Microsoft Loopback Adapter”的条目 右键单击它,然后选择属性 选择“Internet 协议版本 4 (TCP/IPv4) 并点击属性按钮。 选择“使用以下IP地址:”,并根据需要输入IP地址、子网掩码和默认网关。

【讨论】:

是否可以从命令行安装环回适配器? 这是救命稻草! 这不是问题所在。添加另一个适配器并不是添加别名,尽管它可能用于类似的目的。如原始问题所述,正确的解决方案是使用 netsh 命令。 netsh interface ip add address "Local Area Connection" 192.168.2.2 255.255.255.0 (这必须以管理员身份完成。)使用“ipconfig”检查网络接口的名称。就我而言,它是“本地连接”。【参考方案4】:

在 Windows 上转到 C:\Windows\System32\drivers\etc\hosts 并添加一个新条目,如下所示

例如: 106.200.247.101 abc.com

然后你就可以参考使用给定的主机名了

【讨论】:

【参考方案5】:

对于像我一样来自谷歌的任何人: 实现这一点的另一种方法是设置路由并设置目标以了解 ip,例如: 最近在我们公司,我们的 T1 服务停止了,一些旧软件没有人对我们服务器的外部地址进行硬编码,我们需要让它转到 192.168.2.100 的内部地址,所以我设置了这条路线在客户端机器上: 路线 -p 添加 208.44.37.176 掩码 255.255.255.248 192.168.2.100 公制 1 在服务器上,我将其接口设置为监听 208.44.37.182

所以当客户端尝试连接到 208.44.37.182 时,它会检查路由表,它会在网络掩码上执行按位与,以匹配路由表中的任何内容以匹配路由地址(208.44.176),然后将其路由到网关 (192.168.2.100) 失败这是路由到默认网关。

所以在这种情况下,它会将其路由到 192.168.2.100,后者会看到它是发给他的,然后依次回复。如果他没有在 208.44.37.182 上监听,那么他会忽略它(或者,如果他被配置为这样做,则传递它直到有人拿走它或丢弃它)

(对于那些对为什么使用网络掩码感到好奇的人: 182 是 10110110 248是11111000 176是10110000 对于按位与,如果两个位中的一个为 0,则结​​果为 0,如果它们均为 1,则为 1。所以您看到取 182 并将其按位与 248 得到 176)

这些是我在做这件事时学到的东西,希望对其他人有所帮助。

【讨论】:

【参考方案6】:

如上所述,当使用静态 IP 地址时,GUI 提供了一种合适的方式来实现这一点。不过……

使用 DHCP 获取地址时,您无法在 GUI 中添加别名。然而,“netsh”命令有助于实现这一点:

netsh interface ip add address "Local Area Connection" 192.168.2.2 255.255.255.0

这必须以管理员身份完成。

使用“ipconfig”检查网络接口的名称。就我而言,它是“本地连接”。

【讨论】:

【参考方案7】:

我找到了答案。

如果您从 DCHP 获取 IP 地址,则无需配置 IP 地址(知道它是 DCHP 的服务是有意义的),因此您只需确定网关即可。

【讨论】:

不是对 OP 问题的回答,即“如何添加第二个 IP 地址(‘别名’地址)?”从 Windows GUI 的角度来看,格雷格和迈克尔的答案是正确的。也可以在 CMD 窗口中使用 netsh 命令。

以上是关于如何在 Windows 上创建 IP 别名的主要内容,如果未能解决你的问题,请参考以下文章

如何使执行别名在 Windows Server 2019 上工作?

linux网络配置中如何给一块网卡添加多个IP地址

老男孩教育每日一题-2017年3月16日: linux网络配置中如何给一块网卡添加多个IP地址

在 Windows 7 中为 composer 创建一个工作别名

linux下一个网卡配置多个ip虚拟ip

如何分别创建多个 Flutter 版本别名以在 Windows PC 的命令提示符中使用 [关闭]