如何在 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 上工作?
老男孩教育每日一题-2017年3月16日: linux网络配置中如何给一块网卡添加多个IP地址