本文受众:具备一定计算机基础,知道命令行是个啥子。

这是一篇附属文章,是对 RDP 使用指北的补充文章。
本文受众设备: Windows 10, Windows 11, Windows Server 2019, Windows Server 2022, Windows Server 2025

文章若有勘误,还请在评论区指正,还望谅解。

概述

以我的计算机的 IPv6 配置为例:

以太网适配器 (虚拟设备) Microsoft Network Interface Card Teaming Controller:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Network Adapter Multiplexor Driver
   物理地址. . . . . . . . . . . . . : ██-██-██-██-██-██
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . : 2409:████:███:████:████:████:████:████(首选)
   临时 IPv6 地址. . . . . . . . . . : 2409:████:███:████:████:████:████:████(首选)
   本地链接 IPv6 地址. . . . . . . . : fe80::████:████:███:████%12(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.25(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : fe80::1%12
                                       192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : █████████
   DHCPv6 客户端 DUID  . . . . . . . : ██-██-██-██-██-██-██-██-██-██-██-██-██-8A
   DNS 服务器  . . . . . . . . . . . : 2a07:a8c0::75:58eb
                                       2606:4700:4700::1111
                                       2400:3200::1
                                       2606:4700:4700::1001
                                       119.29.29.29
                                       8.8.8.8
                                       211.137.58.20
                                       1.1.1.1
   主 WINS 服务器  . . . . . . . . . : 192.168.1.1
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

*: 此文本已遮蔽部分敏感信息。
: 注:示例中的 DNS 列表仅为展示配置,实际生产环境不建议绝对不要设置过多 DNS 地址,会造成严重的性能问题。

关于临时 IPv6

由于众所周知的原因,IPv6 地址可以给几乎所有设备分配地址,所以带来了基于地址的隐私安全和暴露风险。为了解决这个问题,就产生了基于(伪)随机的 IPv6 地址规范来规避这种现象
临时 IPv6 地址最早于 RFC 4941 提出,后被 RFC 8981 所取代

临时 IPv6 地址具有以下特点:

  • 随机性:随机地址与 MAC 地址无关,具备;
  • 难预测性RFC 8981 要求,临时 IPv6 地址的生成应该具备统计学上的难以预测性;
  • 非长期性RFC 8981 要求,临时 IPv6 地址的使用应该是有期限的。

RFC 8981 要求,应该默认启用临时 IPv6 地址,而旧规范 RFC 4941 并未作此要求。

以下使用建议仅代表个人观点,仅供参考,应该根据实际情况做决定。
在下面的情况应该使用临时 IPv6 地址:

  • 保证隐私和避免追踪;
  • 需要对外发起连接且不希望被长期跟踪时
  • 家用客户端;
  • 你想要的时候。

在下面的情况不应使用临时 IPv6 地址:

  • 服务器,服务器的地址在可以的情况下应该具有持久性。(附注:Windows Server 默认禁用)
  • 特殊的防火墙规则。
  • 需要对外提供稳定的服务
  • 你不想用的时候。

临时地址与主地址在技术上均可作为出入站连接使用,操作系统在发起对外连接时,默认优先使用临时地址(Windows 的默认源地址选择策略),二者互不干扰

查看你的临时 IPv6 地址

命令行执行

1
ipconfig /all

在对应网络适配器查找 临时 IPv6 地址 的字段,可以参考上文中的示例。

临时 IPv6 地址管理

Windows 可以使用 NETSH 工具和 PowerShell 来管理临时 IPv6 地址

由于 NETSH 已进入维护状态,请优先使用 PowerShell 进行管理。

建议使用 Windows PowerShell 管理 Windows 和 Windows Server 中的网络技术,而不是 netsh

Windows NETSH

管理上下文位于 IPv6,管理临时地址的字段是 privacyNETSH 工具可以使用命令简写。

1
netsh interface ipv6

关于本管理上下文的 Microsoft 文档,参见 netsh interface | Microsoft Learn

NETSH 提示符

netsh interface ipv6>show pri
查询活动状态...

临时地址参数
---------------------------------------------
使用临时地址                        : enabled
重复地址检测次数                    : 3
最大有效寿命                        : 7d
最大首选寿命                        : 1d
重生成时间                          : 5s
最大随机时间                        : 10m
随机时间                            : 7m43s

netsh interface ipv6>set privacy
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。

用法: set privacy [[state=]enabled|disabled] [[maxdadattempts=]<integer>]
             [[maxvalidlifetime=]<integer>]
             [[maxpreferredlifetime=]<integer>]
             [[regeneratetime=]<integer>]
             [[maxrandomtime=]<integer>]
             [[store=]active|persistent]

参数:

       标记                   值
       state                - 是否已启用临时地址。
       maxdadattempts       - 重复地址检测尝试次数。
                              默认值是 5。
       maxvalidlifetime     - 临时地址最长有效生存时间。默认值是 7d (7 天)。
       maxpreferredlifetime - 首选临时地址最长生存时间。默认值是 1d (1 天)。
       regeneratetime       - 新地址生成时反对临时地址的时间。默认值是
                              5s (5 秒钟)。
       maxrandomtime        - 启动时计算随机数的延迟上限。默认值是
                              10m (10 分钟)。
       store                - 下列其中一个值:
                              active: 更改仅持续到下一次启动。
                              persistent: 更改持久有效(默认值).

说明: 修改关于临时地址生成的参数。如果指定了 randomtime,则不使用
      maxrandomtime。时间值可以为天、小时、分钟和秒,例如 1d2h3m4s。


netsh interface ipv6>

下面解释各个参数的用途

参数参考翻译接受类型解释
state启用文本 enabled \ disabledenabled(启用) 或 disabled(禁用) 临时地址生成。
maxdadattempts重复地址检测尝试次数Number在生成临时地址后,系统会执行重复地址检测(DAD)来确认该地址是否已被网络中的其他设备使用。若发生冲突,系统会尝试重新生成新地址。该参数控制生成过程中可尝试的最大次数。
maxvalidlifetime最大有效寿命时间控制临时地址可使用的最长时间。到期后地址销毁。
maxpreferredlifetime最大首选寿命时间控制临时地址可建立连接的最长时间。到期后不可使用该地址建立新连接,现有连接不受影响。
regeneratetime弃用临时地址之前何时生成新地址时间系统在弃用原有临时地址时,会在首选寿命之前,间隔一段时间,再生成新的临时地址。该时间间隔由该参数控制。
maxrandomtime启动时的最大随机延迟时间在可以生成临时地址之后(通常是系统启动、网络变化时)延迟生成的时间上限。
store持久性active \ persistent生成的临时地址持久性。active 参数要求系统再次启动时丢弃临时地址。persistent 参数则保留临时地址。

Examples.

要禁用临时 IPv6 地址:

1
netsh interface ipv6 set privacy state=disabled

反之,启用就是:

1
netsh interface ipv6 set privacy state=enabled

Windows PowerShell NetIPv6Protocol

若使用 PowerShell 进行设置,请另行参阅 cmdlet 文档 Set-NetIPv6Protocol
Set-NetIPv6Protocol (NetTCPIP) | Microsoft Learn

 System32  Get-NetIPv6Protocol

DefaultHopLimit               : 128
NeighborCacheLimit(Entries)   : 1024
RouteCacheLimit(Entries)      : 32768
ReassemblyLimit(Bytes)        : 133739168
IcmpRedirects                 : Enabled
SourceRoutingBehavior         : DontForward
DhcpMediaSense                : Enabled
MediaSenseEventLog            : Disabled
MldLevel                      : All
MldVersion                    : Version2
MulticastForwarding           : Disabled
GroupForwardedFragments       : Disabled
RandomizeIdentifiers          : Enabled
AddressMaskReply              : Disabled
UseTemporaryAddresses         : Enabled
MaxTemporaryDadAttempts       : 3
MaxTemporaryValidLifetime     : 7.00:00:00
MaxTemporaryPreferredLifetime : 1.00:00:00
TemporaryRegenerateTime       : 00:00:05
MaxTemporaryDesyncTime        : 00:10:00
DeadGatewayDetection          : Enabled

 Administrator   System32      

注:以下仅列出与临时 IPv6 地址相关的参数,其他参数(如 DefaultHopLimit、NeighborCacheLimit 等)不在本文讨论范围内。
| 参数 | 参考翻
| MaxTemporaryValidLifetime | 有效的最长时间长度 | TimeSpan | 控制临时地址可使用的最长时间。到期后地址销毁。 |
| MaxTemporaryPreferredLifetime | 最大临时优先使用期限 | TimeSpan | 控制临时地址可建立连接的最长时间。到期后不可使用该地址建立新连接,现有连接不受影响。 |
| TemporaryRegenerateTime | 弃用临时地址(首选寿命)之前何时生成新地址 | TimeSpan | 表示在生成新地址后、旧临时地址被废弃之前的时间长度 |
| MaxTemporaryDesyncTime | 最大去同步时间 | TimeSpan | 最大去同步时间,用于在生成临时地址时引入随机延迟,避免多个设备同步更新地址导致隐私泄露。 |
| RandomizeIdentifiers | 生成接口标识符时是否使用随机值 | 文本 enabled \ disabled | 控制Windows操作系统在生成接口标识符(Interface Identifier,IID)时是否使用随机值。

Examples

禁用临时 IPv6 地址

1
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled

启用临时 IPv6 地址

1
Set-NetIPv6Protocol -UseTemporaryAddresses Enabled

参考