Windows Defender防火墙默认阻止外部访问本机端口,需手动创建入站规则:一、图形界面通过wf.msc新建端口规则;二、命令行用netsh或PowerShell添加;三、通过netsh show rule、netstat和telnet验证生效。

Windows Defender防火墙默认会阻止外部设备访问本机指定端口,导致本地服务(如开发服务器、数据库、Mock API)无法被局域网或公网设备正常连接,必须手动创建入站规则放行对应端口才能通信。
图形界面方式创建入站端口规则
第一步:打开高级安全防火墙控制台。按下 Win + R,输入 wf.msc,回车运行。
第二步:在左侧导航栏点击「入站规则」,右侧空白处点击「新建规则…」启动向导。
第三步:规则类型选「端口」→ 点击「下一步」。这里不能选「程序」,否则后续无法精确控制端口范围;选错会导致规则不生效且难以排查。
第四步:协议和端口设置中,选择「TCP」;在「特定本地端口」框内输入目标端口号,例如 3001 或 8080 → 点击「下一步」。
第五步:操作选「允许连接」→ 下一步。这一步若误选「允许连接如果安全」,将强制要求IPsec认证,绝大多数开发场景不适用,连接会直接失败。
第六步:配置文件页勾选「域」「专用」「公网」——【务必根据实际网络环境判断:若服务仅限局域网调用,可取消勾选「公网」;但开发调试阶段建议全选,避免因网络类型识别偏差导致规则不触发】 → 下一步。
第七步:名称栏填写有意义的标识,例如 Allow Vue Dev Server (3000),便于后期识别和管理 → 点击「完成」。
命令行快速添加(管理员权限)
方法一:使用 netsh 命令(兼容 Windows 10/11 及 Server 全系)
以管理员身份运行命令提示符或 PowerShell,执行:
netsh advfirewall firewall add rule name="Allow Port 3001" dir=in action=allow protocol=TCP localport=3001
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
这条命令会立即生效,无需重启服务。注意 name 值不可含中文引号、斜杠等特殊字符,否则创建失败。
方法二:PowerShell 命令(推荐用于批量或脚本化部署)
管理员身份运行 PowerShell,执行:
New-NetFirewallRule -DisplayName "Allow 8080 HTTP" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Domain,Private,Public
Profile 参数必须显式指定,省略则默认只作用于 Domain 配置文件,在家庭网络或笔记本直连 WiFi 时规则不会生效。
验证规则是否生效
在管理员命令提示符中运行:
netsh advfirewall firewall show rule name="Allow Port 3001"
若返回包含“已启用:是”、“方向:入站”、“协议:TCP”、“本地端口:3001”的完整信息,则规则已激活。
进一步确认端口监听状态:运行 netstat -ano | findstr :3001,确保有 LISTENING 状态且 PID 对应你的服务进程。
最后从另一台设备执行 telnet 192.168.x.x 3001(需先启用 Telnet 客户端功能),能成功建立连接即表示端口真正对外可访问。










