![Windows 防火墙通过 VPN 服务器阻止网络共享](https://linux22.com/image/647822/Windows%20%E9%98%B2%E7%81%AB%E5%A2%99%E9%80%9A%E8%BF%87%20VPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%98%BB%E6%AD%A2%E7%BD%91%E7%BB%9C%E5%85%B1%E4%BA%AB.png)
我在 172.16.0.0/24 网络前面有一个 VPN 服务器。我的客户端是 192.168.1.0/24 网络。我能够从客户端成功通过 VPN 接入服务器网络,并且我正尝试通过 TCP IP 安装网络共享(例如 \172.16.0.20\Folder)。我已在 172.16.0.20 的网络适配器上启用了 TCP 上的 NetBios。
但是,当我尝试挂载文件夹时,连接失败。我确信这是“专用网络”Windows 防火墙阻止了它。如果我禁用专用网络 Windows 防火墙,我可以通过 VPN 顺利挂载文件夹(保持公用网络防火墙启用)。但是,一旦我再次启用专用网络防火墙,挂载就会失败。请注意,我能够毫无问题地远程桌面连接到计算机 (172.16.0.20)。
我尝试手动转发 UDP 端口 137 和 138,以及 TCP 端口 139。但似乎不起作用。我还需要启用其他功能吗?
答案1
我知道这已经晚了近三年,但我今天刚刚解决了同样的问题。我确实让它工作了,所以我想我会分享。请注意,我使用 Windows 7 PC 作为文件服务器;其他版本可能需要略有不同的配置。
在“高级安全Windows防火墙”中,有几条“文件和打印机共享”规则:
- 文件和打印机共享 (NB-Datagram-In)
- 文件和打印机共享 (NB-Name-In)
- 文件和打印机共享 (NB-Session-In)
- 文件和打印机共享 (SMB-In)
(还有其他规则,但我不关心打印机共享。如果您想要这些,也可以进行相同的更改。)
文件和打印机共享似乎默认仅设置为“本地子网”。您需要添加 VPN 客户端的子网。
修改每条规则如下:
- 打开规则的属性对话框。
- 导航到“范围”选项卡。
- 在远程 IP 地址部分,应选中“这些 IP 地址”单选按钮。
- 点击地址列表旁边的“添加...”。默认情况下,列表中只有“本地子网”。
- 在“此 IP 地址或子网:”字段中,输入分配给您的 VPN 客户端的子网(这可能是 OP 中的 192.168.1.0/24,但如果不是,则它是分配给客户端 VPN 适配器的子网),然后单击“确定”。
- 如果您也使用 IPv6,请也添加 VPN 客户端 IPv6 子网。
这足以让我通过 VPN 访问文件共享。
(如果您想手动执行此操作,则需要在文件服务器的防火墙中打开 TCP 端口 139 和 445 以及 UDP 端口 137 和 138。)
答案2
我知道这已经是 6 年之后的事了,但感谢 Brian 添加了这个。我遇到了同样的问题,并帮我解决了。我还建议其他阅读这篇文章的人修改以下规则以包括您的 VPN 子网,因为它允许 ping 命令。方便测试连接
文件和打印机共享(回显请求 - ICMPv4-In)