Ana içeriğe geç
%50 indirim tüm planlarda, sınırlı süreyle. Başlangıç fiyatı $2.48/mo
12 min left
Güvenlik ve Ağ

VPS üzerinde WireGuard VPN nasıl kurulur

Pius Bodenmann Yazan Pius Bodenmann 12 dk okuma Güncelleyen Mir 12d ago
WireGuard VPN tunnel active on an Ubuntu VPS terminal and a phone client

Kendi barındırdığınız bir WireGuard VPN, dizüstü bilgisayarınıza ve telefonunuza kontrol ettiğiniz bir sunucuya giden şifreli bir yol sağlar. Sabit bir çıkış IP'si, güvenilmeyen Wi-Fi ağlarında güvenli erişim veya başka bir ağa özel bir rota istediğinizde işe yarar. Sizi anonim yapmaz: web siteleri hâlâ tek bir VPS adresi görür ve barındırma sağlayıcısı hâlâ alttaki ağı işletir.

Bu rehber, Ubuntu Server üzerinde tam tünelli bir IPv4 VPN kurar. WireGuard'ı kuracak, kısıtlayıcı izinlerle anahtar üretecek, yönlendirmeyi etkinleştirecek, güvenlik duvarı ve NAT kuralları ekleyecek, masaüstü ve mobil istemcileri bağlayacak ve tüneli doğrulayacaksınız. Aynı tasarım IPv6'yı da destekleyebilir, ancak yalnızca VPS yönlendirilmiş IPv6 alanına sahip olduktan ve IPv6 yönlendirmesi ile güvenlik duvarı kurallarını ayrıca yapılandırdıktan sonra.

WireGuard nedir?

WireGuard, şifrelenmiş IP paketlerini UDP üzerinden taşıyan modern, çoklu platform destekli bir VPN protokolü ve uygulamasıdır. WireGuard protokol belirtimi Belirtim, ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24 ve HKDF dahil olmak üzere sabit bir kriptografik ilkel kümesi tanımlar. Bilinçli olarak küçük tutulan bu tasarım, çok sayıda değiştirilebilir şifre paketi sunan protokollere kıyasla yapılandırmayı ve denetlemeyi kolaylaştırır.

WireGuard'da merkezi bir hesap sistemi ya da yerleşik bir kullanıcı dizini yoktur. Her cihaz, kendi anahtar çiftine, tünel adresine ve AllowedIPs kurallarına sahip bir eştir. Bir VPS üzerinde genellikle bir eş internete bakan ağ geçidi görevi görür, dizüstü bilgisayarlar ve telefonlar ise ona bağlantı başlatır.

Neden VPS üzerinde WireGuard?

  • Basit eş modeli: Her cihaz bir anahtar çifti ve bir eş kaydı alır.
  • Küçük saldırı yüzeyi: WireGuard, uzun bir eski seçenekler listesi sunmak yerine kompakt bir protokol ve sabit bir kriptografi paketi kullanır.
  • İyi performans: Linux'ta çekirdek entegrasyonu ve verimli kriptografi yüksek verim sağlayabilir; yine de sonuç CPU'ya, ağ kapasitesine, gecikmeye ve paket boyutuna bağlıdır.
  • Çoklu platform istemcileri: Windows 10 ve 11, macOS, Android ve iOS için resmi istemciler mevcuttur; Linux ve birkaç BSD sistemi ise yerel araçlar veya paketler sunar.
  • Dolaşım: Bir eş, yeni bir WireGuard kimliği almadan ağ ve kaynak IP adresi değiştirebilir; sunucu en son doğrulanmış uç noktayı öğrenir.
  • Net yönlendirme denetimi: AllowedIPs hem hangi hedeflerin tüneli kullanacağını hem de hangi tünel adreslerinin hangi eşe ait olduğunu belirler.

İlgili okuma: Cloudzy'nin VPN için VPS rehberi. Daha eski kurulumlar için bkz. Cloudzy'nin PPTP kurulum rehberi; güvenliğin önemli olduğu yeni bir VPN için PPTP'yi seçmeyin.

Manuel kurulumu atlayın: tek tıkla WireGuard

Teknik bir geçmişiniz yoksa ya da kurulumla kendiniz uğraşmak istemiyorsanız, Cloudzy tek tıkla WireGuard VPN kurulumu sunuyor. Bu rehberin geri kalanı manuel kurulumu, bu bölüm ise kısayolu anlatıyor.

  1. Cloudzy kontrol paneline giriş yapın.
  2. Uygulama listesinden WireGuard'ı seçin.
  3. İstediğiniz konumda, seçtiğiniz planla bir VPS oluşturun. Temel özelliklere sahip bir Ubuntu makinesi yeterlidir.

