主机名、域名与网络命名概念及相关协议演进
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