Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?

前言

在网上搜“防火墙开启某个端口”供其他机器访问,都是只讲到了“如何允许某个端口被访问”,而没有后续了。

我之前就遇到过这个问题,开启端口后仍然无法在局域网内的其他机器上访问我的主机,关掉防火墙后就可以访问了。

百思不得其解,突然灵光一闪,一试果然可以。

Why

单单开放本设备的82端口,其他设备是可以访问本设备的82端口了。但是想要从82端口转发到提供web服务的程序(后面以Python为例),还需要保证“允许Python穿过防火墙”,或者说“不拒绝Python穿过防火墙”。

之前在运行Python程序的时候弹出过“是否允许Python穿过防火墙”,没有点“允许”而是关掉了,导致防火墙多了一条“禁止Python穿过防火墙”的规则。

因此其他设备的访问到达本机的82端口后,没有被转发给Web服务的提供着Python,其他设备上无法看到页面。

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第1张图片

How

分为两步:

  1. 允许82端口的入站
  2. 不禁止Python穿过防火墙

1. 允许82端口的入站

Win + R+ contrl+ 回车或其他方式)打开控制面板,访问控制面板\所有控制面板项\Windows Defender 防火墙,点击高级设置

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第2张图片

点击入站规则,点击新建规则,选择端口下一页

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第3张图片

选择你要开启的协议类型(网页服务的话一般是TCP),输入你要开放的端口(后端服务提供程序的端口),下一页

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第4张图片

选择允许连接下一页

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第5张图片

选择你允许访问的网络,若不清楚你当前连接的网络类型,则全选即可。下一页

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第6张图片

随便起个名字,点击完成,大功告成。

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第7张图片

这时候可以在局域网(wifi、校园网、热点等)或公网(如有)下使用其他设备连接本设备的ip地址加端口号,看能否访问成功。

2. 不禁止Python穿过防火墙

若第1.步后仍无法访问,则需要在入站规则中查看是否有禁止 服务提供程序 穿过防火墙的规则。

以我写的一个通过网页在其他设备上向电脑发送快捷键的脚本为例,这个脚本是用Python运行的,它开启的是82端口。我在第1.步已经开启了82端口的TCP入栈规则,还是无法在其他设备上访问。

于是我找了一下入栈规则,发现有一条禁止Python穿过防火墙的规则。

删掉这个规则(你也可以选择禁用该规则),手机就能访问电脑提供的网页了。

Windows - 防火墙 - 如何开启单个端口以供Web应用访问(以82端口为例) - 开启端口后还是访问失败了?_第8张图片

若规则列表中没有找到Python,你可以在程序这一列寻找是否有Python。若你的服务提供程序不是Python,则需要找到相应程序的对应规则。这些规则可能不是你主动添加的,而是“不小心”或其他程序添加的。总之,删掉就好。

End

原创不易,转载经作者同意后请附上原文链接哦~
https://letmefly.blog.csdn.net/article/details/135981716

你可能感兴趣的:(实用技巧,Windows,windows,防火墙,实用技巧)