VPS'iniz hazır olduğunda giriş yapın ve yapılandırmanızı görüntülemek için şu komutu çalıştırın:

cat client.conf

Şuna benzer bir çıktı göreceksiniz:

Terminal output of cat client.conf on a one-click WireGuard VPS, showing the Interface and Peer blocks with the keys and endpoint redacted

Bu yapılandırmayı kullanarak PC'nizdeki WireGuard istemcisinde yeni bir tünel oluşturun; bağlantı hazır. Her ayrıntıyı anlamak istiyorsanız ya da tek tıklık imajın kapsamadığı bir kurguya ihtiyacınız varsa, aşağıdaki manuel kurulumla devam edin.

Ubuntu üzerinde WireGuard nasıl kurulur

Six-step WireGuard setup cycle around a VPS: install, generate keys, configure wg0 with 10.8.0.1/24, enable forwarding between wg0 and eth0, add firewall and NAT rules on UDP 51820, then start and verify the interface

Aşağıdaki komutlar güncel bir Ubuntu Server sürümü içindir. Bunları SSH üzerinden, sudo yetkisi olan bir kullanıcıyla çalıştırın. Güvenlik duvarı doğrulanana kadar SSH oturumunu açık tutun ve sağlayıcınız destekliyorsa önce bir VPS anlık görüntüsü alın.

Ön Koşullar

  • Genel bir IPv4 adresine sahip bir Ubuntu VPS
  • sudo yetkisi olan, root olmayan bir hesap
  • SSH erişimi ve VPS sağlayıcısının kurtarma konsolu bilgileri
  • Resmî WireGuard uygulamasına veya komut satırı araçlarına sahip bir istemci cihaz

İkinci bir Ubuntu sunucusuna ihtiyacınız yok. İstemci bir Windows PC, Mac, Linux dizüstü, Android telefon ya da iPhone olabilir.

Adım 1: WireGuard'ı kurun

sudo apt update
sudo apt install wireguard -y

Araçların kullanılabilir olduğunu doğrulayın:

wg --version

Adım 2: Sunucu anahtarlarını güvenle üretin

WireGuard dizinini oluşturun ve anahtar çiftini kısıtlayıcı bir umask ile üretin. Özel anahtar asla bir istemciye kopyalanmamalı ya da günlüklerde yer almamalıdır.

sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'

Anahtarları yapılandırma dosyalarına yapıştırmanız gerektiğinde görüntüleyin:

sudo cat /etc/wireguard/server.key
sudo cat /etc/wireguard/server.pub

Adım 3: Sunucu yapılandırmasını oluşturun

Arayüz yapılandırmasını açın:

sudo nano /etc/wireguard/wg0.conf

Aşağıdaki bloğu yapıştırın ve SERVER_PRIVATE_KEY yerine bir önceki adımdaki özel anahtarı yazın:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY

10.8.0.0/24 tünel ağı yalnızca bir örnektir. Erişmeniz gereken bir ev, ofis veya bulut ağıyla çakışıyorsa başka bir özel aralık seçin. SaveConfig = true satırını eklemeyin: arayüz kapanırken dosyayı yeniden yazabilir ve elle yaptığınız değişiklikleri silebilir.

sudo chmod 600 /etc/wireguard/wg0.conf

Adım 4: IPv4 yönlendirmesini etkinleştirin

VPS'in wg0 ile genel ağ arayüzü arasında paket yönlendirmesi yapması gerekir. Bu ayarı ayrı bir sysctl dosyasına koyun:

sudo nano /etc/sysctl.d/70-wireguard-routing.conf
net.ipv4.ip_forward = 1

Uygulayın ve doğrulayın:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf
sysctl net.ipv4.ip_forward

Bu, şurada anlatılan yönlendirme modelini izler: Ubuntu'nun WireGuard ağ geçidi rehberi. IPv6 için yönlendirilmiş bir IPv6 öneki, ayrı tünel adresleri, IPv6 yönlendirmesi ve IPv6 güvenlik duvarı kuralları gerekir; bu yol tamamlanmadan istemci trafiğini ::/0 adresine göndermeyin.

Adım 5: Güvenlik duvarı ve NAT kurallarını ekleyin

VPS'in genel arayüz adını bulun. Aşağıdaki çıktıda dev sözcüğünden sonraki değere bakın; yaygın adlar arasında eth0, ens3 ve enp1s0 vardır.

ip route show default

wg0.conf dosyasını yeniden açın ve aşağıdaki satırları [Interface] altına ekleyin. Genel arayüzünüzün adı farklıysa eth0 ifadesini her yerde değiştirin:

PostUp = iptables -I FORWARD 1 -i %i -o eth0 -j ACCEPT; iptables -I FORWARD 1 -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PreDown = iptables -D FORWARD -i %i -o eth0 -j ACCEPT; iptables -D FORWARD -i eth0 -o %i -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

UFW etkinse, durumuna dokunmadan önce SSH'a izin verin, ardından WireGuard'ın UDP portunu açın:

sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw status

UFW şu anda kapalıysa ve açmak istiyorsanız, önce OpenSSH kuralının var olduğunu doğrulayın. Sırf bu kuralları uygulamak için UFW'yi SSH üzerinden kapatıp yeniden açmayın; bu, önlenebilir bir kilitlenme riski yaratır.

Adım 6: WireGuard arayüzünü başlatın

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0 --no-pager
sudo wg show

Servis başarısız olursa, başka bir şeyi değiştirmeden önce journalctl çalıştırın:

sudo journalctl -u wg-quick@wg0 -n 50 --no-pager

WireGuard istemcisi ekleme

A VPS at 10.8.0.1/32 holding separate peer entries for a laptop, tablet, and phone, each with its own keypair and /32 tunnel address, its private key staying on the device, and a QR code marked as containing a private key

Her cihazın kendine ait bir anahtar çifti ve tünel IP'si olmalıdır. Bir istemci yapılandırmasını asla iki cihazda birden kullanmayın: yinelenen anahtarlar ve adresler yönlendirmeyi öngörülemez hale getirir ve temiz bir iptal işlemini engeller.

Adım 1: İstemci anahtarlarını üretin

Resmî masaüstü ve mobil uygulamalar, boş bir tünel oluşturduğunuzda anahtarları üretebilir. Linux istemcisinde şunu kullanın:

umask 077
wg genkey | tee client.key | wg pubkey > client.pub

client.key dosyasını o cihazda tutun. Sunucuya yalnızca client.pub dosyasını kopyalayın.

Adım 2: Sunucuda eşi ekleyin

sudo nano /etc/wireguard/wg0.conf

Bir eş bloğu ekleyin. CLIENT_PUBLIC_KEY yerine istemcinin genel anahtarını yazın:

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Address = 10.8.0.2/32 satırı, istemci tarafındaki tünel adresini atar. Sunucudaki [Peer] bloğunda ise AllowedIPs = 10.8.0.2/32, yönlendirme ve kaynak doğrulaması için o adresi bu eşle ilişkilendirir. Sonraki cihaz için 10.8.0.3/32 kullanın ve yinelenme olmadan artırarak devam edin.

sudo systemctl restart wg-quick@wg0

Adım 3: İstemci yapılandırmasını oluşturun

İstemcide client.conf dosyasını oluşturun ve tüm yer tutucuları değiştirin:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = VPS_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0 bunu bir IPv4 tam tüneline dönüştürür. Yalnızca VPN ağına erişmek için AllowedIPs = 10.8.0.0/24 kullanın. PersistentKeepalive ise NAT arkasındaki, boştayken bile eşlemesinin erişilebilir kalması gereken bir istemci için işe yarar; WireGuard hızlı başlangıç rehberi hızlı başlangıç rehberi çoğu eşin buna ihtiyaç duymadığını belirtir.

Adım 4: Yapılandırmayı içe aktarın

Kullan WireGuard istemci kurulum rehberi ile platformunuz için desteklenen istemciyi edinin.

  • Windows: Add Tunnel seçeneğini seçin, ardından client.conf dosyasını içe aktarın.
  • macOS: Import tunnel(s) from file seçeneğini seçip client.conf dosyasını belirtin.
  • Android veya iOS: Dosyayı içe aktarın ya da ondan üretilen bir QR kodu okutun.

client.conf dosyasının bulunduğu bir Ubuntu ya da Debian istemcisinde qrencode kurun ve dosyayı o istemcinin terminalinde görüntüleyin:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client.conf

QR kodu istemcinin özel anahtarını içerir. Yalnızca güvendiğiniz bir terminalde gösterin, ekran görüntüsü kaydetmeyin ve telefon içe aktardıktan sonra terminali temizleyin.

Adım 5: Tüneli doğrulayın

Tüneli etkinleştirin, istemciden trafik oluşturun ve VPS üzerinde şu kontrolleri çalıştırın:

