WireGuard VPN sunucusu wg-easy ile nasıl kurulur
wg-easy, bir web paneliyle birlikte WireGuard VPN sunucusu çalıştıran bir Docker uygulamasıdır. Panelde istemciler oluşturur, yapılandırma dosyalarını indirir veya telefonla QR kodu tarar ve hangi istemcilerin bağlı olduğunu görürsünüz. Bu rehber, güncel sürüm olan wg-easy v15'in bir Linux sunucusuna Docker Compose ile nasıl kurulacağını ve ilk cihazın nasıl bağlanacağını gösterir.
wg-easy v15 eski sürümlerden farklıdır. Yönetici parolası artık PASSWORD değişkeniyle iletilmez: PASSWORD veya PASSWORD_HASH ile başlatılan bir konteyner çalışmaz. Kullanıcı adı ve parola artık ilk başlatmada tarayıcıda belirlenir.
Gereksinimler
Genel IP adresi ve root veya sudo erişimi olan bir VPS yeterlidir. wg-easy hafiftir: kişisel bir VPN için 1 vCPU ve 1 GB RAM yeterlidir. Bu rehberdeki komutlar Ubuntu 24.04 LTS üzerinde doğrulanmıştır. wg-easy Docker içinde çalıştığı için bu komutlar Ubuntu 22.04, Debian 12, AlmaLinux 9 ve Rocky Linux 9'da da aynı şekilde çalışır.
Hiçbir şeyi elle kurmak istemiyorsanız, INTROSERV uygulama pazaryerinden wg-easy'nin hazır kurulu olduğu bir VPS sipariş edin ve doğrudan ilk başlatmaya geçin.
Docker'ı kurma
SSH ile sunucuya bağlanın ve resmi betikle Compose eklentisiyle birlikte Docker Engine'i kurun:
curl -fsSL https://get.docker.com | sudo sh
Docker ve Compose'un kurulu olduğunu kontrol edin:
sudo docker --version sudo docker compose version
docker-compose.yml dosyasını indirme
wg-easy, proje deposundaki resmi docker-compose.yml ile kurulur. Bunun için bir klasör oluşturun ve dosyayı indirin:
sudo mkdir -p /etc/docker/containers/wg-easy sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml
Dosyanın ana satırları imaj ve portlardır:
image: ghcr.io/wg-easy/wg-easy:15 ports: - "51820:51820/udp" - "51821:51821/tcp"
51820/udp portu WireGuard'ın kendisi tarafından, 51821/tcp portu ise web paneli tarafından kullanılır. 15 etiketi, güncellemelerin 15. sürüm içinde kalacağı anlamına gelir. Yapılandırma ve istemciler bir Docker biriminde (volume) saklanır; bu nedenle konteyner yeniden oluşturulduğunda korunur.
wg-easy'yi başlatma
Dosyanın bulunduğu klasöre gidin ve konteyneri başlatın:
cd /etc/docker/containers/wg-easy sudo docker compose up -d
Konteynerin çalıştığını kontrol edin:
sudo docker compose ps
STATUS sütununda Up, PORTS sütununda ise 51820/udp ve 51821/tcp portları görünmelidir.
Portu güvenlik duvarında açma
İstemciler sunucuya UDP 51820 portu üzerinden bağlanır. Sunucuda UFW etkinse bu porta izin verin:
sudo ufw allow 51820/udp
firewalld kullanan AlmaLinux ve Rocky Linux'ta şunu kullanın:
sudo firewall-cmd --permanent --add-port=51820/udp sudo firewall-cmd --reload
Web panelini açma
wg-easy v15, panele düz HTTP üzerinden giriş yapılmasına izin vermez. En basit güvenli yol, paneli bir SSH tüneli üzerinden açmaktır. Bilgisayarınızda şunu çalıştırın:
ssh -L 51821:localhost:51821 USER@SERVER_IP
Bu SSH oturumunu açık tutun ve tarayıcınızda http://localhost:51821 adresine gidin.
Erişime düz HTTP üzerinden de izin verebilirsiniz: docker-compose.yml dosyasında environment bloğunun yorumunu kaldırın, INSECURE=true olarak ayarlayın ve sudo docker compose up -d komutunu yeniden çalıştırın. Bu durumda panel parolası şifrelenmeden gönderilir; bu nedenle bu seçeneği yalnızca test için kullanın. Alan adıyla kalıcı erişim için paneli HTTPS'li bir ters proxy (reverse proxy) arkasına koyun.
İlk başlatmayı tamamlama
İlk başlatmada wg-easy bir kurulum sihirbazı açar. Karşılama ekranından sonra bir yönetici hesabı oluşturun: kullanıcı adı ve parola girin, ardından parolayı onaylayın.

Sihirbaz mevcut bir kurulumunuz olup olmadığını sorduğunda No seçeneğini seçin. Bu, yeni bir yapılandırma oluşturur.
Sonraki ekranda, istemcilerin bağlanmak için kullanacağı Host ve Port değerlerini belirtin. Host alanına, paneli SSH tüneli üzerinden açmış olsanız bile localhost değil, sunucunun genel IP adresini veya alan adını girin. Port değerini 51820 olarak bırakın. Suggest düğmesi, wg-easy'nin otomatik olarak algıladığı adresi doldurur.

Host alanındaki adres her istemcinin yapılandırmasına yazılır. Yanlış adres girerseniz istemciler bağlanamaz.
Sihirbaz tamamlandıktan sonra oluşturduğunuz kullanıcı adı ve parolayla giriş yapın.
İstemci oluşturma
Panelin ana sayfasında New Client düğmesine tıklayın, cihaz için bir ad girin (örneğin laptop veya phone) ve onaylayın. İstemci listede görünür. Yanında QR kodunu göstermek ve yapılandırma dosyasını indirmek için düğmeler bulunur.

Her cihaz için ayrı bir istemci oluşturun. Böylece diğerlerini etkilemeden bir cihazın erişimini devre dışı bırakabilir veya silebilirsiniz.
Cihaz bağlama
Cihazınıza resmi WireGuard uygulamasını kurun. Uygulama Windows, macOS, Android ve iOS için resmi WireGuard indirme sayfasında bulunur.
Telefonda WireGuard uygulamasını açın, QR kodla tünel eklemeyi seçin ve paneldeki kodu tarayın.

Bilgisayarda, panelden istemci yapılandırma dosyasını indirin ve WireGuard uygulamasında Import tunnel(s) from file ile içe aktarın. Ardından Activate düğmesine tıklayın.
Linux'ta wireguard-tools ve openresolv kurun. openresolv olmadan wg-quick komutu yapılandırma dosyasındaki DNS satırında hata verir. Ubuntu ve Debian'da:
sudo apt install wireguard-tools openresolv sudo wg-quick up ./CLIENT_NAME.conf
Linux'ta bağlantıyı kesmek için sudo wg-quick down ./CLIENT_NAME.conf komutunu çalıştırın.
Bağlantıyı kontrol etme
Tünel etkinken internetin hangi IP adresini gördüğünü kontrol edin:
curl -4 ifconfig.me
Komut sunucunuzun IP adresini döndürmelidir. Tarayıcıda herhangi bir IP kontrol sitesini de açabilirsiniz. wg-easy panelinde bağlı istemci son etkinliği ve trafiği gösterir.
İstemcileri yönetme
Tüm istemciler panelin ana sayfasında yönetilir. Her istemci, yanındaki anahtarla geçici olarak devre dışı bırakılabilir: cihaz listede kalır ancak yeniden etkinleştirene kadar bağlanamaz. Erişimi tamamen kaldırmak için istemciyi silin. Yapılandırma dosyası ve QR kodu hemen çalışmayı durdurur. Bir cihaz kaybolursa veya bir yapılandırma dosyası kopyalanmış olabilirse, o istemciyi silin ve yenisini oluşturun.
Bir şey çalışmazsa
Panel açılmazsa, konteynerin çalıştığını sudo docker compose ps ile kontrol edin ve günlüğe bakın:
sudo docker logs wg-easy
Panel açılıyor ancak giriş yapamıyor ve güvenli olmayan bağlantıyla ilgili bir mesaj görüyorsanız, paneli düz HTTP üzerinden açmışsınızdır. Yukarıdaki bölümdeki SSH tünelini kullanın.
İstemci bağlanamıyorsa, UDP 51820 portunun sunucu güvenlik duvarında ve varsa sağlayıcı panelinin güvenlik duvarında açık olduğunu kontrol edin. Ayrıca istemci yapılandırma dosyasını açıp Endpoint satırını kontrol edin: sunucunun genel adresini içermelidir. Yanlış bir adres içeriyorsa, Host kurulum sihirbazında hatalı girilmiştir.
Tünel etkin ancak cihazda internet yoksa, sunucu günlüğünü sudo docker logs wg-easy ile kontrol edin ve konteynerin resmi docker-compose.yml dosyasından, sysctls bölümünde değişiklik yapılmadan başlatıldığından emin olun.
Linux'ta wg-quick resolvconf ile ilgili bir hatayla başarısız olursa, cihaz bağlama bölümünde açıklandığı gibi openresolv kurun.
wg-easy'yi güncelleme
15. sürümün daha yeni bir derlemesini kurmak için yeni imajı indirin ve konteyneri yeniden oluşturun:
cd /etc/docker/containers/wg-easy sudo docker compose pull sudo docker compose up -d
İstemciler ve ayarlar Docker biriminde saklandığı için korunur.
wg-easy'yi durdurma ve kaldırma
VPN sunucusunu durdurmak için docker-compose.yml dosyasının bulunduğu klasörde şunu çalıştırın:
sudo docker compose down
Yapılandırma birimde kalır ve sudo docker compose up -d komutu sunucuyu aynı istemcilerle yeniden başlatır.
wg-easy'yi tüm istemciler ve anahtarlarla birlikte tamamen kaldırmak için -v seçeneğini ekleyin:
sudo docker compose down -v
sudo docker compose down -v komutundan sonra tüm istemci yapılandırmaları çalışmayı durdurur. VPN'i yeniden kullanmak için ilk başlatmayı tamamlamanız ve istemcileri yeniden oluşturmanız gerekir.