Windows防火墙如何开放特定端口?

时间:2026-04-16 编辑:wenzhang1

     在 Windows 系统中,开放特定端口主要通过配置 Windows Defender 防火墙 的“入站规则”来实现。这相当于给网络流量打开一扇“门”,允许外部设备访问你电脑上的特定服务。

这里有三种最常用的方法,你可以根据习惯选择:

    方法一:图形界面设置(最直观,适合新手)

这是最传统也是最稳妥的方法,适用于所有 Windows 版本。

打开防火墙高级设置

  • 按下 Win + R 快捷键,输入 wf.msc,然后按回车。
  • 这将直接打开“高级安全 Windows Defender 防火墙”窗口。

新建入站规则

  • 在左侧菜单栏点击 “入站规则”
  • 在右侧“操作”栏中点击 “新建规则...”

配置规则向导

  • 规则类型:选择 “端口”,点击“下一步”。
  • 协议和端口
    • 选择 TCP(大多数 Web 服务、远程桌面用 TCP)或 UDP(DNS、视频流用 UDP)。
    • 选择 “特定本地端口”,并在框中输入你要开放的端口号(例如 80803389)。
  • 操作:选择 “允许连接”
  • 配置文件:通常保持默认(域、专用、公用都勾选),除非你明确知道只需要在特定网络环境下开放。
  • 名称:起个容易识别的名字,例如“开放 8080 端口”,点击“完成”。

   方法二:使用 CMD 命令(最快,适合老手)

如果你习惯使用命令行,或者需要快速操作,使用 netsh 命令是最快的。

以管理员身份运行 CMD

  • 在搜索栏输入 cmd,右键选择 “以管理员身份运行”

执行开放端口命令
复制以下命令,将 8080 替换为你需要的端口号,将 开放8080端口 替换为你想要的规则名称:

  1. netsh advfirewall firewall add rule name="开放8080端口" dir=in action=allow protocol=TCP localport=8080
    • 参数解释
      • name:规则名称(自定义)。
      • dir=in:表示入站规则(外部访问本机)。
      • action=allow:允许连接。
      • protocol=TCP:指定协议(如果是 UDP 请改为 UDP)。
      • localport:具体的端口号。

    方法三:使用 PowerShell(最现代,适合批量操作)

PowerShell 提供了更现代化的命令模块,语法更清晰。

以管理员身份运行 PowerShell

  • 右键点击开始菜单,选择 “Windows PowerShell (管理员)”“终端 (管理员)”

执行命令
复制以下命令,同样记得修改端口号和名称:

  1. New-NetFirewallRule -DisplayName "开放8080端口" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

    验证端口是否开放成功

设置完成后,建议验证一下规则是否生效:

  1. 查看规则列表
    回到 wf.msc 界面,点击“入站规则”,在列表中找到你刚才创建的规则,确保“已启用”列显示为 “是”
  2. 测试连通性
    你可以使用 telnet 命令(需先开启 Telnet 客户端)或在线端口扫描工具来测试。
    • 命令:telnet 127.0.0.1 8080
    • 如果屏幕变黑或显示 Connected,说明端口已通。

    重要提示:如果还是连不上?

如果你已经开放了端口但仍然无法访问,请检查以下两点:

  1. 服务监听地址
    确保你的程序(如 Web 服务器)监听的是 0.0.0.0 或具体的局域网 IP,而不是 127.0.0.1。如果只监听 127.0.0.1,外部设备是无法访问的。
    • 检查方法:在 CMD 中输入 netstat -an | findstr "端口号"
  2.     第三方杀毒软件
    如果你安装了火绒、360、卡巴斯基等第三方安全软件,它们自带的防火墙可能会覆盖 Windows 自带防火墙。你需要去这些软件的设置里开放端口,或者暂时关闭它们进行测试。