必须进入“高级安全 windows defender 防火墙”新建入站规则:选端口类型,指定tcp/udp及目标端口号(如3389、8080),选“允许连接”,按场景勾选网络配置文件(开发仅“专用”,生产可加“公用”),命名规范(如allow_tcp_3389_rdp);powershell命令支持加-remoteaddress限源ip;linux需firewalld临时+永久配置并重载。

要在Windows系统安全中心防火墙中精准开放特定端口,必须绕过“防火墙和网络保护”主界面的简化设置,直接进入底层规则管理模块——否则新建的规则不会生效,外部连接始终被拒绝。
图形界面标准操作路径
点击任务栏右下角网络图标→右键选择“打开网络和Internet设置”→点击“Windows 安全中心”→在左侧菜单选“防火墙和网络保护”→点击右侧“高级设置”(注意:不是“允许应用通过防火墙”,那是程序级放行)。
在弹出的“高级安全 Windows Defender 防火墙”窗口中,左侧点击“入站规则”,右侧空白处右键→“新建规则”。向导第一步选择“端口”,点击“下一步”。
协议类型选TCP或UDP;若需同时开放,必须分别建两条规则;在“特定本地端口”栏输入数字,如【3389】(远程桌面)、【8080】(开发服务),多个端口用英文逗号隔开,不能用顿号或中文逗号。
操作选“允许连接”,下一步;配置文件页——开发环境仅勾选“专用”,测试服务器可加“域”,生产对外服务才勾选“公用”;最后命名规则,建议格式为“allow_tcp_3389_rdp”,避免用“开放端口1”这类无法追溯的名称。
PowerShell命令行快速部署
方法一:单端口基础开放(管理员权限运行PowerShell)
执行:New-NetFirewallRule -DisplayName "API_Server_5000" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action Allow -Profile Private
方法二:限制访问源IP(增强安全性)
追加 -RemoteAddress 192.168.5.0/24,表示只允许该网段内设备访问5000端口;若漏写此参数又已启用规则,后续无法直接编辑,只能删除重做。
验证是否创建成功:运行 Get-NetFirewallRule -DisplayName "API_Server_5000" | Select-Object DisplayName,Enabled,Profile,确认Enabled为True且Profile匹配预期。
Linux系统firewalld同步配置(CentOS/RHEL 7+)
第一步:确认firewalld服务正在运行 → 执行 sudo systemctl is-active firewalld,返回active才继续。
第二步:临时开放TCP 8080端口 → sudo firewall-cmd --add-port=8080/tcp。
第三步:永久生效 → sudo firewall-cmd --add-port=8080/tcp --permanent → 然后必须执行 sudo firewall-cmd --reload,否则重启后规则丢失。
第四步:验证结果 → sudo firewall-cmd --list-ports 应显示8080/tcp;再用 sudo ss -tuln | grep :8080 确认服务进程确实在监听该端口,二者缺一不可。











