通过 TCP/IP 的直接主机 SMB

本文介绍如何通过 TCP/IP (SMB) 主机服务器消息块。

适用于:   Windows Server 2012 R2
原始 KB 编号:   204279

摘要

Windows 通过使用直接托管在 TCP 上的 SMB 协议支持文件和打印机共享通信。 这与早期操作系统不同,在早期操作系统中,SMB 流量要求 NetBIOS over TCP (NBT) 协议在 TCP/IP 传输上工作。 删除 NetBIOS 传输具有多个优点,包括:

  • 简化 SMB 流量的传输。
  • 删除 WINS 和 NetBIOS 广播作为名称解析的一种途径。
  • 在 DNS 上标准化文件和打印机共享的名称解析。

如果同时启用了直接托管接口和 NBT 接口,则同时尝试这两种方法,并且使用第一个响应方法。 这使 Windows 能够与不支持直接托管 SMB 流量的操作系统一起正常运行。

更多信息

Tcp 上的 NetBIOS 通常使用下列端口:

  • nbname:137/UDP
  • nbname:137/TCP
  • nbdatagram:138/UDP
  • nbsession:139/TCP

直接托管 的无 NetBIOS SMB 流量使用端口 445 (TCP 和 UDP) 。 在这种情况下,四字节标头位于 SMB 流量之前。 此标头的第一个字节始终0x00,接下来的 3 个字节是剩余数据的长度。

使用以下步骤禁用通过 TCP/IP 的 NetBIOS;此过程强制直接托管所有 SMB 流量。 实现此设置时请谨慎,因为它会导致基于 Windows 的计算机无法使用 SMB 流量与早期操作系统进行通信:

  1. 选择 "开始",指向"设置",然后单击"网络和 拨号连接"。
  2. 右键单击 "本地连接", 然后单击"属性 "。
  3. 单击 "Internet 协议 (TCP/IP) ", 然后单击"属性 "。
  4. 单击“高级”。
  5. 单击 WINS 选项卡,然后单击通过 TCP/IP 禁用 NetBIOS。

您还可以使用 DHCP 服务器以及 Microsoft 供应商特定的选项代码 1 禁用 NetBIOS over TCP/IP (TCP/IP 协议禁用 NetBIOS,以禁用 TCP/IP) 。 将此选项设置为值 2 可禁用 NBT。 有关使用此方法的信息,请参阅 Windows 中的 DHCP 服务器帮助文件。

若要确定基于 Windows 的计算机上是否启用了 NetBIOS over TCP/IP,在命令提示符下发出 net config redirectornet config server 命令。 输出显示 NetbiosSmb 设备 (它是无 NetBIOS 的传输) 和 NetBT_Tcpip 设备 (即 NetBIOS over TCP 传输) 。 例如,以下示例输出显示绑定到适配器的直接托管传输和 NBT 传输:

Workstation active on
NetbiosSmb (000000000000)
NetBT_Tcpip_{610E2A3A-16C7-4E66-A11D-A483A5468C10} (02004C4F4F50)
NetBT_Tcpip_{CAF8956D-99FB-46E3-B04B-D4BB1AE93982} (009027CED4C2)

NetBT_Tcpip分别绑定到每个适配器;为绑定到NetBT_Tcpip的每个网络适配器显示一个网络适配器实例。 NetbiosSmb 是一种全局设备,不基于每个适配器进行绑定。 这意味着,如果没有完全禁用 Microsoft 网络的文件和打印机共享,在 Windows 中无法禁用直接托管 SMB。