138 端口做什么
138 是 NetBIOS 的数据报服务(服务名 netbios-dgm),基于 UDP,承担广播与组播形式的数据报通信,网络浏览列表和主浏览器选举都要靠它。它不单独工作:137 负责名称注册与解析、138 负责数据报、139 负责会话,三者合起来就是 NetBIOS over TCP/IP 三件套,现代网络应逐步移除对它的依赖。
基本信息
| 服务 | netbios-dgm |
|---|---|
| 协议 | UDP |
| 同族端口 | 137 名称 / 138 数据报 / 139 会话 |
| 适用平台 | 传统 Windows 工作组网络、Samba |
| 安全等级 | 仅限内网,不应跨网段放行 |
典型使用场景
- 网络邻居里能看到同组计算机,靠的就是 138 播出的浏览列表
- 没有域控的工作组环境,主浏览器选举由 138 广播完成
- 排查广播风暴时定位哪个网段在持续刷 138 数据报
- 安全加固时确认不需要发现功能的主机已关闭 NetBIOS
- 共享排障时区分 SMB(445 或 139)与浏览(138)两条链路
广播发现协议对照
| 协议 | 地址/端口 | 用途 |
|---|---|---|
| NetBIOS 名称服务 | 广播 255.255.255.255:137 | 名称注册与解析 |
| NetBIOS 数据报 | 广播 255.255.255.255:138 | 浏览列表与主浏览器选举 |
| LLMNR | 224.0.0.252:5355 | 无 DNS 环境的主机名解析 |
| mDNS | 224.0.0.251:5353 | 零配置设备发现 |
主机侧阻断
主机侧阻断
New-NetFirewallRule -DisplayName 'Block-NetBIOS-In' -Direction Inbound -Protocol UDP -LocalPort 137,138 -Action Block
New-NetFirewallRule -DisplayName 'Block-NetBIOS-Session' -Direction Inbound -Protocol TCP -LocalPort 139 -Action Block抓包判读广播来源
抓包判读广播来源
sudo tcpdump -ni eth0 'udp port 138' -c 20 -vv
# 观察源地址与频率:持续高频多为发现/选举流量;
# 业务共享已走 DNS 与 445 时,可评估在接入层收敛该广播治理顺序:先在接入交换机划分 VLAN 并启用 IGMP Snooping 控制广播域,再在主机侧关闭不需要的 NetBIOS 发现;两处同时收紧比单点封端口更稳。
平台差异:Linux 侧由 Samba 的 nmbd 组件提供 NetBIOS 发现,Windows 侧由网卡的 NetBIOS over TCP/IP 设置控制;两者关闭后,基于 DNS 的文件共享(445)不受影响。
关闭路径:Windows 在网卡属性里进入 IPv4 高级设置的 WINS 页签,选择禁用 TCP/IP 上的 NetBIOS;Samba 侧设置 disable netbios = yes 并停用 nmbd 服务。改完用 ss 或 netstat 确认 137、138 不再监听,再观察一个工作日看是否有依赖报障。