在Windows操作系统中,端口445是SMB(Server Message Block)协议的默认端口,主要用于文件共享、打印共享以及远程过程调用(RPC)通信等场景,默认情况下,Windows系统可能会开启此端口,但也可能因安全考虑(如防范勒索病毒攻击)而被关闭,若需手动开启或管理445端口,可通过多种命令行工具实现,以下是详细操作步骤及注意事项。

通过Windows防火墙开启445端口
Windows防火墙是控制端口访问的核心工具,可通过命令行或图形界面操作,以下是使用命令行开启445端口的步骤:
使用netsh
命令管理防火墙规则
netsh
是Windows网络配置的命令行工具,支持高级防火墙规则管理,以管理员身份打开命令提示符(CMD)或PowerShell,执行以下命令:
添加入站规则允许445端口访问:
netsh advfirewall firewall add rule name="Open Port 445" dir=in action=allow protocol=TCP localport=445
name
:规则名称,可自定义;dir=in
:指定入站方向;action=allow
:允许通过;protocol=TCP
:445端口基于TCP协议;localport=445
:目标端口号。
验证规则是否添加成功:

netsh advfirewall firewall show rule name="Open Port 445"
删除规则(如需关闭端口):
netsh advfirewall firewall delete rule name="Open Port 445"
启用或禁用SMB协议相关服务
445端口的开启与SMB服务状态直接相关,需确保以下服务运行:
- Server(lanmanserver):提供文件和打印共享;
- Workstation(lanmanworkstation):支持网络连接和远程访问。
检查服务状态:
sc query lanmanserver sc query lanmanworkstation
启动服务(若未运行):

sc start lanmanserver sc config lanmanserver start=auto sc start lanmanworkstation sc config lanmanworkstation start=auto
停止服务(若需关闭端口):
sc stop lanmanserver sc config lanmanserver start=disabled
通过注册表修改SMB协议配置
部分情况下,需通过注册表调整SMB协议的启用状态,尤其涉及旧版系统(如Windows 7)或特定安全策略时。
修改SMB1.0协议配置
SMB1.0存在安全漏洞,建议禁用,但若需兼容旧设备,可通过注册表启用:
打开注册表编辑器:
regedit
定位路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
修改或添加DWORD值:
SMB1
:值为0
禁用,1
启用;RequireSecureNegotiate
:值为1
强制启用安全协商(推荐)。
启用SMB over QUIC(Windows 11/Server 2022+)
新版系统支持SMB over QUIC(基于UDP的加密传输),需通过注册表启用:
定位路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMB\Parameters
添加DWORD值:
EnableSmbOverQuic
:值为1
启用。
使用PowerShell管理端口和SMB服务
PowerShell提供更强大的对象化操作能力,适合批量管理。
新建防火墙规则
New-NetFirewallRule -DisplayName "Open Port 445" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow
查询SMB服务状态
Get-Service -Name "lanmanserver", "lanmanworkstation" | Format-Table Name, Status, StartType
启用SMBv2/v3协议
Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force
注意事项
- 安全风险:445端口是勒索病毒(如WannaCry)的常见攻击目标,非必要时应保持关闭或限制访问IP。
- 系统兼容性:不同Windows版本(如Win10/WinServer2019)的命令参数可能略有差异,需提前测试。
- 网络环境:企业环境中建议结合组策略(GPO)统一配置,避免手动操作遗漏。
相关操作对比表
操作目标 | 命令行工具 | 关键命令示例 |
---|---|---|
添加防火墙规则 | netsh | netsh advfirewall firewall add rule name="Open Port 445" dir=in action=allow protocol=TCP localport=445 |
启动SMB服务 | sc | sc start lanmanserver |
禁用SMB1.0 | 注册表 | 修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 下SMB1 值为0 |
查询端口状态 | PowerShell | Get-NetTCPConnection -LocalPort 445 |
相关问答FAQs
Q1: 如何确认445端口是否已开启?
A1: 可通过以下方式验证:
- 命令行执行
netstat -ano | findstr "445"
,查看是否有监听状态为LISTENING
的进程; - 使用PowerShell命令
Get-NetTCPConnection -LocalPort 445 | Select-Object State
,检查端口状态; - 第三方工具(如PortQry)扫描端口状态。
Q2: 开启445端口后如何限制特定IP访问?
A2: 可通过高级防火墙规则实现,例如仅允许内网IP段(192.168.1.0/24)访问:
netsh advfirewall firewall add rule name="Allow 445 for LAN" dir=in action=allow protocol=TCP localport=445 remoteip=192.168.1.0/24
若需拒绝其他IP,可添加拒绝规则并调整优先级(通过rule name="..." new enable=yes profile=any
)。