本文介绍如何在没有网络上存在的动态主机配置协议(DHCP)服务器的情况下使用自动传输控制协议/Internet 协议(TCP/IP)寻址。 本文的“适用于”部分中所列的作系统版本具有一个名为“自动专用 IP 寻址”(APIPA)的功能。 使用此功能,Windows 计算机可以在 DHCP 服务器不可用或网络上不存在时自行分配 Internet 协议(IP)地址。 此功能使配置和支持运行 TCP/IP 的小型局域网(LAN)变得不那么困难。
详细信息
Important
请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 在修改注册表之前,请备份注册表,以便在出现问题时可以还原。
配置为使用 DHCP 的基于 Windows 的计算机可以在 DHCP 服务器不可用时自动分配 Internet 协议 (IP) 地址。 例如,这种情况可能发生在没有 DHCP 服务器的网络上,或者当 DHCP 服务器由于维护而暂时关闭时。
Internet 分配号码管理局(IANA)已保留 169.254.0.0-169.254.255.255 用于自动专用 IP 地址。 因此,APIPA 提供了一个保证不与可路由地址冲突的地址。
为网络适配器分配 IP 地址后,计算机可以使用 TCP/IP 与连接到同一 LAN 的任何其他计算机通信,并且该计算机也配置为 APIPA,或者将 IP 地址手动设置为 169.254.x.y(其中 x.y 是客户端的唯一标识符)地址范围,子网掩码为 255.255.0.0。 请注意,计算机无法与其他子网上的计算机通信,也不能与不使用自动专用 IP 寻址的计算机通信。 默认情况下启用自动专用 IP 寻址。
在以下任一情况下,你可能想要禁用它:
网络使用路由器。
网络在没有 NAT 或代理服务器的情况下连接到 Internet。
除非禁用了与 DHCP 相关的消息,否则 DHCP 消息在 DHCP 寻址和自动专用 IP 寻址之间发生更改时会向你提供通知。 如果意外禁用 DHCP 消息传送,可以通过将以下注册表项中的 PopupFlag 值的值从 00 更改为 01 来重新打开 DHCP 消息: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\DHCP
请注意,必须重新启动计算机才能使更改生效。 还可以通过在 Windows Millennium Edition、Windows 98 或 Windows 98 Second Edition 中使用 Winipcfg 工具来确定计算机是否正在使用 APIPA:
单击“开始”,单击“运行”,键入“winipcfg”(不含引号),然后单击“确定”。 单击“详细信息”。 如果 IP 自动配置地址框包含 169.254.x.x 范围内的 IP 地址,则启用自动专用 IP 寻址。 如果 IP 地址框存在,则当前未启用自动专用 IP 寻址。 对于 Windows 2000、Windows XP 或 Windows Server 2003,可以在命令提示符下使用 IPconfig 命令确定计算机是否使用 APIPA:
单击“开始”,单击“运行”,键入“cmd”(不含引号),然后单击“确定”以打开 MS-DOS 命令行窗口。 键入“ipconfig /all”(不含引号),然后按 Enter 键。 如果“已启用自动配置”行显示“是”,并且“自动配置 IP 地址”为 169.254.x.y(其中 x.y 是客户端的唯一标识符),则计算机使用的是 APIPA。 如果“已启用自动配置”行显示“否”,则计算机当前未使用 APIPA。 可以使用以下任一方法禁用自动专用 IP 寻址。
可以手动配置 TCP/IP 信息,从而完全禁用 DHCP。 可以通过编辑注册表来禁用自动专用 IP 寻址(但不能禁用 DHCP)。 为此,可以将值为 0x0 的“IPAutoconfigurationEnabled”DWORD 注册表项添加到 Windows Millennium Edition、Windows98 或 Windows 98 Second Edition 的以下注册表项中: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\DHCP
对于 Windows 2000、Windows XP 和 Windows Server 2003,可以通过将值为 0x0 的“IPAutoconfigurationEnabled”DWORD 注册表项添加到以下注册表项来禁用 APIPA: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Adapter GUID>
Note
适配器 GUID 子项是计算机的 LAN 适配器的全局唯一标识符(GUID)。
为 IPAutoconfigurationEnabled DWORD 条目指定值 1 将启用 APIPA,这是从注册表中省略此值时的默认状态。
APIPA 可能会发挥作用的示例
示例 1:没有以前的 IP 地址和 DHCP 服务器
当基于 Windows 的计算机(配置为 DHCP)正在初始化时,它会广播三条或更多条“发现”消息。 如果 DHCP 服务器在广播多个发现消息后未响应,则 Windows 计算机会自行分配一个类 B (APIPA) 地址。 然后,Windows 计算机将向计算机的用户显示一条错误消息(前提是以前从未从 DHCP 服务器分配过 IP 地址)。 然后,Windows 计算机每三分钟发送一条发现消息,试图与 DHCP 服务器建立通信。
示例 2:以前的 IP 地址和无 DHCP 服务器
计算机检查 DHCP 服务器,如果未找到任何服务器,则会尝试联系默认网关。 如果默认网关答复,则 Windows 计算机将保留以前租用的 IP 地址。 但是,如果计算机未收到来自默认网关的响应,或者未分配任何响应,则它使用自动专用 IP 寻址功能为自己分配 IP 地址。 向用户显示一条错误消息,发现每 3 分钟传输一次消息。 DHCP 服务器上线后,将生成一条消息,指出已使用 DHCP 服务器重新建立通信。
示例 3:租约过期且无 DHCP 服务器
基于 Windows 的计算机尝试重新建立 IP 地址的租约。 如果 Windows 计算机找不到 DCHP 服务器,则会在生成错误消息后为其分配 IP 地址。 然后,计算机广播四条发现消息,每 5 分钟一次,它会重复整个过程,直到 DHCP 服务器联机。 然后生成一条消息,指出已使用 DHCP 服务器重新建立通信。