sudo wg show
ip -brief address show wg0

Yakın zamanlı bir el sıkışma ve artan aktarım sayaçları, WireGuard'ın paket alışverişi yaptığını doğrular. Ardından istemciden tam tünel çıkışını doğrulayın:

curl -4 https://api.ipify.org; echo

Komut, VPS'in genel IPv4 adresini döndürmelidir. El sıkışma yoksa uç nokta adresini, UDP portunu, bulut güvenlik duvarını, UFW kuralını ve anahtarları kontrol edin. El sıkışma varken internet erişimi yoksa IP yönlendirmesini, genel arayüz adını, NAT kurallarını ve DNS'i kontrol edin.

WireGuard'ı Nginx arkasına koyabilir misiniz?

Uzak NGINX stream modülü belgeleri NGINX'in UDP trafiğini bir porttan diğerine nasıl aktarabildiğini açıklar; yani UDP/80 veya UDP/443 trafiğini UDP/51820'deki WireGuard'a yönlendirebilir. Bu bir UDP aktarımıdır, HTTP ters proxy'si değil. WireGuard'ı TCP ya da HTTPS'e dönüştürmez ve protokolü sıradan web trafiği gibi göstermez.

Çoğu kurulumda WireGuard'ın ListenPort değerini değiştirip ilgili UDP portunu açmak, NGINX eklemekten daha basittir. Bir ağ UDP'yi tamamen engelliyorsa ya da derin paket incelemesi yapıyorsa, NGINX üzerinden UDP aktarımı bu sorunu çözmez. WireGuard kısıtlamaları belgeleri WireGuard kısıtlamaları belgeleri, gizlemenin protokolün kapsamı dışında olduğunu belirtir.

VPS'i bir ev ağına bağlama

A VPS hub relaying a roaming laptop and phone to a home gateway over WireGuard, with full-tunnel 0.0.0.0/0 and split-tunnel 192.168.1.0/24 paths, PersistentKeepalive on the home peer, and a warning that two overlapping 192.168.1.0/24 networks cannot route cleanly

Bir VPS, gezici bir istemci ile evinizdeki bir cihaz arasında merkez görevi görebilir. Ev tarafındaki eş, VPS'e giden bir WireGuard bağlantısını kendisi başlatır; böylece evde genel bir IP'ye ihtiyaç kalmaz. NAT arkasındaysa o ev eşinde PersistentKeepalive ayarlayın.

Ev ağının tamamına ulaşmak, bir eş eklemekten fazlasını gerektirir. VPS üzerinde ev ağ geçidine ait eş kaydının AllowedIPs alanında ev alt ağı, örneğin 192.168.1.0/24, yer almalıdır. Tam tünel kullanan uzak bir istemci (AllowedIPs = 0.0.0.0/0) bu alt ağın trafiğini zaten VPS üzerinden gönderir; 192.168.1.0/24 satırını istemciye yalnızca bölünmüş tünel kullanıyorsanız ekleyin. Ev ağ geçidinin de WireGuard ile yerel ağ arasında trafiği yönlendirmesi gerekir. Ev yönlendiricisine bir rota ya da ev ağ geçidine dikkatle sınırlandırılmış bir NAT kuralı ekleyin. Önce çakışmayı kontrol edin: başka bir 192.168.1.0/24 ağına bağlı bir istemci, yeniden numaralandırma veya daha gelişmiş politika yönlendirmesi olmadan iki ağı birden düzgün yönlendiremez.

Kendi barındırdığınız WireGuard ile ticari VPN karşılaştırması

Kendi barındırmanız VPN'i kimin işlettiğini değiştirir, ama anonimliği kendiliğinden artırmaz. Kişisel bir VPS size sabit tek bir çıkış IP'si verir ve bunu bir barındırma ağıyla ilişkilendirmek kolaydır. Ticari bir hizmet ise genellikle paylaşımlı çıkış adresleri ve kolay konum değiştirme sunar, ancak onun politikalarına, işletim biçimine ve yayımladığı bağımsız denetimlere güvenmek zorundasınız.

WireGuard'ın kendisi hafiftir ve küçük bir VPS, tek bir kişi ile birkaç cihaz için çoğu zaman makul bir başlangıç noktasıdır. Sabit bir RAM ya da vCPU sayısını verim garantisi saymayın. Gerçek cihaz sayınız, bölgeniz, paket boyutunuz ve beklediğiniz bant genişliğiyle test edin; CPU doygunluğu, paket kaybı veya gecikme sınırlayıcı olmaya başlarsa boyutu büyütün.

