主机名、域名与网络命名概念及相关协议演进

主机名、域名与网络命名概念及相关协议演进

1 主机名与域名的区别

1.1 基本定义

主机名(Hostname) 是分配给连接到计算机网络的设备的标签,用于在电子通信(如万维网、电子邮件或 Usenet)中识别该设备。主机名在网络中用于标识特定的端点设备。

域名(Domain Name) 是互联网中用于识别和定位网络资源的命名系统。域名系统(DNS)将人类可读的域名解析为机器可识别的 IP 地址,从而实现网络资源的定位与访问。

1.2 命名结构与组合

主机名与域名组合构成完全限定域名(FQDN),其标准格式为:

复制代码
hostname.domain.tld

其中 tld 为顶级域名(如 com、org、edu 等)。

示例:在一个校园网络中,域名为 theuniversity.org,校园网络中的一台机器名为 mymachine,则该机的完整网络地址为:

复制代码
mymachine.theuniversity.org

1.3 访问场景分析

访问场景 所需名称 说明
局域网内部访问 主机名(如 mymachine) 同一网络内的设备可通过主机名直接解析
跨网络/互联网访问 完全限定域名(如 mymachine.theuniversity.org) 域名部分用于定位目标网络,主机名部分用于在该网络中定位具体设备

1.4 DNS 配置中的作用

在配置 DNS 时,需要指定 DNS 服务器名称,该名称本身也是一个主机名(指向可寻址的服务器)。IP 地址无法直接指向域名,但可以指向域名服务器(DNS 服务器)。

2 NetBIOS、主机名与计算机名的区别

2.1 计算机名(Computer Name)

计算机名是操作系统本地分配给设备的标识符。在 Windows 系统中,可通过以下路径查看和修改:

复制代码
计算机 → 属性 → 高级系统设置 → 计算机名

计算机名仅在本地网络环境中有效,外部网络无法直接识别。

2.2 主机名(Hostname)

主机名是网络层面的设备标识符。在 Windows 系统中,修改计算机名通常也会同步更新主机名。主机名可通过 DNS 解析为 IP 地址,从而支持网络通信。

2.3 NETBIOS 名称

NETBIOS 名称是用于 NETBIOS 协议的设备标识符。在 Windows 系统中,NETBIOS 名称通常与计算机名相同,但命名规则更为严格。NETBIOS 名称可用于在同一路由器连接的网络中进行名称解析:

复制代码
nmblookup LEDZEPPELIN

该命令返回对应设备的 IP 地址。

2.4 三者对比

概念 作用范围 说明
计算机名 本地系统 Windows 本地标识,修改后同步更新主机名
主机名 网络层面 用于 DNS 解析和网络通信
NETBIOS 名称 局域网名称解析 传统名称解析协议,现代网络中逐渐被 DNS 替代

2.5 NetBIOS 名称 vs FQDN

NetBIOS 名称和 FQDN 都是用于将"人可读名称"解析为 IP 地址的命名方式,但二者属于不同的命名体系:NetBIOS 名称是扁平的局域网命名,FQDN 是分层的 DNS 命名。

对比维度 NetBIOS 名称 FQDN
全称 NetBIOS Computer Name / NetBIOS Domain Name Fully Qualified Domain Name,完全限定域名
命名空间 扁平命名空间 分层 DNS 命名空间
长度限制 最多 15 个可用字符,第 16 个字符用于标识服务类型 单标签最多 63 字符,完整 FQDN 最多 255 字节
典型示例 PC01、FILESERVER、CONTOSO server1.widgets.microsoft.com
解析方式 本地广播、NetBIOS 名称缓存、WINS/NBNS DNS 递归/迭代查询
适用范围 主要用于局域网、Windows 工作组/域内资源访问 适用于局域网、企业内网和互联网
是否适合互联网 不适合 适合
常见用途 "网络邻居"显示、UNC 路径 \PC01\Share、旧版 SMB/NetBT 环境 网站、邮件、AD DS 域控制器定位、现代 Windows/Linux 网络
两者关系

在 Windows 域环境中,一台计算机通常同时拥有两类名称:

NetBIOS 计算机名:如 PC01

DNS 主机名 / FQDN:如 PC01.corp.contoso.com

Active Directory 域也有两个名称:

DNS 域名:如 contoso.com

NetBIOS 域名:如 CONTOSO

二者不必完全一致,但 NetBIOS 域名仍受 15 字符限制。

实际使用建议

