我在本地网络上有一台 Windows 10 计算机。
当我尝试从其他计算机 ping Windows 10 计算机时,失败(请求超时)。从 Windows 10 计算机,我可以毫无问题地 ping 其他设备。
我发现如果我进入控制面板的“高级共享设置”并打开“文件和打印机共享”,则到这台机器的 ping 就可以正常工作。
我的问题是,为什么?
如果关闭了“文件和打印机共享”(在被 ping 的机器上),为什么 ping 不起作用?这与 ping 回复有何关系?即使机器不共享文件/打印机资源,它仍应回复 ping,还是我遗漏了什么?
答案1
因为文件和打印机共享设置包括拒绝/允许 ICMP 流量的功能。您可以通过导航到以下内容来实际查看此功能:
- 点击
Start
按钮 - 搜索
Windows Firewall
- 选择
Advanced Settings
左侧 - 在左侧窗格中选择
Inbound Rules
- 在右侧窗格中查找标题为
File and Printer Sharing (Echo Request - ICMPv4-In)
(来源)
你可以从我的笔记本电脑上看到一个例子(文件和打印机共享已打开)直接如下:
更进一步说,如果你想离开文件和打印机共享关闭但仍允许“ping”,您可以启用图中红框内所示的相应规则。
答案2
即使我打开了文件和打印机共享规则,我在 ping Windows 10 VM 时仍然遇到了问题。
因此我添加了以下内容:
netsh advfirewall firewall add rule name="ping" protocol=ICMPV4 dir=in action=allow
警告:此命令将把规则应用于私有、公共和域网络配置文件。
答案3
“文件和打印机共享”是一组防火墙规则,其中一些规则还可以响应传入的ICMP回显 发送的请求ping
。
但是,为了ping
仅启用,您还可以启用另一组名为“核心网络诊断”的预配置规则。
这些都可以在命令行上使用 启用netsh
。这些命令相当麻烦,但可以轻松复制/粘贴以在其他机器上重复使用。
因此,ping
仅启用,启用“核心网络诊断”组:
netsh advfirewall firewall set rule group="Core Networking Diagnostics" new enable=yes
到启用“文件和打印机共享”,这还将实现ping
:
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
并列表将所有预先配置的入站规则放入用户目录中的“firewall.txt”文件中:
netsh advfirewall firewall show rule name=all dir=in > $HOME\firewall.txt
答案4
我知道我回复这个问题的时间非常晚,但这是我在尝试解决类似问题时参考的页面之一。我试图将文件上传到 Windows 10 Home 计算机,如果防火墙处于打开状态,则无法上传文件或 ping 远程家庭计算机。如果我关闭防火墙,一切都会正常。在 Windows 10 Home 中,默认情况下,Guest 和许多远程访问 Home 的功能都处于关闭状态。即使打开文件和打印机共享也无法解决我的问题。
这里的问题是“如果关闭了“文件和打印机共享”(在被 ping 的机器上),为什么 ping 不起作用?这与 ping 回复有何关系?”
它们在 ICMP 规则下相互关联。就我而言,我必须创建一条允许 ICMPv4 进行 Ping 的自定义规则和另一条允许 ICMPv6 进行 Ping 的自定义规则。一旦我使用自定义防火墙规则允许对 Ping 做出响应,家庭计算机便允许我访问共享文件夹并上传文件。
希望这可以帮助其他遇到此问题的人。