# Windows VDS'te Hyper-V sanal makineleri çalıştırın

> Windows VDS'e Hyper-V kurun, konuklara NAT anahtarıyla internet erişimi verin, ISO'dan Generation 2 sanal makine oluşturun ve dışarıdan ona port yönlendirin.

Zorluk: İleri

İç içe sanallaştırma bir Windows VDS'in **Hyper-V** çalıştırmasını sağlar; böylece sunucunuzun içinde test makineleri, laboratuvarlar veya yalıtılmış ortamlar barındırabilirsiniz. Bu rehber Hyper-V'yi kurar, konuklar için bir NAT ağı oluşturur (VDS'inizin tek bir genel adresi vardır), ISO'dan bir sanal makine oluşturur ve bir konuk hizmetine dışarıdan ulaşılmasını sağlar. Önce iç içe sanallaştırmayı hızlıca kontrol etmek için bkz. [VDS ve iç içe sanallaştırma](/guides/vds-nested-virtualization).

## Başlamadan önce

- Windows Server 2022 veya 2025 çalışan bir **VDS** ya da nested dedicated sunucu; VPS paketleri iç içe sanallaştırma sunmaz.
- Yönetici olarak Uzak Masaüstü erişimi.
- Sunucuya kopyalanmış, konuk için bir kurulum ISO'su; örneğin `C:\ISO\ubuntu-24.04-live-server-amd64.iso`.
- Konuğun sanal diski için yeterli boş disk alanı.

Örneklerde NAT ağı `192.168.100.0/24`, ağ geçidi `192.168.100.1` ve konuğun adresi `192.168.100.10`'dur.

## 1. adım: Hyper-V'yi kurun

PowerShell'i yönetici olarak açın:

```powershell
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
```

Sunucu yeniden başlar. Uzak Masaüstü ile yeniden bağlanın.

**Doğrulama:** `Get-WindowsFeature -Name Hyper-V` `[X]` (kurulu) gösterir ve **Hyper-V Manager** açılır.

## 2. adım: NAT ağını oluşturun

Bir dahili anahtar oluşturun, sunucuya bu anahtarda ağ geçidi adresini verin ve ağ için NAT'ı açın:

```powershell
New-VMSwitch -SwitchName "NATSwitch" -SwitchType Internal
Get-NetAdapter -Name "vEthernet (NATSwitch)"
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NATSwitch)"
New-NetNat -Name "VMNAT" -InternalIPInterfaceAddressPrefix 192.168.100.0/24
```

Windows **sunucu başına tek bir NAT ağını** destekler; `New-NetNat` zaten bir tane olduğu için başarısız olursa `Get-NetNat` ile kontrol edin.

**Doğrulama:** `Get-NetNat`, `VMNAT` ağını `192.168.100.0/24` önekiyle listeler.

> **Uyarı**
>
> Sunucunun genel ağ bağdaştırıcısı üzerinde **harici** (external) bir anahtar oluşturmayın. Bu, sunucunun bağlantısını anahtara taşır ve konuklar genel ağda kendi MAC adresleriyle görünür. NAT ağını kullanın.

## 3. adım: Generation 2 sanal makine oluşturun

Sanal makineyi yeni bir sanal diskle oluşturun, ISO'yu bağlayın ve ondan açılmasını sağlayın:

```powershell
New-VM -Name "ubuntu1" -Generation 2 -MemoryStartupBytes 4GB -NewVHDPath "C:\VMs\ubuntu1.vhdx" -NewVHDSizeBytes 40GB -SwitchName "NATSwitch"
Set-VMProcessor -VMName "ubuntu1" -Count 2
Add-VMDvdDrive -VMName "ubuntu1" -Path "C:\ISO\ubuntu-24.04-live-server-amd64.iso"
Set-VMFirmware -VMName "ubuntu1" -FirstBootDevice (Get-VMDvdDrive -VMName "ubuntu1")
```

Secure Boot kullanan **Linux** konuklarda sanal makineyi Microsoft UEFI sertifika yetkilisi şablonuna geçirin (Windows konuklar varsayılanı korur):

```powershell
Set-VMFirmware -VMName "ubuntu1" -SecureBootTemplate MicrosoftUEFICertificateAuthority
```

Sanal makineyi başlatın ve konsolunu açın:

```powershell
Start-VM -Name "ubuntu1"
vmconnect.exe localhost "ubuntu1"
```

## 4. adım: Konuğun ağını yapılandırın

Konuk işletim sistemini kurun. Kurulum ağı sorduğunda onu **elle** ayarlayın, çünkü NAT ağında DHCP yoktur:

| Ayar | Değer |
|---|---|
| Adres | `192.168.100.10/24` |
| Ağ geçidi | `192.168.100.1` |
| DNS sunucuları | genel çözümleyiciler, örneğin `1.1.1.1` ve `9.9.9.9` |

**Doğrulama:** konukta `ping -c 3 1.1.1.1` ve `ping -c 3 example.com` yanıt alır.

## 5. adım: Konuğa dışarıdan ulaşın

Bir konuk portunu sunucunun bir portunda yayınlayın. Bu örnek sunucunun `2222` portunu konuktaki SSH'ye yönlendirir:

```powershell
Add-NetNatStaticMapping -NatName "VMNAT" -Protocol TCP -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 -InternalIPAddress 192.168.100.10 -InternalPort 22
New-NetFirewallRule -DisplayName "Guest SSH 2222" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2222 -Profile Any
```

Bilgisayarınızdan `ssh -p 2222 kullanici@203.0.113.10` (VDS'in genel adresi) ile bağlanın. Eşlemeleri `Get-NetNatStaticMapping` ile listeleyin, birini `Remove-NetNatStaticMapping` ile kaldırın.

## Sorun giderme

**`Install-WindowsFeature`, işlemcide sanallaştırma yetenekleri olmadığı için Hyper-V'nin kurulamayacağını bildiriyor.** Uzantılar sunucuya görünmüyor; bkz. [iç içe sanallaştırma sorunları](/guides/nested-virtualization-problems).

**Sanal makine ISO'dan açılmıyor veya "The image's hash and certificate are not allowed" gösteriyor.** Linux konuklarda `MicrosoftUEFICertificateAuthority` şablonunu ayarlayın (3. adım). Açılış sırasını `Get-VMFirmware -VMName "ubuntu1"` ile kontrol edin.

**Konuğun interneti yok.** Konuğun adresini, ağ geçidini ve DNS'ini (4. adım) ve sunucuda `Get-NetNat` çıktısını kontrol edin. Yalnızca bir NAT ağı olabilir.

**Yönlendirilen port yanıt vermiyor.** Eşlemeyi (`Get-NetNatStaticMapping`), sunucudaki güvenlik duvarı kuralını ve konuğun kendi güvenlik duvarını kontrol edin. Sunucunun kendisinden değil, dışarıdan deneyin.

**Konuklar yavaş.** İç içe konukların ek yükü vardır. Onlara sabit bellek verin, vCPU sayısını makul tutun ve içlerinde ağır disk işinden kaçının.

## Sonraki adımlar

- Windows içinde Linux araçları: [Windows Server'da WSL 2](/guides/wsl2-on-windows-server).
- Bir şey başlamıyor mu: [iç içe sanallaştırma sorunları](/guides/nested-virtualization-problems).

## Sık sorulan sorular

### Neden harici anahtar değil de NAT?

Harici anahtar konukları sunucunun ağına köprüler; orada her konuğun kendi genel adresi olması gerekir. Tek adresle bir NAT ağı bu adresi paylaştırır: konuklar internete çıkar, siz de gereken portları port eşlemeleriyle yayınlarsınız.

### Konuklar IP adreslerini otomatik alır mı?

Hayır. Windows NAT adres dağıtmaz; bu yüzden her konuğa NAT ağında statik bir IP adresi, varsayılan ağ geçidi olarak NAT ağ geçidini ve DNS sunucularını verin.

### Bir konuğa kendi genel IP adresini verebilir miyim?

Ek bir IPv4 adresi sipariş edin ve kurmadan önce adresin sunucunuza nasıl yönlendirildiğini bir destek talebiyle bize sorun; kurulum, adresin sunucuya nasıl ulaştığına bağlıdır.

### Kaç sanal makine çalıştırabilirim?

VDS'in belleği, vCPU'ları ve diski ne kadar izin veriyorsa. Sunucunun kendisi için bellek bırakın ve iç içe konukların sunucudan daha yavaş çalıştığını unutmayın.

---

Kaynak: <https://hyperdc.com/tr/guides/products/hyper-v-on-windows-vds>\
Son güncelleme: 2026-10-15