现代 Windows 网络、ActiveDirectory、跨网段访问:优先使用 DNS 名称或 FQDN。

访问共享、旧版应用、某些局域网发现场景:可能仍会用到 NetBIOS 名称。

Linux 访问 Windows 共享:现代 SMB 可直接使用主机名或 IP;若环境依赖 NetBIOS 发现,需要确认 Samba/Winbind、NBNS 或本地 hosts/WINS 配置。

远程访问场景:RDP、WinRM、远程协助通常应使用 FQDN 或 IP;NetBIOS 名称一般只在同一子网或依赖 NetBIOS/WINS 的旧环境中有效。

NetBIOS 名称适用于局域网内的短标识符,FQDN 适用于全网唯一、分层可路由的完整域名。

3 NetBIOS 与 SMB 的关系

3.1 SMB 协议概述

服务器消息块协议(Server Message Block,SMB)是一种客户端-服务器应用层网络协议,主要用于提供文件共享、打印机共享、串行端口共享以及网络节点间的通信服务。

SMB 协议的历史演变如下:

SMB 1.0:最初由 IBM 的 Barry Feigenbaum 在 1983 年研制,用于将 DOS 的本地文件接口改造为网络文件系统。微软后续对其进行了重大改进并集成到 Windows 中。

CIFS(Common Internet File System):1996 年微软对 SMB 的扩展命名,引入了更大的文件支持、直接 TCP/IP 传输、符号链接和硬链接等功能。CIFS 即 SMB1 的微软实现版本,现已不推荐使用。

SMB 2.0:Windows Vista / Server 2008 起引入,大幅减少协议交互次数,性能与效率大幅提升。

SMB 3.0:Windows 8 / Server 2012 起引入,支持加密、多通道、透明故障转移、SMB Direct(RDMA)等。

SMB 3.x:后续版本持续增强安全性与性能,包括 SMB 3.02(Windows 8.1)、SMB 3.1.1(Windows 10 / Server 2016)等。

SMB 协议可通过以下方式运行:

直接基于 TCP,端口 445:SMB 直接运行在 TCP 之上,无需 NetBIOS 中间层

通过 NetBIOS API:后者可运行于多种传输层:

UDP 端口 137、138 及 TCP 端口 137、139(即 NetBIOS over TCP/IP,NBT)

多种传统协议,如 NBF(常被误称为 NetBEUI)

3.2 NetBIOS 协议概述

网络基本输入输出系统(Network Basic Input/Output System,NetBIOS)提供与 OSI 模型会话层相关的服务,允许局域网上的应用程序进行通信。作为一种 API,NetBIOS 本身并非网络协议。

在现代网络中,NetBIOS 通常运行于 TCP/IP 之上,通过 NetBIOS over TCP/IP(NBT)协议实现。这使得网络中的每台计算机同时拥有 IP 地址和 NetBIOS 名称。

3.3 端口与服务对应关系

端口 协议栈 说明
TCP 139 SMB → NetBIOS → TCP 通过 NetBIOS over TCP/IP 运行 SMB
TCP 445 SMB → TCP SMB 直接运行在 TCP 之上(直接托管,Direct Hosting)

在 Windows 2000 及后续版本中,Microsoft 引入了端口 445,使 SMB 可以直接运行在 TCP 之上,无需经过 NetBIOS 会话层。这种方式节省了一次往返通信延迟(round trip)。

在 Windows 系统中,可通过网络适配器属性中的「高级 IP 设置」选项控制是否启用「TCP 上的 NetBIOS」。启用时使用端口 139,禁用时使用端口 445。

3.4 两者的依赖关系

SMB 依赖 NetBIOS 的场景:SMB 需要 NetBIOS 来与支持 SMB 的设备通信,这些设备不支持 SMB over TCP/IP 直接托管。

NetBIOS 独立于 SMB:NetBIOS 是一个独立的 API 规范,SMB 及其他技术均可使用 NetBIOS 接口,因此 NetBIOS 不依赖 SMB。

3.5 OSI 模型中的协议层次

SMB 与 NetBIOS 在 OSI 模型中的层次关系如下:

在 Windows 系统中,SMB 可直接托管于 TCP/IP 之上,跳过 NetBIOS 层:

3.6 SMB 协议版本演进

