WireGuard VPN kurulumu: Ubuntu rehberi

📅 6 Şubat 2026Emre Karabulut
⏱️ Yaklaşık 10 dakikalık okuma süresi

WireGuard VPN Kurulumu: Ubuntu Rehberi

Günümüzde internet güvenliği ve gizliliği her zamankinden daha önemli. WireGuard, modern kriptografi tekniklerini kullanarak hızlı, güvenli ve kullanımı kolay bir VPN çözümü sunar. Geleneksel VPN protokollerine kıyasla daha az kod satırına sahip olması, hem denetimini kolaylaştırır hem de potansiyel güvenlik açıklarını azaltır. Bu rehberde, bir Ubuntu sunucusu üzerinde WireGuard VPN’i nasıl kuracağınızı ve bir Ubuntu istemcisini nasıl bağlayacağınızı adım adım anlatacağız.

Giriş: Neden WireGuard?

WireGuard, Linux çekirdeğine entegre edilmiş, son derece hızlı ve hafif bir VPN protokolüdür. Avantajları şunlardır:

  • Basitlik: Binlerce kod satırı yerine birkaç yüz satır kod ile çalışır. Bu, denetimini ve hata ayıklamasını kolaylaştırır.
  • Hız: Daha az karmaşık yapısı sayesinde diğer VPN protokollerinden (OpenVPN, IPsec) çok daha yüksek performans sunar.
  • Güvenlik: En son kriptografik ilkeleri kullanır ve güvenli bağlantılar sağlar.
  • Dolaşım: Ağ değişikliklerinde (örneğin Wi-Fi’dan mobil veriye geçiş) bağlantıyı kesmeden yeniden bağlanabilir.

Ön Gereksinimler

  • Ubuntu 20.04 LTS veya daha yeni bir sürüm çalıştıran bir sunucu (VPS veya fiziksel makine).
  • sudo ayrıcalıklarına sahip bir kullanıcı hesabı.
  • Temel Linux komut satırı bilgisi.
  • Sunucunuzun bir genel IP adresine sahip olması ve gerekli portların açık olması (varsayılan olarak UDP 51820).

Adım 1: Sunucu Kurulumu

Sistemi Güncelleyin

Herhangi bir kuruluma başlamadan önce sunucunuzun paket listesini güncelleyin ve yüklü paketleri yükseltin.

sudo apt update && sudo apt upgrade -y

WireGuard’ı Kurun

WireGuard, Ubuntu’nun standart depolarında bulunur, bu yüzden kurulumu basittir.

sudo apt install wireguard -y

Anahtar Çiftleri Oluşturun

WireGuard, her arayüz için bir özel anahtar ve bu özel anahtardan türetilen bir genel anahtar kullanır. Bu anahtarlar, güvenli iletişim için gereklidir. Önce /etc/wireguard dizinine gidin ve izinleri ayarlayın.

cd /etc/wireguard/
umask 077 # Oluşturulan dosyaların yalnızca sahibinin erişebilmesi için izinleri ayarlar

Şimdi sunucu için özel ve genel anahtarları oluşturalım:

wg genkey | sudo tee privatekey
sudo cat privatekey | wg pubkey | sudo tee publickey

Bu komutlar /etc/wireguard/privatekey ve /etc/wireguard/publickey dosyalarını oluşturacaktır. Bu anahtarları güvende tutun.

WireGuard Sunucu Yapılandırmasını Oluşturun (wg0.conf)

Şimdi sunucunun WireGuard arayüzü için yapılandırma dosyasını (wg0.conf) oluşturalım. Bu dosya, VPN tünelinin nasıl çalışacağını tanımlar.

sudo nano /etc/wireguard/wg0.conf

Aşağıdaki içeriği yapıştırın. [Sunucunun Oluşturduğu Özel Anahtar] kısmını, az önce oluşturduğunuz privatekey dosyasının içeriğiyle değiştirin. eth0 yerine sunucunuzun internete çıkan ağ arayüzünün adını yazmanız gerekebilir (genellikle eth0 veya enpXsX gibi).

[Interface]
PrivateKey = [Sunucunun Oluşturduğu Özel Anahtar]
Address = 10.0.0.1/24 # WireGuard iç ağı IP adresi
ListenPort = 51820 # Dinleme portu (değiştirebilirsiniz, ancak güvenlik duvarında da açmalısınız)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

PostUp ve PostDown komutları, VPN trafiğini NAT (Network Address Translation) aracılığıyla sunucunuzun internet bağlantısına yönlendirmek için kullanılır. Bu, istemcilerin internete sunucunuzun IP adresi üzerinden çıkmasını sağlar.

IP Yönlendirmeyi Etkinleştirin

Sunucunuzun VPN trafiğini doğru şekilde yönlendirmesi için IP yönlendirmeyi etkinleştirmeniz gerekir.