Sabit ve size ait bir çıkış IP'si, uzaktan erişim veya sunucu üzerindeki denetim; konum seçeneği ve kolaylıktan daha önemliyse kendi barındırmanızı seçin. Çok sayıda ülke, paylaşımlı çıkışlar, geniş tüketici cihaz desteği ve arızalarla başkasının ilgilenmesini istiyorsanız ticari bir VPN seçin.

Karar ölçütüKendi barındırdığınız WireGuardTicari VPN
Maliyet modeliBir sunucu artı sizin yönetim zamanınızAbonelik, uzun süreli planlarda çoğunlukla indirimli
Çıkış konumlarıSunucu başına tek konumUygulamada çok sayıda konum mevcut
KurulumAnahtarları, yönlendirmeyi, güvenlik duvarı kurallarını ve istemcileri siz yapılandırırsınızUygulamayı kurup giriş yapmak
BakımYamaları, izlemeyi, yedeklemeyi ve sorun gidermeyi siz yaparsınızHizmeti sağlayıcı işletir
Gizlilik modeliSunucuyu siz denetlersiniz, ama barındırma sağlayıcısı yine de üst verileri görebilirSağlayıcının politikalarına ve yayımladığı bağımsız denetimlere güvenirsiniz
En uygunSabit kişisel çıkış IP'si, uzaktan erişim ve altyapı denetimiKonum değiştirme, düşük bakım yükü ve geniş cihaz desteği

Sonuç

Güvenilir bir WireGuard kurulumu beş şeye bakar: korunan özel anahtarlar, benzersiz eş adresleri, doğru AllowedIPs değerleri, çalışan yönlendirme ve NAT, bir de dinlenen UDP portu için bir güvenlik duvarı kuralı. Tünele güvenmeden önce hem el sıkışmayı hem de genel çıkış adresini doğrulayın ve kurulumdan sonra VPS'i yamalı tutun.

Sunucuyu elle kurmak istiyorsanız, temiz bir Cloudzy Ubuntu VPS çözümü. Kurulum adımlarını atlamayı tercih ederseniz, Cloudzy'nin tek tıkla WireGuard kurulumunu kullanın ve doğrudan istemci yapılandırması ile doğrulamaya geçin.

Sıkça Sorulan Sorular

WireGuard neden bir eş gösteriyor ama el sıkışma olmuyor?

Bir eş kaydı yalnızca yapılandırmanın yüklendiğini kanıtlar. El sıkışma olmaması genellikle istemcinin sunucuya ulaşamadığı ya da anahtarların eşleşmediği anlamına gelir. İstemcideki Endpoint değerini, sunucunun genel IP'sini, hem sağlayıcı güvenlik duvarında hem UFW'de UDP/51820 portunu ve her iki taraftaki genel anahtarları kontrol edin. Kontrolden önce istemciden trafik üretin, çünkü WireGuard boştayken sessizdir.

Tünel neden bağlanıyor ama internet erişimi kesiliyor?

El sıkışma olup internet erişimi olmaması genellikle şifrelemeyi değil yönlendirmeyi işaret eder. net.ipv4.ip_forward değerini doğrulayın, NAT kuralındaki genel arayüz adını teyit edin, FORWARD kurallarını kontrol edin ve DNS'i ham IP bağlantısından ayrı test edin. Ayrıca istemcideki AllowedIPs değerinin amaçladığınız tam tünel ya da bölünmüş tünel tasarımıyla uyuştuğundan emin olun.

İki cihaz tek bir WireGuard yapılandırmasını paylaşabilir mi?

Hayır. Her cihaza kendi özel anahtarını, genel anahtarını ve /32 tünel adresini verin. Bir yapılandırmayı yeniden kullanmak uç nokta ve rota çakışmalarına yol açar; ayrıca kaybolan bir cihazın erişimini, diğerini kesmeden iptal etmenizi engeller.

Her istemcinin PersistentKeepalive'a ihtiyacı var mı?

Hayır. NAT arkasındaki bir eşin, boşta kaldığı sürelerde eşlemesinin açık kalması gerekiyorsa ekleyin; bu telefonlarda, ev ağ geçitlerinde ve bazı kısıtlayıcı ağlarda sık görülür. Eş sık sık iletişim kuruyorsa ya da boştayken karşı tarafın ona ulaşmasına gerek yoksa eklemeyin.

Paylaş

Bloga göz at

Okumaya devam et.

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

2008'den beri bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.