WireGuard VPN kurulumu: Ubuntu rehberi

📅 28 Ocak 2026Emre Karabulut
⏱️ Yaklaşık 8 dakikalık okuma süresi






WireGuard VPN Kurulumu: Kapsamlı Ubuntu Rehberi


WireGuard VPN Kurulumu: Kapsamlı Ubuntu Rehberi

Modern ağ altyapılarında güvenli ve hızlı iletişim, kritik öneme sahiptir. Bu bağlamda WireGuard, performans, basitlik ve güvenlik açısından dikkat çeken yeni nesil bir VPN çözümüdür. Bu rehberde, Ubuntu sunucusu ve istemcisi üzerinde WireGuard VPN’i adım adım nasıl kuracağınızı ve yapılandıracağınızı anlatacağız.

WireGuard, geleneksel VPN protokollerine (IPsec, OpenVPN) kıyasla daha az kod satırına sahip olması, daha hızlı bağlantı kurması ve daha iyi performans sunmasıyla bilinir. Özellikle mobil cihazlar ve sık sık ağ değiştiren kullanıcılar için kesintisiz bağlantı deneyimi sunar.

Gereksinimler

  • Bir Ubuntu Server (VPN sunucusu olarak görev yapacak).
  • Bir Ubuntu Client (VPN istemcisi olarak bağlanacak).
  • Her iki makinede de sudo yetkisine sahip bir kullanıcı.
  • Sunucu için statik bir genel IP adresi (veya bir alan adı).

1. WireGuard Sunucusunu Yapılandırma

1.1. WireGuard Kurulumu

Sunucu tarafında gerekli paketleri kuralım. resolvconf paketi, istemcilerin DNS ayarlarını yönetmek için faydalıdır.


sudo apt update
sudo apt install wireguard resolvconf -y
    

1.2. Anahtar Çiftleri Oluşturma

WireGuard, iletişim için genel ve özel anahtar çiftleri kullanır. Bu anahtarlar, sunucu ve her bir istemci için ayrı ayrı oluşturulmalıdır.


# Sunucu için özel anahtar oluşturma
wg genkey | sudo tee /etc/wireguard/privatekey_server

# Özel anahtardan genel anahtar türetme (bu anahtarı istemcilere vereceğiz)
sudo cat /etc/wireguard/privatekey_server | wg pubkey | sudo tee /etc/wireguard/publickey_server
    

Bu komutlar, sunucu özel anahtarını /etc/wireguard/privatekey_server dosyasına ve genel anahtarını /etc/wireguard/publickey_server dosyasına kaydeder. Özel anahtarı kimseyle paylaşmayın!

1.3. IP Yönlendirmeyi Etkinleştirme

VPN istemcilerinin internete erişebilmesi için sunucuda IP yönlendirmeyi (IP Forwarding) etkinleştirmemiz gerekiyor.


sudo nano /etc/sysctl.conf
    

Açılan dosyada aşağıdaki satırı bulun ve başındaki # işaretini kaldırın (veya ekleyin):


net.ipv4.ip_forward=1
    

Kaydedip çıktıktan sonra, değişiklikleri uygulamak için aşağıdaki komutu çalıştırın:


sudo sysctl -p
    

1.4. WireGuard Yapılandırma Dosyası Oluşturma

Şimdi sunucunun WireGuard yapılandırma dosyasını /etc/wireguard/wg0.conf olarak oluşturalım. wg0, VPN arayüzümüzün adıdır.


sudo nano /etc/wireguard/wg0.conf
    

Dosyanın içeriği aşağıdaki gibi olmalıdır. Sunucu özel anahtarınızı (privatekey_server içeriği) ve VPN IP adresini ayarlayın. ListenPort varsayılan olarak 51820’dir.


[Interface]
PrivateKey = <BURAYA_SUNUCU_OZEL_ANAHTARINI_YAPIŞTIR>
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -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
    

Açıklamalar:

  • PrivateKey: /etc/wireguard/privatekey_server dosyasının içeriği.
  • Address: Sunucunun VPN tüneli içindeki IP adresi. 10.0.0.0/24, VPN tüneli için kullanılacak özel bir IP bloğudur. Sunucu, bu bloğun ilk IP’sini (10.0.0.1) alacaktır.
  • ListenPort: WireGuard’ın gelen bağlantıları dinleyeceği UDP portu.
  • PostUp/PostDown: Bu komutlar, WireGuard arayüzü açıldığında (PostUp) ve kapandığında (PostDown) çalıştırılır. İstemcilerin sunucu üzerinden internete çıkabilmesi için NAT (Network Address Translation) ve IP yönlendirme kuralları eklenir. eth0 yerine sunucunuzun dışa dönük ağ arayüz adını kullanmanız gerekebilir (ip a komutuyla kontrol edebilirsiniz).

Şimdilik istemci eşlerini (Peer) eklemiyoruz. İstemci anahtarlarını oluşturduktan sonra buraya geri döneceğiz.

1.5. Güvenlik Duvarını Yapılandırma (UFW)

Eğer Ubuntu sunucunuzda UFW (Uncomplicated Firewall) kullanıyorsanız, WireGuard trafiğine izin vermeniz gerekir.


sudo ufw allow 51820/udp
sudo ufw allow OpenSSH # SSH bağlantınızın kesilmemesi için
sudo ufw enable # Eğer UFW etkin değilse
sudo ufw status
    

1.6. WireGuard Servisini Başlatma ve Etkinleştirme

Şimdi WireGuard servisini başlatabilir ve sistem başlangıcında otomatik olarak başlamasını sağlayabiliriz.


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

Durumu kontrol etmek için:


sudo systemctl status wg-quick@wg0
sudo wg show wg0
    

2. WireGuard İstemcisini Yapılandırma

2.1. WireGuard Kurulumu

İstemci tarafında da WireGuard’ı kurmalıyız:


sudo apt update
sudo apt install wireguard resolvconf -y
    

2.2. Anahtar Çiftleri Oluşturma

İstemci için de bir özel/genel anahtar çifti oluşturalım:


# İstemci için özel anahtar oluşturma
wg genkey | sudo tee /etc/wireguard/privatekey_client

# Özel anahtardan genel anahtar türetme (bu anahtarı sunucuya vereceğiz)
sudo cat /etc/wireguard/privatekey_client | wg pubkey | sudo tee /etc/wireguard/publickey_client
    

Bu adımda oluşturulan publickey_client içeriğini not alın. Sunucu yapılandırmasına ekleyeceğiz.

2.3. İstemci Yapılandırma Dosyası Oluşturma

İstemcinin WireGuard yapılandırma dosyasını /etc/wireguard/wg0.conf olarak oluşturalım.


sudo nano /etc/wireguard/wg0.conf
    

Dosyanın içeriği aşağıdaki gibi olmalıdır. İstemci özel anahtarınızı (privatekey_client içeriği), VPN IP adresini ve sunucu genel anahtarını ve genel IP adresini ayarlayın.


[Interface]
PrivateKey = <BURAYA_İSTEMCİ_OZEL_ANAHTARINI_YAPIŞTIR>
Address = 10.0.0.2/24
DNS = 8.8.8.8 # Veya kendi DNS sunucunuzun IP'si (örneğin 1.1.1.1, 9.9.9.9)

[Peer]
PublicKey = <BURAYA_SUNUCU_GENEL_ANAHTARINI_YAPIŞTIR>
Endpoint = <SUNUCUNUN_GENEL_IP_ADRESI_VEYA_HOST_ADI>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
    