版本 首次引入系统 Samba 支持版本 主要特性
CIFS(SMB 1.0) Windows NT 4.0 --- 早期版本,已弃用
SMB 2.0 Windows Vista / Server 2008 Samba 3.6 性能改进,多通道支持
SMB 2.1 Windows 7 / Server 2008 R2 Samba 4.0 改进的文件锁定与分布式文件系统
SMB 3.0 Windows 8 / Server 2012 Samba 4.2 透明故障转移、多通道
SMB 3.02 Windows 8.1 / Server 2012 R2 Samba 支持 SMB 3.02 协商,特性支持不完全 优化跨数据中心传输
SMB 3.1.1 Windows 10 / Server 2016 Samba 4.3+ 默认加密、SMB Direct(RDMA)
SMB 3.1.1 (*) Windows 11 / Server 2022 Samba 4.23+ SMB over QUIC、压缩、AES-256-GCM/CCM 加密

(*)Windows 11 24H2 及 Windows Server 2025 起,SMB 数据包签名变为强制要求。

3.7 SMB 协议与 Samba 软件

SMB 为网络文件共享协议,Samba 是该协议在 Linux/Unix 平台的开源实现软件,二者为协议与实现的对应关系。

3.7.1 SMB 与 Samba 的区别
维度 SMB Samba
本质 应用层网络协议 开源软件套件
作用 定义文件/打印机共享的通信规则 在 Linux/Unix 上实现 SMB 协议
归属 微软主导的协议规范 开源社区维护的软件项目
运行平台 Windows 原生内置 Linux、Unix、NAS 等
主要组件 协议栈(SMB1/CIFS、SMB2、SMB3) smbd、nmbd、winbindd、smbclient 等

SMB 为网络文件共享协议,Samba 为该协议在 Linux/Unix 平台上的开源实现。Windows 原生支持 SMB,Linux/Unix 系统需安装 Samba 以具备 SMB 服务能力。

3.7.2 SMB 协议简介

SMB 是微软主导的网络文件共享协议,用于局域网内访问远程文件、打印机和其他资源。常见版本演进如下:

SMB1 / CIFS:早期版本,CIFS 是微软 1996 年对 SMB 的扩展命名,现已不推荐使用。

SMB2:Windows Vista 起引入,性能与协议效率大幅提升。

SMB3:Windows 8 / Server 2012 起引入,支持加密、多通道、持久句柄等。

在实际应用中,"SMB"与"CIFS"常被混用,现代环境应优先采用 SMB2/SMB3。

3.7.3 Samba 软件简介

Samba 是在 Linux/Unix 系统上实现 SMB 协议的开源软件,使非 Windows 系统能够与 Windows 互操作。核心组件包括:

smbd:处理文件共享、打印服务、用户认证和权限控制(TCP 445/139)。

nmbd:提供 NetBIOS 名称解析和网络浏览支持(UDP 137/138)。

winbindd:集成 Windows AD 域,实现用户身份映射。

smbclient / smb.conf:客户端工具和服务器配置文件。

典型应用场景包括 Linux 与 Windows 跨平台文件共享、打印机共享、AD 域集成以及 NAS 设备的文件服务。

3.8 技术更新

NetBIOS 弃用现状:

自 Windows 11 24H2 和 Windows Server 2025 起,内置防火墙规则不再包含 SMB NetBIOS 端口(137-139)。仅 SMBv1 需要这些端口,而 SMBv1 已被弃用并在现代系统中默认移除。

使用 SMBv2 或更高版本进行的共享不使用 NetBIOS 端口 137-139。

现代 Windows 系统(Windows 10/11)中,NetBIOS over TCP/IP 默认处于禁用状态。

SMB 安全强化:

Windows 11 24H2 和 Windows Server 2025 默认要求所有出站和入站 SMB 连接进行签名,拒绝未签名数据包。

SMB 客户端可配置为强制所有出站连接加密,仅连接支持 SMB 3.0 及以上且支持加密的服务器。

SMB 客户端可阻止远程出站连接的 NTLM 身份验证,强制使用 Kerberos。

SMB over QUIC:

Windows 11 24H2 引入 SMB over QUIC 支持,通过 UDP 443 端口建立 TLS 1.3 加密隧道,适用于公网访问场景。

需文件服务器管理员手动启用,默认关闭。

4 主机名、计算机名、子域名与 www 的区别

4.1 计算机名

计算机名是本地系统分配给设备的标识符,仅在局域网范围内有效。外部网络无法直接通过计算机名访问该设备。

4.2 主机名(Hostname)

主机名是分配给网络连接设备的标签,用于在网络中识别该设备。主机名不一定与计算机名相同,但管理员通常会将两者设置为一致以简化维护。主机名通过 DNS 解析为 IP 地址。

