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.
- Cloudzy kontrol paneline giriş yapın.
- Uygulama listesinden WireGuard'ı seçin.
- İ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:
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
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
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
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 WireGuard | Ticari VPN |
|---|---|---|
| Maliyet modeli | Bir sunucu artı sizin yönetim zamanınız | Abonelik, uzun süreli planlarda çoğunlukla indirimli |
| Çıkış konumları | Sunucu başına tek konum | Uygulamada çok sayıda konum mevcut |
| Kurulum | Anahtarları, yönlendirmeyi, güvenlik duvarı kurallarını ve istemcileri siz yapılandırırsınız | Uygulamayı kurup giriş yapmak |
| Bakım | Yamaları, izlemeyi, yedeklemeyi ve sorun gidermeyi siz yaparsınız | Hizmeti sağlayıcı işletir |
| Gizlilik modeli | Sunucuyu siz denetlersiniz, ama barındırma sağlayıcısı yine de üst verileri görebilir | Sağlayıcının politikalarına ve yayımladığı bağımsız denetimlere güvenirsiniz |
| En uygun | Sabit kişisel çıkış IP'si, uzaktan erişim ve altyapı denetimi | Konum 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.
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.