sudo nano /etc/sysctl.conf

Dosyanın sonuna aşağıdaki satırları ekleyin:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Dosyayı kaydedip kapatın (Ctrl+X, Y, Enter). Değişiklikleri uygulamak için:

sudo sysctl -p

Güvenlik Duvarını Yapılandırın (UFW)

Eğer UFW (Uncomplicated Firewall) kullanıyorsanız, SSH bağlantınıza ve WireGuard portuna izin vermeniz gerekir.

sudo ufw allow ssh
sudo ufw allow 51820/udp # WireGuard için dinleme portunuzu kullanın
sudo ufw enable
sudo ufw status # Güvenlik duvarı durumunu kontrol edin

UFW’yi yeni etkinleştirdiyseniz, bir uyarı alabilirsiniz. “y” yazarak onaylayın.

WireGuard Servisini Başlatın

Şimdi WireGuard arayüzünü başlatabilir ve sistem başlangıcında otomatik olarak başlaması için etkinleştirebilirsiniz.

sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0

Durum “active (exited)” gösteriyorsa bu normaldir, çünkü wg-quick@wg0 sadece arayüzü yapılandırır ve çalışmaya bırakır.

Adım 2: İstemci Kurulumu (Ubuntu Örneği)

Şimdi WireGuard VPN’inize bağlanacak bir istemci makinesini (başka bir Ubuntu bilgisayarını) yapılandıralım. Bu adımlar, genel olarak diğer Linux tabanlı istemciler için de benzer olacaktır.

Sistemi Güncelleyin ve WireGuard’ı Kurun

İstemci makinede de WireGuard’ı kurmanız gerekmektedir.

sudo apt update && sudo apt upgrade -y
sudo apt install wireguard -y

Anahtar Çiftleri Oluşturun

İstemci için de kendi özel ve genel anahtarlarını oluşturun.

cd /etc/wireguard/
umask 077
wg genkey | sudo tee client_privatekey
sudo cat client_privatekey | wg pubkey | sudo tee client_publickey

WireGuard İstemci Yapılandırmasını Oluşturun (wg0.conf)

Şimdi istemcinin wg0.conf dosyasını oluşturalım.

sudo nano /etc/wireguard/wg0.conf

Aşağıdaki içeriği yapıştırın. Aşağıdaki yer tutucuları kendi bilgilerinizle değiştirin:

  • [İstemcinin Oluşturduğu Özel Anahtar]: Az önce oluşturduğunuz client_privatekey dosyasının içeriği.
  • [Sunucunun Genel Anahtarı]: Sunucuda oluşturduğunuz publickey dosyasının içeriği.
  • [Sunucu Genel IP Adresi]: WireGuard sunucunuzun genel IP adresi.
[Interface]
PrivateKey = [İstemcinin Oluşturduğu Özel Anahtar]
Address = 10.0.0.2/24 # İstemcinin WireGuard iç ağı IP adresi (sunucu ile aynı /24 bloğundan ve sunucunun IP'sinden farklı olmalı)
DNS = 8.8.8.8, 8.8.4.4 # İsteğe bağlı DNS sunucusu (örneğin Google DNS)

[Peer]
PublicKey = [Sunucunun Genel Anahtarı]
Endpoint = [Sunucu Genel IP Adresi]:51820
AllowedIPs = 0.0.0.0/0, ::/0 # Tüm IPv4 ve IPv6 trafiğini VPN üzerinden yönlendir
PersistentKeepalive = 25 # NAT arkasındaki istemciler için bağlantıyı canlı tutar

Address alanında istemcinin iç VPN IP adresini belirtirsiniz. Her istemci için benzersiz bir IP adresi (örn. 10.0.0.2/32, 10.0.0.3/32 vb.) kullanmalısınız. AllowedIPs = 0.0.0.0/0, ::/0 ayarı, tüm internet trafiğini VPN tüneli üzerinden yönlendirecektir.

WireGuard İstemcisini Başlatın

İstemci yapılandırmasını kaydedip kapatın ve WireGuard arayüzünü başlatın:

sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0

Adım 3: Sunucuya İstemciyi Ekleme

İstemci kendi yapılandırmasına sahip olsa da, sunucu da bu istemcinin bağlanmasına izin vermek için yapılandırma dosyasını güncellemelidir.

Sunucu Yapılandırma Dosyasını Güncelleyin

WireGuard sunucusunda, /etc/wireguard/wg0.conf dosyasını açın:

sudo nano /etc/wireguard/wg0.conf

Dosyanın en altına, istemcinin genel anahtarını ve iç IP adresini içeren yeni bir [Peer] bölümü ekleyin. Her yeni istemci için ayrı bir [Peer] bloğu eklemeniz gerekir.

