为什么我的 Windows 有数百个临时 IPv6 地址?

为什么我的 Windows 有数百个临时 IPv6 地址?

我的 ISP 几周前为我启用了 IPv6。现在我注意到 Windows (8.1) 获取了大量临时 IPv6 地址。ipconfig输出如下(真实地址被混淆了):

Windows IP Configuration

Ethernet adapter Ethernet:

    Connection-specific DNS Suffix  . : fritz.box
    IPv6 Address. . . . . . . . . . . : 2012:65:fd85:5712:e0ca:9e76:661f:c4f1
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:74:5cd9:163c:69ef
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:89:8f2:7643:e51e
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:e3:52fd:b15f:6d7d
    [...over 600 more entries...]
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fda8:816e:6d3:7713
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fdc9:7a6b:d2c5:e880
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fdf4:11ed:9aba:9e27
    Link-local IPv6 Address . . . . . : fe80::e0ca:9e76:661f:c4f1%3
    IPv4 Address. . . . . . . . . . . : 192.168.178.22
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . : fe80::a96:d7ff:fe1f:cb26%3
                                        192.168.178.1

我真的不知道这些地址是从哪里来的。同一网络上的 Mac OS X 使用临时 IPv6 地址没有任何问题。除了这是一个奇怪的问题之外,我认为 IPv6 地址的数量正在降低 Windows 上的网络性能。

有谁知道是什么引发了这种行为以及如何防止它。如果可能的话,我不想完全禁用临时 IPv6 地址。

答案1

有人知道是什么引发了这种行为以及如何防止它吗?

从 Brian 给您的链接中,“临时地址是为使用无状态地址自动配置的公共地址前缀生成的。”

更具体地说,每个进程都会生成一个资源请求,然后操作系统会进行交付。IPv6 SAA 定义在RFC 2462,但“临时 IPv6 地址”是由于 Windows 实施的RFC 4941。因此问题变成了哪个进程负责启动操作系统请求来打开具有这些隐私扩展的套接字。

为了回答你的问题,是什么引发了这种情况,让我们来看看硬件和软件。

操作系统

Windows 使用 中定义的参数管理临时地址netsh interface ipv6 show privacy。要修改netsh interface ipv6 set privacy ?

要检查它们在 Linux 机器上的设置,您可以检查 中的内核变量/proc/sys/net。您可以使用 找到适合您的发行版的相关值,sysctl -a --pattern ^net\..*ipv?6.*temp.*并使用 更改所需的变量sysctl -w foo.bar.var=<new value>(它应该在您的 Apple 机器上类似,请检查man sysctl

硬件/操作系统

您确实这样做了netstat -p TCPv6,但它可能不是 TCP 连接。

彼此间隔netstat -bes几分钟,看看 *v6 块之间有什么不同。

虽然我猜想这可能是硬件问题,因为 NIC 固件无法处理 ipv6,但更有可能是软件操作系统/进程引发了问题。如果是硬件问题,软件方面可能无法妥善处理会话中断,无法恢复上一个 IP 上的连接。因此,将其识别为软件问题并不一定能排除硬件问题。

软件/操作系统流程和服务

为此,使用以下方式查看网络流量http://www.nirsoft.net/utils/network_traffic_view.html来识别该过程。

因为这些地址按照定义是临时的,所以它们可以在进程结束后暂时保留,所以如果套接字立即关闭,您可能无法在 NTV 中看到当前正在运行且具有打开连接的进程。

为此使用 Process Explorer (http://live.sysinternals.com/tools/procexp.exe) 和差异突出显示(选项 > 差异突出显示持续时间 > 9),然后滚动到新进程(视图 > 滚动到新进程)。整行绿色/红色分别表示在过去 9 秒内创建或销毁的进程。

一旦您识别出该过程,如果它是浏览器或任何带有插件的应用程序,您将必须通过以安全模式启动浏览器并逐个启用插件来调试哪个插件或网站 javascript 可能导致问题。

答案2

由于 IPv6 地址标识符保持静态,因此出于安全原因,使用临时地址。临时地址是提供一定程度匿名性的 IPv6 接口标识符。这些地址可以随机生成并随时间变化。Windows 的 IPv6 协议默认为全局地址前缀创建临时地址。

我不建议禁用临时 IPv6 地址。但是,您可以使用以下命令和重新启动来禁用临时 IPv6 地址

netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled

在 Windows 10 和 Server 2016 中,您可以使用 PowerShell设置网络IPv6协议设置限制的 cmdlet:

# The computer always generates temporary addresses by using random numbers. 
Set-NetIPv6Protocol -UseTemporaryAddresses Always

# The computer generates temporary addresses by using the interface identifier. 
# You typically use this identifier for test purposes. 
Set-NetIPv6Protocol -UseTemporaryAddresses Counter

# The computer does not use temporary addresses. 
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled

# The computer uses temporary addresses.
Set-NetIPv6Protocol -UseTemporaryAddresses Enabled

要查找哪个进程正在使用临时地址,请检查 netstat 输出中本地地址列与临时地址匹配的项目:

netstat -p tcpv6 -o -f -b

如果没有找到任何内容,则需要使用跟踪工具,例如系统

要使用 SysMon 执行此操作,请创建一个包含以下文本的 XML 文件 IPv6.xml:

<Sysmon schemaversion="3.2">
<EventFiltering>
    <NetworkConnect onmatch="include">
        <SourceIsIpv6>true</SourceIsIpv6>
    </NetworkConnect>
</EventFiltering>
</Sysmon>

然后下载SysMon并安装配置文件:

SysMon -i IPv6.xml

这将在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational 下的 Windows 事件日志中记录 IPv6 连接

当监控完成时停止监控:

SysMon -u

如果按“事件 ID 3”进行过滤,您将获得网络事件,其详细信息如下:

Log Name:      Microsoft-Windows-Sysmon/Operational
Source:        Microsoft-Windows-Sysmon
Date:          9/01/2018 9:55:08 PM
Event ID:      3
Task Category: Network connection detected (rule: NetworkConnect)
Level:         Information
Keywords:      
User:          SYSTEM
Computer:      DESKTOP-RTTN04O
Description:
Network connection detected:
UtcTime: 2018-01-09 10:55:06.915
ProcessGuid: {14ab83bf-c0d9-5a52-0000-00102da40e00}
ProcessId: 3628
Image: C:\Windows\System32\svchost.exe
User: NT AUTHORITY\SYSTEM
Protocol: tcp
Initiated: true
SourceIsIpv6: true
SourceIp: 2001:8003:550d:d400:b81c:a2ed:f99a:b31f
SourceHostname: DESKTOP-RTTN04O.gateway
SourcePort: 55723
SourcePortName: 
DestinationIsIpv6: true
DestinationIp: 2001:8006:3510:393:0:0:0:25bb
DestinationHostname: 
DestinationPort: 443
DestinationPortName: https

相关内容