Windows Server 可通过 PowerShell 绑定 SMB 服务至指定网卡:先确认目标网卡启用静态 IP 并设为专用网络,再用 Disable-NetAdapterBinding 禁用非目标网卡的 ms_server 组件,最后用 netstat -ano | findstr :445 验证仅目标 IP 监听 445 端口。
windows server 默认会通过所有启用的网卡响应 smb 请求,但有时你需要限定只由某一张网卡对外提供文件共享服务——比如隔离管理流量与业务流量、配合防火墙策略,或避免跨网段广播干扰。这不是靠“禁用其他网卡”实现的,而是通过绑定 smb 服务到指定网络接口来完成。
确认目标网卡的网络配置
先确保你要绑定的那张网卡已正确配置 IP 地址、子网掩码,并且处于“已启用”状态。不要依赖 DHCP 自动分配的临时地址;建议使用静态 IP,避免因地址变更导致共享不可达。同时检查该网卡所属的网络位置(如“专用网络”),确保 Windows 防火墙允许该网络类型的“文件和打印机共享”规则。
禁用其他网卡上的 SMB 绑定
Windows 不提供图形界面直接选择“仅用某张网卡跑 SMB”,但可通过 PowerShell 精确控制:
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
- 以管理员身份打开 PowerShell
- 运行 Get-NetAdapterBinding -ComponentID ms_server 查看每张网卡是否启用了 SMB 服务(即 ms_server 组件)
- 对不需要提供共享的网卡,执行:
Disable-NetAdapterBinding -Name "Ethernet 2" -ComponentID ms_server
(将 Ethernet 2 替换为实际网卡名称) - 验证结果:再次运行 Get-NetAdapterBinding,确认只有目标网卡的 ms_server 显示为 Enabled
验证 SMB 是否只在目标网卡上监听
绑定生效后,SMB 服务(Server)将只在你保留的那张网卡的 IP 上监听 445 端口:
- 运行 netstat -ano | findstr :445,观察输出中 LISTENING 行绑定的 IP 地址是否仅为你要使用的那个
- 如果看到 0.0.0.0:445 或 [::]:445,说明仍存在全网卡监听,需检查是否遗漏了某张网卡的 ms_server 绑定,或是否启用了 SMB 1.0(它可能绕过绑定逻辑)
- 可进一步用 Get-SmbServerConfiguration | Select EnableSMB1Protocol 查看 SMBv1 是否开启;若非必要,建议设为 $false
补充说明:DNS 与 NetBIOS 名称解析的影响
即使绑定了特定网卡,客户端仍可能通过主机名(如 \server0)访问成功——只要 DNS 或本地 hosts 能正确解析到该网卡的 IP。但要注意:
- 不要用 CNAME 别名访问,Windows SMB 客户端默认不支持通过 CNAME 进行 Kerberos 认证,容易报“登录失败:目标帐户名称不正确”
- 若需多地址访问,推荐使用 netdom computername server0 /add:alias01 添加主机别名,而非 DNS CNAME
- NetBIOS 名称广播默认仍可能从所有网卡发出,如需彻底关闭,可在网卡 TCP/IP 高级设置中勾选“通过 TCP/IP 禁用 NetBIOS”

















