問題現象
- Vista 旗艦版電腦:瀏覽網頁正常、QQ 登入聊天正常。
- 命令提示字元執行
ping 192.168.1.1 或 ping www.google.com 全部顯示 「一般失敗」,封包 100% 遺失。
- 僅
ping 127.0.0.1 成功。
- 同機器在 XP 下 Ping 完全正常。
根本原因
Vista 內建 Windows 防火牆預設封鎖 ICMP 回應請求 (Echo Request) 的輸入/輸出。瀏覽網頁使用 TCP 80/443,QQ 使用 TCP/UDP 專用埠,均未被封鎖;但 Ping 依賴 ICMP 協定,被防火牆攔截。
解決方法:在 Windows 防火牆開啟 ICMP 例外
- 「控制台」→「安全性」→「Windows 防火牆」→「進階設定」(左側)。
- 在「輸入規則」/「輸出規則」中,尋找 「檔案和印表機共用 (回應要求 - ICMPv4 輸入/輸出)」 等規則。
- 或直接新增規則:
「新增規則」→「自訂」→ 通訊協定類型選 ICMPv4 → 「特定 ICMP 類型」→ 勾選 「回應要求 (類型 8)」 和 「回應 (類型 0)」 → 允許連線 → 套用至所有設定檔(網域/私人/公用)→ 命名「允許 ICMP Ping」。
命令列快速開啟(管理員權限)
netsh advfirewall firewall add rule name="允許 ICMPv4 輸入" protocol=icmpv4:8,any dir=in action=allow
netsh advfirewall firewall add rule name="允許 ICMPv4 輸出" protocol=icmpv4:0,any dir=out action=allow
驗證
執行 ping 192.168.1.1 應顯示正常回應(TTL、時間、統計資訊)。
補充說明
- 開啟 ICMP 會讓電腦可被網路掃描工具發現(Ping 掃描),若在公共網路環境,建議僅在「私人/網域」設定檔啟用,或啟用後再關閉。
- 第三方防火牆(Comodo、ZoneAlarm、Kaspersky 等)同樣需在其介面中開啟 ICMP 例外。
- Vista SP1/SP2 及 Win7/Win10 預設行為相同,解決方式通用。