[Peer]
PublicKey = [İstemcinin Genel Anahtarı] # İstemcide oluşturduğunuz client_publickey içeriği
AllowedIPs = 10.0.0.2/32 # İstemcinin WireGuard iç IP adresi (tek bir IP belirtmek için /32)

Dosyayı kaydedip kapatın.

Sunucu Yapılandırmasını Yeniden Yükleyin

Sunucunun yeni istemci ayarlarını uygulayabilmesi için WireGuard servisini yeniden başlatın:

sudo systemctl restart wg-quick@wg0

Bağlantıyı Test Etme

Hem sunucuda hem de istemcide bağlantının başarıyla kurulduğunu doğrulamak için çeşitli testler yapabilirsiniz.

WireGuard Durumunu Kontrol Etme

Hem sunucuda hem de istemcide aşağıdaki komutu çalıştırarak WireGuard arayüzlerinin durumunu görebilirsiniz:

wg show

Her iki tarafta da peer bilgilerini görmeli ve latest handshake alanının güncellendiğini fark etmelisiniz. Bu, bağlantının aktif olduğunu gösterir.

Ping Testi

İstemciden sunucunun iç VPN IP adresine (10.0.0.1) ping atın:

ping 10.0.0.1

Sunucudan istemcinin iç VPN IP adresine (10.0.0.2) ping atın:

ping 10.0.0.2

Her iki durumda da başarılı yanıtlar almalısınız.

Genel IP Adresini Kontrol Etme (İstemcide)

Eğer istemci yapılandırmanızda AllowedIPs = 0.0.0.0/0 ayarını kullandıysanız, istemcinin tüm internet trafiği VPN tüneli üzerinden geçecektir. İstemcide genel IP adresinizi kontrol ederek bunu doğrulayabilirsiniz:

curl ifconfig.me

Bu komut, WireGuard sunucunuzun genel IP adresini döndürmelidir.

Diğer İstemciler (Windows, macOS, Android, iOS)

WireGuard’ın Windows, macOS, Android ve iOS için resmi uygulamaları bulunmaktadır. Bu platformlarda kurulum genellikle daha görsel arayüzler aracılığıyla yapılır:

  • WireGuard uygulamasını indirin ve kurun.
  • Yeni bir tünel oluşturun.
  • Anahtarlarınızı oluşturun (uygulama genellikle bunu sizin için yapar).
  • Yukarıdaki Ubuntu istemci yapılandırmasına benzer bir şekilde bir .conf dosyası oluşturun veya bir QR kodu kullanarak yapılandırmayı içe aktarın.

QR kodu ile yapılandırmayı kolaylaştırmak için sunucuda qrencode paketini kurabilirsiniz:

sudo apt install qrencode -y

Ardından, istemcinin yapılandırma dosyasını (örneğin client_wg0.conf) QR koduna dönüştürebilirsiniz:

qrencode -t ansiutf8 < /etc/wireguard/client_wg0.conf

Bu QR kodunu mobil WireGuard uygulamanızla tarayarak yapılandırmayı hızlıca içe aktarabilirsiniz.

Sorun Giderme

  • Bağlantı Kurulamıyor: Güvenlik duvarı ayarlarınızı (sunucu ve istemci) kontrol edin. WireGuard portunun (UDP 51820) açık olduğundan emin olun.
  • Anahtarlar: Genel ve özel anahtarların doğru yerlerde olduğundan ve doğru şekilde kopyalandığından emin olun.
  • IP Adresleri: İstemcinin iç IP adresinin sunucu yapılandırmasında AllowedIPs olarak doğru ayarlandığından ve istemcinin iç IP'sinin sunucu veya diğer istemcilerle çakışmadığından emin olun.
  • IP Yönlendirme: Sunucuda IP yönlendirmenin etkin olduğundan emin olun (sudo sysctl net.ipv4.ip_forward komutu 1 döndürmeli).
  • Loglar: Hem sunucuda hem de istemcide WireGuard servis loglarını kontrol edin: sudo journalctl -u wg-quick@wg0

Sonuç

Tebrikler! Ubuntu sunucunuzda WireGuard VPN'i başarıyla kurdunuz ve bir istemciyi bağladınız. Artık internet trafiğiniz şifreli ve güvenli bir tünel üzerinden geçiyor. WireGuard'ın sadeliği ve yüksek performansı sayesinde, kişisel veya kurumsal VPN ihtiyaçlarınız için mükemmel bir çözüm elde ettiniz. Daha fazla istemci eklemek için, her yeni istemci için bir anahtar çifti oluşturun, istemci yapılandırma dosyasını hazırlayın ve sunucudaki wg0.conf dosyasına yeni bir [Peer] bloğu ekleyerek sunucuyu yeniden başlatın.

155f52c7e9c3ea8a325b44ff056acd50611fa5e706241e72fc0165362c08111b?s=64&d=mm&r=g
Emre Karabulut
📊 Bu yazı 5 kez okundu.