语境
我们想使用 RawCap 检查对 localhost 的 HTTP 请求。不过 RawCap 无法捕获 IPv6。我们考虑在项目中用“127.0.0.1”对“localhost”进行大量查找替换,但这是一个挑战,因为我们的配置是分布式的。
我们尝试过的
这是我们的整个 hosts 文件:
127.0.0.1 localhost
我们已经从“如何在 Windows 中禁用 IPv6 或其组件“:
- 禁用 IPv6
- 在前缀策略中优先选择 IPv4 而不是 IPv6
- 在所有非隧道接口上禁用 IPv6
- 在所有隧道接口上禁用 IPv6
在非隧道接口(环回接口除外)和 IPv6 隧道接口上禁用 IPv6
我们更改了以下注册表项:
reg add hklm\system\currentcontrolset\services\tcpip6\parameters
/v DisabledComponents /t REG_DWORD /d 0xFF
重新启动了计算机。
结果
前缀策略是最新的,因此 nslookup 也是如此。Ping 顽固地不使用 IPv4;当我们请求 localhost:5000 时,Firefox 也不使用 IPv4。
这就是我们的netsh int ipv6 show prefixpolicies
输出。
Precedence Label Prefix
---------- ----- --------------------------------
100 3 ::/96
这是我们的nslookup localhost
输出:
Server: router.asus.com
Address: 192.168.1.1
Name: localhost
Address: 127.0.0.1
这是我们固执的ping localhost
输出:
Pinging DESKTOP-AAAT5QS [::1] with 32 bytes of data:
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms