菜单

andy.hu
发布于 2026-04-04 / 5 阅读
0

New-NetNat命令解释

New-NetNat 是 Windows PowerShell 中 NetNat 模块下的核心命令,用于在 Windows 系统上创建 网络地址转换(NAT) 规则,让内网(私有网段)设备通过本机公网(或外部网络)IP 共享上网。

一、核心作用

  • 内网共享上网:让内部私有 IP(如 192.168.x.x)通过本机外网 IP 访问互联网。

  • 虚拟化场景:Hyper-V 虚拟机、Docker 容器等内部网络访问外网的常用方式。

  • 软路由 / 网关:把 Windows 变成简易 NAT 网关。

二、完整语法

powershell

New-NetNat
  [-Name] <String>
  [-InternalIPInterfaceAddressPrefix <String>]
  [-ExternalIPInterfaceAddressPrefix <String>]
  [-InternalRoutingDomainId <String>]
  [-CimSession <CimSession[]>]
  [-ThrottleLimit <Int32>]
  [-AsJob]
  [-WhatIf]
  [-Confirm]
  [<CommonParameters>]

三、关键参数详解

  • -Name <String>(必填)

    NAT 实例名称(自定义标识,如 MyHyperVNAT)。

  • -InternalIPInterfaceAddressPrefix <String>(常用必填)

    内网网段(CIDR 格式),如 192.168.100.0/24

    只有该网段的流量会被 NAT 转发。

  • -ExternalIPInterfaceAddressPrefix <String>(可选)

    外部接口 / 公网网段(一般不指定,自动使用本机默认外网接口)。

四、典型用法示例

1. 基础 NAT(Hyper-V / 容器最常用)

powershell

# 为内网 192.168.200.0/24 创建 NAT
New-NetNat -Name "ContainerNAT" -InternalIPInterfaceAddressPrefix "192.168.200.0/24"

2. 多网卡 / 指定外网接口

powershell

# 先查看网卡别名
Get-NetAdapter | Select Name,InterfaceAlias,Status

# 创建 NAT(内网 10.0.0.0/8 走外网接口)
New-NetNat -Name "MyGateway" -InternalIPInterfaceAddressPrefix "10.0.0.0/8"

五、配套常用命令

powershell

# 查看已存在的 NAT
Get-NetNat

# 删除 NAT(按名称)
Remove-NetNat -Name "ContainerNAT"

# 启用系统 IP 转发(部分环境需要)
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 1 /f

六、适用系统

  • Windows 10 周年更新 +

  • Windows 11

  • Windows Server 2016+

七、注意事项

  • 一台 Windows 主机通常只能有一个活跃 NAT

  • 内网设备网关要指向 Windows 本机内网 IP(如 192.168.200.1)。

  • 相当于 Linux iptables -t nat -A POSTROUTING -s 内网 -j MASQUERADE

八、完整场景(Hyper-V 虚拟机)

  1. 新建内部虚拟交换机

  2. 为虚拟网卡设静态 IP:

    powershell

    New-NetIPAddress -IPAddress 192.168.200.1 -PrefixLength 24 -InterfaceAlias "vEthernet (InternalSwitch)"
    
  3. 创建 NAT:

    powershell

    New-NetNat -Name HyperVNAT -InternalIPInterfaceAddressPrefix 192.168.200.0/24
    
  4. 虚拟机设 IP:192.168.200.x,网关 192.168.200.1