如何设置Windows防火墙,使特定端口能进行入站通信?

2026-05-06 14:191阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计854个文字,预计阅读时间需要4分钟。

如何设置Windows防火墙,使特定端口能进行入站通信?

相关专题:

直接在不关防火墙的前提下,让外部设备能连上你电脑的某个端口,关键就是加一条“允许入站”的规则。操作分图形界面和命令行两种方式,图形界面更直观,命令行适合批量或远程部署。

用图形界面新建端口规则

这是最常用也最稳妥的方式,适合所有用户:

  • Win + R,输入 firewall.cpl 回车,打开 Windows Defender 防火墙窗口
  • 点击左侧“高级设置”,进入“高级安全 Windows Defender 防火墙”
  • 左侧选中“入站规则”,右侧点“新建规则…”启动向导
  • 规则类型选“端口”,下一步
  • 协议选 TCP 或 UDP(比如 Web 服务选 TCP,DNS 查询可能用 UDP),在“特定本地端口”里填数字,如 8080;多个端口用逗号隔开,如 3306,8080
  • 操作选“允许连接”,下一步
  • 配置文件默认全选(域、专用、公用),确保不同网络环境都生效,下一步
  • 起个清晰的名字,比如 Allow-WebApp-8080,可加描述说明用途,点“完成”

用命令行快速添加(管理员权限)

适合脚本化或远程维护,效率高:

  • 以管理员身份运行命令提示符(CMD),执行:
    netsh advfirewall firewall add rule name="Allow Port 8080" dir=in action=allow protocol=TCP localport=8080
  • 如果要开 UDP 端口,把 protocol=TCP 换成 protocol=UDP
  • 开多个端口可写成:localport=80,443,8080
  • PowerShell 用户可用:
    New-NetFirewallRule -DisplayName "Allow 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

验证规则是否生效

加完规则别急着退出,务必测试一下:

  • 回到“入站规则”列表,找到刚建的规则,确认状态是“已启用”
  • 从另一台设备(或本机用 localhost)测试连接:
    在 CMD 中运行:telnet 192.168.1.100 8080(把 IP 换成你的电脑实际局域网地址)
    若黑窗闪一下没报错,说明通了;若提示“无法打开到主机的连接”,说明规则未生效或服务没起来
  • PowerShell 更友好:Test-NetConnection 192.168.1.100 -Port 8080,返回 TcpTestSucceeded : True 即成功

补充提醒

有些细节容易被忽略但影响实际使用:

  • 规则名建议带端口号和用途,方便后续管理,比如 Allow-MySQL-3306-TCP
  • 如果只希望某几个 IP 能访问,可在图形向导第 5 步选“自定义”,然后在“作用域”页填远程 IP 地址范围
  • 开了端口但还是连不上?检查服务本身是否正在监听该端口(可用 netstat -ano | findstr :8080 查看)
  • 云服务器(如阿里云、腾讯云)还需在控制台安全组里同步放行对应端口,Windows 防火墙只是其中一环

本文共计854个文字,预计阅读时间需要4分钟。

如何设置Windows防火墙,使特定端口能进行入站通信?

相关专题:

直接在不关防火墙的前提下,让外部设备能连上你电脑的某个端口,关键就是加一条“允许入站”的规则。操作分图形界面和命令行两种方式,图形界面更直观,命令行适合批量或远程部署。

用图形界面新建端口规则

这是最常用也最稳妥的方式,适合所有用户:

  • Win + R,输入 firewall.cpl 回车,打开 Windows Defender 防火墙窗口
  • 点击左侧“高级设置”,进入“高级安全 Windows Defender 防火墙”
  • 左侧选中“入站规则”,右侧点“新建规则…”启动向导
  • 规则类型选“端口”,下一步
  • 协议选 TCP 或 UDP(比如 Web 服务选 TCP,DNS 查询可能用 UDP),在“特定本地端口”里填数字,如 8080;多个端口用逗号隔开,如 3306,8080
  • 操作选“允许连接”,下一步
  • 配置文件默认全选(域、专用、公用),确保不同网络环境都生效,下一步
  • 起个清晰的名字,比如 Allow-WebApp-8080,可加描述说明用途,点“完成”

用命令行快速添加(管理员权限)

适合脚本化或远程维护,效率高:

  • 以管理员身份运行命令提示符(CMD),执行:
    netsh advfirewall firewall add rule name="Allow Port 8080" dir=in action=allow protocol=TCP localport=8080
  • 如果要开 UDP 端口,把 protocol=TCP 换成 protocol=UDP
  • 开多个端口可写成:localport=80,443,8080
  • PowerShell 用户可用:
    New-NetFirewallRule -DisplayName "Allow 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

验证规则是否生效

加完规则别急着退出,务必测试一下:

  • 回到“入站规则”列表,找到刚建的规则,确认状态是“已启用”
  • 从另一台设备(或本机用 localhost)测试连接:
    在 CMD 中运行:telnet 192.168.1.100 8080(把 IP 换成你的电脑实际局域网地址)
    若黑窗闪一下没报错,说明通了;若提示“无法打开到主机的连接”,说明规则未生效或服务没起来
  • PowerShell 更友好:Test-NetConnection 192.168.1.100 -Port 8080,返回 TcpTestSucceeded : True 即成功

补充提醒

有些细节容易被忽略但影响实际使用:

  • 规则名建议带端口号和用途,方便后续管理,比如 Allow-MySQL-3306-TCP
  • 如果只希望某几个 IP 能访问,可在图形向导第 5 步选“自定义”,然后在“作用域”页填远程 IP 地址范围
  • 开了端口但还是连不上?检查服务本身是否正在监听该端口(可用 netstat -ano | findstr :8080 查看)
  • 云服务器(如阿里云、腾讯云)还需在控制台安全组里同步放行对应端口,Windows 防火墙只是其中一环