目 录CONTENT

文章目录

Hyper-V NAT 网络 PowerShell 配置

JW
JW
2025-12-28 / 0 评论 / 0 点赞 / 5 阅读 / 0 字 / 正在检测是否收录...
  
# 1. 定义变量(你可以根据需要修改名称)
$SwitchName = "NAT-Switch"
$NatName = "NAT-Network"
$GatewayIP = "192.168.100.1"
$SubnetPrefix = "24" # 对应 255.255.255.0
$FullSubnet = "192.168.100.0/24"

write-host "正在开始配置 Hyper-V NAT 网络..." -ForegroundColor Cyan

# 2. 清理环境(删除同名的旧交换机和所有现有 NAT 规则,防止冲突)
Get-VMSwitch -Name $SwitchName -ErrorAction SilentlyContinue | Remove-VMSwitch -Force
Get-NetNat | Remove-NetNat -Confirm:$false -ErrorAction SilentlyContinue

# 3. 创建内部虚拟交换机
New-VMSwitch -Name $SwitchName -SwitchType Internal
write-host "1. 虚拟交换机 [$SwitchName] 创建成功。" -ForegroundColor Green

# 4. 获取新交换机的网卡索引 (InterfaceIndex)
$Index = (Get-NetAdapter | Where-Object Name -Like "*$SwitchName*").ifIndex

# 5. 为网关分配 IP 地址
New-NetIPAddress -IPAddress $GatewayIP -PrefixLength $SubnetPrefix -InterfaceIndex $Index
write-host "2. 网关 IP [$GatewayIP] 已绑定到索引为 $Index 的网卡。" -ForegroundColor Green

# 6. 创建 NAT 转换规则
New-NetNat -Name $NatName -InternalIPInterfaceAddressPrefix $FullSubnet
write-host "3. NAT 网络 [$NatName] 配置完成,网段为 $FullSubnet。" -ForegroundColor Green

write-host "`n配置已全部完成!请在虚拟机中手动设置 IP: 192.168.100.x,网关: 192.168.100.1" -ForegroundColor Yellow

端口转发

# 定义变量
$NatName = "NAT-Network"
$VMIP = "192.168.100.2"

# 转发 SSH (22 端口)
Add-NetNatStaticMapping -NatName $NatName -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress $VMIP -InternalPort 22 -ExternalPort 22

# 转发 HTTP (80 端口)
Add-NetNatStaticMapping -NatName $NatName -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress $VMIP -InternalPort 80 -ExternalPort 80

# 转发 HTTPS (443 端口)
Add-NetNatStaticMapping -NatName $NatName -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress $VMIP -InternalPort 443 -ExternalPort 443

write-host "端口转发配置完成!" -ForegroundColor Green

查看、删除转发

查看所有转发规则

Get-NetNatStaticMapping

删除特定规则 (例如删除 22 端口转发):

Get-NetNatStaticMapping | Where-Object {$_.ExternalPort -eq 22} | Remove-NetNatStaticMapping

删除所有转发规则

Get-NetNatStaticMapping | Remove-NetNatStaticMapping

0

评论区