在计算机网络中,主机名(早期称为节点名,Nodename)是分配给连接到计算机网络的设备的标签,用于在万维网、电子邮件或 Usenet 等电子通信中识别该设备。

4.3 完全限定域名(FQDN)

完全限定域名(Fully Qualified Domain Name,FQDN)指定了域名系统中设备的精确位置,包含所有域名层级,包括顶级域名和根域。FQDN 的特点是不存在歧义,只能被解释为一种含义。

示例:在局域网环境中,计算机名为 giacomo1968,其 FQDN 可能为:

复制代码
giacomo1968.second_floor.big_company.com

或简化为:

复制代码
giacomo1968.big_company.com

4.4 子域名

子域名是域名层次结构中父域名的子域。在域名 giacomo1968.big_company.com 中:

giacomo1968 可视为 big_company.com 的子域名

big_company 为域名称

.com 为顶级域名(TLD)

在域名系统(DNS)层次结构中,子域名是较大域名的组成部分。

以 fakename.wikipedia.org 为例的层级分析:

层级 组成部分 类型 是否解析为 IP
顶级域名 org TLD 否,仅为命名约定
域名称 wikipedia.org 域名 是(如果配置了 A 记录)
子域名 fakename 子域名 是(如果配置了 A 记录)

因此:

en.wikipedia.org 既是子域名也是主机名(如果它解析到 IP 地址)

mail.google.com 和 developers.google.com 同样是主机名,也是 google.com 的子域名

4.5 www 的含义与历史

www 是万维网服务的主机名标识,源于早期互联网惯例。在 1990 年代,网络通常在同一个域名下提供多种服务:

FTP 服务:ftp.example.edu

电子邮件服务:mail.example.edu

万维网服务:www.example.edu

随着互联网发展,许多网站仅运行单一 Web 服务,因此 www 前缀的使用逐渐减少。许多网站注册域名时不使用 www,但会配置 DNS 重定向,将 www 请求转发至主域名。从技术角度而言,www 仍可被视为一种主机名。

4.6 概念层级关系总结

概念 DNS 层次位置 是否解析为 IP 说明
顶级域名(TLD,top-level domain) 最高层 否 如 .com、.org、.edu,仅为命名约定
域名称 中间层 是 如 wikipedia.org,可解析为 IP 地址
子域名 域名称之下 视配置而定 如 en.wikipedia.org 中的 en 部分
主机名 网络标识层 是 可对应子域名、域名称或 FQDN 中的主机部分
FQDN 完整路径 是 包含所有层级的完整域名,无歧义

4.7 补充说明

在实际网络环境中,计算机名、主机名、完全限定域名和子域名之间可能存在重叠。具体含义取决于上下文和网络架构配置。管理员在配置 DNS 时,通常会将系统的本地主机名与外部 DNS 名称保持一致,以简化网络管理和故障排查。


注:本文为"主机名、域名与网络命名"相关合辑。

略作重排,如有内容异常,请看原文。


Reference

1 "Domain Name System." Wikipedia. https://en.wikipedia.org/wiki/Domain_Name_System

2 "Server Message Block." Wikipedia. https://en.wikipedia.org/wiki/Server_Message_Block

3 "NetBIOS." Wikipedia. https://en.wikipedia.org/wiki/NetBIOS

4 "Hostname." Wikipedia. https://en.wikipedia.org/wiki/Hostname

5 "Fully qualified domain name." Wikipedia. https://en.wikipedia.org/wiki/Fully_qualified_domain_name

6 "Top-level domain." Wikipedia. https://en.wikipedia.org/wiki/Top-level_domain

7 "Difference between host name and domain name." Super User. https://superuser.com/questions/59093/difference-between-host-name-and-domain-name

8 "Difference between NETBIOS, host name and computer name?" Super User. https://superuser.com/questions/368602/difference-between-netbios-host-name-and-computer-name

9 "Difference between NetBIOS and SMB." Super User. https://superuser.com/questions/694469/difference-between-netbios-and-smb

10 "What is a hostname versus a computer name versus a subdomain versus www?" Super User. https://superuser.com/questions/887173/what-is-a-hostname-versus-a-computer-name-versus-a-subdomain-versus-www

11 "Accessing share via netbios vs fqdn." Microsoft Q&A. https://learn.microsoft.com/en-us/answers/questions/340687/accessing-share-via-netbios-vs-fqdn