必须在Windows防火墙中放行对应端口才能使外部设备访问本机服务;可通过图形界面新建入站规则(选端口→TCP/UDP→允许连接→勾选配置文件→命名)或管理员运行netsh命令实现,且云环境还需配置安全组。

要在Windows系统上让外部设备通过网络访问本机运行的服务(比如MySQL、Redis、Web应用),必须在Windows防火墙中明确放行对应端口,否则所有入站连接都会被默认拦截。
图形界面操作:新建入站规则
打开“控制面板”→“系统和安全”→“Windows Defender 防火墙”→左侧点击“高级设置”。
在“高级安全 Windows Defender 防火墙”窗口中,点击左侧“入站规则”,右侧空白处点击“新建规则…”。
向导第一步选择“端口”,点击“下一步”。
第二步选择协议类型(TCP或UDP);若不确定,绝大多数服务如8080、3306、9200都走TCP,选“TCP”,再选“特定本地端口”,输入目标端口号,例如3306,多个端口用英文逗号隔开(如8080,9200),点击“下一步”。
第三步选“允许连接”,直接点“下一步”——这一步不能选“阻止连接”或“不允许连接”,否则规则生效后反而彻底封死该端口。
第四步配置文件,默认三项(域、专用、公用)全勾选;如果你只在局域网内测试,可取消“公用”,避免暴露给不可信网络。
第五步输入名称,建议包含端口号和用途,例如“MySQL-3306”或“ES-9200”,便于后期识别和管理;描述可填可不填,点击“完成”即生效。
命令行快速开放(管理员权限运行)
以管理员身份打开“Windows PowerShell”或“命令提示符”。
执行命令开放单个TCP端口(永久生效):
netsh advfirewall firewall add rule name="Open Port 8080" dir=in action=allow protocol=TCP localport=8080
开放UDP端口只需把protocol=TCP换成protocol=UDP,例如开放SNMP的161端口:
netsh advfirewall firewall add rule name="SNMP-161" dir=in action=allow protocol=UDP localport=161
【注意:name值必须唯一,重复名称会导致命令失败且无提示】
开放后无需重启,规则立即生效。可用netsh advfirewall firewall show rule name="Open Port 8080"验证是否添加成功。
验证端口是否真正可达
方法一:本机测试——在另一台同局域网电脑上,用telnet命令检查连通性:
telnet 192.168.x.x 3306(将IP替换为服务器实际局域网IP)。
方法二:远程验证——若服务器在云环境(阿里云、腾讯云等),【仅开放Windows防火墙还不够,必须同步在云平台安全组中放行该端口】,否则外网请求根本到不了Windows系统。
方法三:使用在线端口检测工具(如chinaz.com/port),输入服务器公网IP+端口号,查看是否返回“开放”状态。