Açıklamalar:

  • PrivateKey: /etc/wireguard/privatekey_client dosyasının içeriği.
  • Address: İstemcinin VPN tüneli içindeki IP adresi (10.0.0.2). Her istemci için benzersiz olmalıdır.
  • DNS: İstemcinin kullanacağı DNS sunucusu.
  • PublicKey: Sunucunun genel anahtarı (/etc/wireguard/publickey_server içeriği).
  • Endpoint: WireGuard sunucusunun genel IP adresi veya alan adı ve port numarası.
  • AllowedIPs: Bu ağdaki trafiğin VPN tüneli üzerinden gönderileceğini belirtir. 0.0.0.0/0, ::/0 tüm IPv4 ve IPv6 trafiğini VPN üzerinden yönlendirir. Sadece sunucuya veya belirli ağlara erişmek istiyorsanız, bu değeri değiştirebilirsiniz (örneğin, 10.0.0.1/32 sadece sunucuya).
  • PersistentKeepalive: İstemcinin NAT arkasında olması durumunda bağlantıyı canlı tutmak için periyodik sinyaller gönderir.

3. İstemciyi Sunucu Yapılandırmasına Ekleme

Şimdi sunucu tarafına dönmeli ve yeni oluşturduğumuz istemciyi /etc/wireguard/wg0.conf dosyasına bir “Peer” olarak eklemeliyiz.


sudo nano /etc/wireguard/wg0.conf
    

Dosyanın sonuna aşağıdaki bölümü ekleyin:


[Peer]
PublicKey = <BURAYA_İSTEMCİNİN_GENEL_ANAHTARINI_YAPIŞTIR>
AllowedIPs = 10.0.0.2/32
    

Açıklamalar:

  • PublicKey: İstemcinin genel anahtarı (/etc/wireguard/publickey_client içeriği).
  • AllowedIPs: Bu istemcinin VPN tüneli içindeki IP adresidir. /32, bu IP adresinin tek bir cihazı temsil ettiğini belirtir.

Sunucu yapılandırmasını güncelledikten sonra, WireGuard servisini yeniden başlatmalısınız:


sudo systemctl restart wg-quick@wg0
    

4. WireGuard İstemcisini Başlatma ve Test Etme

İstemci tarafında WireGuard servisini başlatın ve etkinleştirin:


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

Durumu kontrol etmek için:


sudo systemctl status wg-quick@wg0
sudo wg show wg0
    

Eğer her şey doğru yapılandırıldıysa, wg show wg0 komutu hem sunucuda hem de istemcide bağlı eşleri göstermelidir.

Bağlantıyı Test Etme:

İstemciden sunucunun VPN IP’sine ping atın:


ping 10.0.0.1
    

Eğer AllowedIPs = 0.0.0.0/0 ayarını kullandıysanız, istemcinizin genel IP adresinin sunucunuzun genel IP adresi olarak görünüp görünmediğini kontrol edin:


curl ifconfig.me
    

Bu komut, sunucunuzun genel IP adresini göstermelidir.

Sorun Giderme

  • Güvenlik Duvarı: Sunucunun 51820/udp portunun açık olduğundan emin olun.
  • Anahtarlar: Özel ve genel anahtarların doğru dosyalara kopyalandığından ve her bir Peer’ın doğru genel anahtara sahip olduğundan emin olun.
  • IP Adresleri: VPN tünelindeki IP adreslerinin çakışmadığından ve AllowedIPs ayarlarının doğru olduğundan emin olun.
  • IP Yönlendirme: Sunucuda IP yönlendirmenin etkin olduğundan emin olun (net.ipv4.ip_forward=1 ve sysctl -p).
  • Günlükler: Hata ayıklama için sistem günlüklerini kontrol edin:
    sudo journalctl -u wg-quick@wg0
  • Arayüz Durumu: Her iki tarafta da sudo wg show wg0 komutunun arayüzü ve eşleri doğru gösterdiğinden emin olun.

Sonuç

Tebrikler! Ubuntu üzerinde WireGuard VPN’i başarıyla kurdunuz ve yapılandırdınız. Artık güvenli ve hızlı bir şekilde iletişim kurabilirsiniz. Bu kurulumu istediğiniz kadar istemciyle genişletebilirsiniz, her yeni istemci için bir anahtar çifti oluşturup sunucu yapılandırmasına bir “Peer” olarak eklemeniz yeterlidir.


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