Windows VPS'te bir oyun sunucusu kurduğunuzda kimse bağlanamıyorsa suçlu neredeyse her zaman aynıdır: Windows güvenlik duvarı portu engelliyordur. Portu komutlarla nasıl açacağınızı aşağıda bulabilirsiniz; bu yol menülerde dolaşmaktan daha hızlıdır ve en önemlisi hata yapmadan kopyalayıp yapıştırılabilir.
VPS'te yapılandırmanız gereken bir modem ya da yönlendirici yoktur. Eğitimlerde göreceğiniz “port yönlendirme” (port forwarding) işlemini unutun: o, evdeki sunucular içindir. VPS'inizin kendine ait herkese açık bir IP adresi vardır; bu yüzden oyuncularınızla sunucunuz arasındaki tek engel Windows güvenlik duvarıdır.
PowerShell'i yönetici olarak açın
VPS'inize Uzak Masaüstü ile bağlanın (nasıl yapılacağını burada anlatıyoruz), Başlat düğmesine sağ tıklayın ve Terminal (Admin) ya da Windows PowerShell (Admin) seçeneğini seçin. Seçenekte “Admin” ibaresi yoksa komutlar bir izin hatasıyla başarısız olur.
Port açma: TCP ve UDP, gelen ve giden
Bu örnek 30120 portunu açar; numarayı ve adı kendinize göre değiştirin. Bloğun tamamını tek seferde yapıştırın:
$port = 30120
$ad = "Oyun sunucusu"
New-NetFirewallRule -DisplayName "$ad TCP $port (gelen)" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$ad UDP $port (gelen)" -Direction Inbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$ad TCP $port (giden)" -Direction Outbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$ad UDP $port (giden)" -Direction Outbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
Uyarlamak isterseniz diye her bölümün ne işe yaradığı:
-Direction Inbounddışarıdan gelen trafiktir (asıl ihtiyacınız olan budur),Outboundise dışarı çıkan trafiktir.-Protocol: TCP veya UDP. Bunlar birbirinin yerine kullanılamaz. Oyununuz UDP kullanıyorsa ve siz yalnızca TCP'yi açarsanız kimse giremez: en sık tekrarlanan hata budur.-LocalPort, sunucunuzun dinlediği porttur.-Profile Anykuralı üç ağ profilinin hepsine (etki alanı, özel ve ortak) uygular. VPS'te bağlantı genellikle “Public” (ortak) profilinde olduğu için bu önemlidir.
Giden kurallar gerekli mi? Windows Server'da giden trafiğe varsayılan olarak izin verilir; bu yüzden normalde gerekmez. Zarar vermedikleri için ve biri daha önce güvenlik duvarını sıkılaştırdıysa tam da eksik olan şey bunlar olacağı için eklenmişlerdir.
Port aralığı için
New-NetFirewallRule -DisplayName "Oyun UDP 7777-7778 (gelen)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any
Virgülle ayrılmış bir liste de kullanabilirsiniz: -LocalPort 27015,27020.
Kuralların doğru oluşturulduğunu kontrol etme
Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
$f = $_ | Get-NetFirewallPortFilter
[pscustomobject]@{
Kural = $_.DisplayName
Etkin = $_.Enabled
Yon = $_.Direction
Eylem = $_.Action
Protokol = $f.Protocol
Port = $f.LocalPort
}
} | Format-Table -AutoSize
Dört kuralın tamamı listelenmeli; Enabled (Etkin) değeri True, Action (Eylem) değeri Allow olmalıdır.
Sunucunuzun dinlediğini kontrol etme
Arkasında dinleyen bir şey yoksa portu açmanın hiçbir faydası olmaz. Oyun sunucusu çalışırken:
Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint -LocalPort 30120
Hiçbir sonuç dönmüyorsa sorun güvenlik duvarında değildir: sunucunuz başlamamış, çökmüş ya da başka bir porta ayarlanmıştır. Kurallarla oynamaya devam etmeden önce oyunun konsoluna bakın.
Bir kuralı silme
Remove-NetFirewallRule -DisplayName "Oyun sunucusu TCP 30120 (gelen)"
Fareyle yapmayı tercih ederseniz
Win + R tuşlarına basın, wf.msc yazıp Enter'a basın. Sol bölmede Inbound Rules (Gelen Kuralları) → sağ sütunda New Rule… (Yeni Kural…) → Port (Bağlantı noktası) → TCP veya UDP seçin ve numarayı Specific local ports (Belirli yerel bağlantı noktaları) alanına yazın → Allow the connection (Bağlantıya izin ver) → üç profili de işaretli bırakın → kurala bir ad verin ve tamamlayın. İşlemi diğer protokol için tekrarlayın: bir kural yalnızca TCP'yi ya da UDP'yi kapsar, asla ikisini birden kapsamaz.
Hâlâ çalışmıyorsa
Şu sırayla kontrol edin; olasılıkları en hızlı eleyen sıra budur:
- Sunucu dinliyor mu? Yukarıdaki iki komutla kontrol edin. Açık ara en yaygın hata budur.
- Doğru protokolü mü açtınız? Oyunların yarısı UDP kullanır. Hem TCP'yi hem UDP'yi açarak şüpheden kurtulun.
- Sunucunun kendisinden mi deniyorsunuz? İçeriden her zaman çalışır. Başka bir bağlantıdan deneyin ya da birinden sunucuya girmesini isteyin.
- AntiDDoS filtreleme. Hizmetinizin sayfasındaki Güvenlik sekmesinde ağ filtreleri bulunur. Elle oluşturduğunuz filtreler varsa bunların oyununuzun portunu ve protokolünü kapsadığından emin olun.
Güvenlik duvarını asla tamamen kapatmayın, “denemek için” bile. Herkese açık IP adresi olan bir VPS, açıldıktan birkaç dakika sonra otomatik taramalarla karşılaşır. İhtiyacınız olan portları açın, geri kalanını kapalı bırakın.