Kendi VPS Sunucunuzda WireGuard VPN Kurulumu
Linux VPS üzerinde WireGuard VPN kurulumunu adım adım öğrenin. wg0.conf yapılandırması, IP yönlendirme, NAT kuralları ve el sıkışma hatalarını giderme yöntemlerini inceleyin.
Ne inşa ediyorsunuz
Kendi sunucunuz üzerinde bir WireGuard VPN kurmak yaklaşık kırk satırlık bir yapılandırmadan ibarettir: bir anahtar çifti, bir arayüz dosyası, bir sysctl ayarı, bir NAT kuralı ve bir güvenlik duvarı istisnası. Kurulum oldukça basittir; bu nedenle rehberin büyük bir kısmı nelerin hata verebileceğine, anahtar izinlerine, AllowedIPs, yönlendirme (forwarding) ve DNS ayarlarına odaklanmaktadır.
WireGuard, Linux 5.6 sürümünden beri ana çekirdekte yer alan bir Katman 3 tünelidir; bu nedenle Ubuntu 24.04 ve Debian 13, harici bir modüle ihtiyaç duymadan bu özelliği destekler. Şifreleme algoritması müzakeresi, sertifika yetkilisi veya kullanıcı adı/parola adımı yoktur: bir eş (peer), bir genel anahtar ve bu anahtarın kullanabileceği IP adreslerinden oluşur. MAC kontrolünden geçemeyen paketler yanıt verilmeden düşürülür, bu sayede port taramalarına karşı yanıt üretilmez. Bunun dezavantajı ise bir kimlik doğrulama sunucusunun bulunmamasıdır; dolayısıyla erişimi kaldırmak için sunucudaki ilgili eşin silinmesi gerekir.
Önce sanallaştırma türünü kontrol edin
WireGuard, modül yüklenebilen bir çekirdeğe ihtiyaç duyar; KVM tabanlı bir VPS üzerinde doğrudan çalışır. Ana makinenin çekirdeğini paylaşan OpenVZ veya LXC gibi konteyner sanallaştırma teknolojilerinde ilk komut RTNETLINK answers: Operation not supported hatası verir ve bu durumda wireguard-go kullanıcı alanı (userspace) uygulamasına geçiş yapılması gerekir. Öncelikle sudo modprobe wireguard && echo ok ile kontrol sağlayın.
Anahtarları sızdırmadan oluşturma
Herkesin okuyabildiği bir /etc/wireguard/server.key, hiç VPN olmamasıyla aynı anlama gelir. Yaygın kullanılan umask 077 && wg genkey | sudo tee ... satırı işe yarar: sudoers dosyası varsayılan olarak kapalı olan umask_override ayarını etkinleştirmediği sürece, sudo kendi varsayılanı olan 0022 ile umask değerinizi birleştirir ve bunu asla düşürmez; bu nedenle tee tarafından oluşturulan dosya 600 modundadır. Anahtarları sızdıran durum, bu boru hattını (pipe) umask 077 olmadan, normal bir 022 umask değeri altında veya sudoers dosyasında umask_override ayarının açık olduğu bir sunucuda çalıştırmaktır. Dosya modunu açıkça belirtirseniz bu durum bir sorun teşkil etmez.
sudo apt update && sudo apt install -y wireguard nftables
sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key'
sudo sh -c 'wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'
sudo chmod 600 /etc/wireguard/server.keyİstemci anahtar çiftini aynı yöntemle oluşturun. wg genpsk, her yapılandırma dosyasında tek bir satır olarak yer alan isteğe bağlı bir ön paylaşımlı anahtar (pre-shared key) ekler.
Sunucu arayüzü: /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of /etc/wireguard/server.key>
[Peer]
PublicKey = <laptop public key>
PresharedKey = <psk, optional>
AllowedIPs = 10.8.0.2/32chmod 600; dosyanın herkes tarafından erişilebilir olduğuna dair bir başlangıç uyarısı, bu adımı atladığınız anlamına gelir. Address, tünel içindeki sunucu adresidir ve tüm VPN alt ağının maskesini taşır. Dış dünyada karşılaşmayacağınız bir aralık seçin; 192.168.1.0/24, istemcilerinizin arkasında bulunduğu ev yönlendiricilerinin yarısıyla çakışır ve bu durumda tünel, yerel rotaya karşı sessizce devre dışı kalır.
Bir eşin (peer) sunucu tarafındaki AllowedIPs değeri bir /32'dir; yani o istemcinin sahip olduğu tek tünel adresidir. İki eşe aynı izin verilen IP adresini (AllowedIPs) atarsanız, trafik en son yapılandırılan eşe yönlendirilir ve ilki, herhangi bir hata mesajı üretilmeksizin trafik almayı durdurur. SaveConfig değerini boş bırakın; aksi takdirde wg-quick down bu dosyayı canlı durumdan yeniden yazar.
Sunucuyu yönlendiriciye dönüştürme
Bir Linux sunucusu, kendisine gönderilmeyen paketleri düşürür. Varsayılan olarak paket yönlendirme ve kaynak NAT devre dışıdır.
printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\n' \
| sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sysctl net.ipv4.ip_forwardHam bir sysctl -w komutu bir sonraki yeniden başlatmaya kadar çalışır ve ardından sessizce durur. NAT işlemi için wg0 değil, internete erişimi sağlayan çıkış arayüzü (egress interface) olan ağ kartı gereklidir. eth0 değerini varsaymayın; güncel imajlar enp1s0 veya ens3 gibi isimler kullandığından, kendi değerinizi ip route show default üzerinden alın.
Güvenlik duvarı: port ve yönlendirme yolu
Tek bir nftables dosyası hem filtreleme hem de NAT işlemlerini kapsar. /etc/nftables.conf komutunu yazmak mevcut kural kümesini sıfırlar; bu nedenle ufw veya Docker tarafından yönetilen bir sunucuda bu adımı atlayın.
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
iif lo accept
tcp dport 22 accept
udp dport 51820 accept
}
chain forward {
type filter hook forward priority filter; policy drop;
ct state established,related accept
iifname "wg0" oifname "enp1s0" accept
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
ip saddr 10.8.0.0/24 oifname "enp1s0" masquerade
}
}İkinci bir SSH oturumunu açık tutarak sudo systemctl enable --now nftables ile kuralı uygulayın: policy drop komutundaki bir yazım hatası, sunucunuza erişiminizi tamamen kesebilir. Yönlendirme zincirinin (forward chain) neleri engellediğine dikkat edin; wg0 ile wg0 arasındaki trafik buna örnektir. Eşler (peers) internete erişebilir ancak birbirlerine erişemezler; eşler arası bir VPN için iifname "wg0" oifname "wg0" accept kuralını ekleyin. Bir eşin sunucunun kendisine erişip erişemeyeceği bu zincirin görevi değildir: sunucuya hedeflenen paketler input kancasından geçer, forward zincirine asla uğramaz. Bu nedenle input zinciri karar vericidir ve mevcut haliyle bir eşin yalnızca SSH'e erişmesine izin verir; 10.8.0.1 adresine atılan bir ping dahi engellenir. Buraya iifname "wg0" icmp type echo-request accept kuralını ve yalnızca tünel üzerinden erişilebilir olmasını istediğiniz her servis için bir adet iifname "wg0" kuralını ekleyin. Bu, sunucunuz aynı zamanda tmux içinde Claude Code çalıştıran uzak geliştirme ortamı olarak kullanıldığında ve bu tarafı herkese açık hale getirmek istemediğinizde önem taşır.
ufw kullanılan bir sunucuda: ufw allow 51820/udp komutunu çalıştırın, /etc/default/ufw dosyasında DEFAULT_FORWARD_POLICY="ACCEPT" ayarını yapın ve /etc/ufw/before.rules dosyasının en üstüne bir *nat POSTROUTING MASQUERADE kuralı ekleyin.
systemd altında ayağa kaldırma
sudo systemctl enable --now wg-quick@wg0
sudo wg showwg-quick arayüzü oluşturur, adresleri ekler ve AllowedIPs üzerinden türetilen rotaları kurar. enable --now işin önemli kısmıdır: manuel olarak çalıştırılan bir wg-quick up wg0, bir sonraki yeniden başlatma sonrasında kaybolur; çekirdek güncellemeleri ise yeniden başlatma gerektirir. Bu yeniden başlatmalardan birinin ardından ayağa kalkamayan bir birim, birisi bağlanmaya çalışana kadar sessiz kalır. Bu nedenle, kendi ntfy sunucunuza işaret eden wg-quick@wg0 üzerindeki bir OnFailure= drop-in dosyası, durumu kilitli bir kullanıcıdan öğrenmek yerine telefonunuzdan duymanın en düşük maliyetli yoludur.
İstemci yapılandırması ve herkesin yanlış yaptığı ayar
[Interface]
PrivateKey = <laptop private key>
Address = 10.8.0.2/32
DNS = 10.8.0.1
[Peer]
PublicKey = <server public key>
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25AllowedIPs aynı anda iki farklı işi yapar ve bunları birbirine karıştırmak, WireGuard ile ilgili kafa karışıklıklarının çoğunun kaynağıdır.
Giden trafik için bu bir yönlendirme tablosudur. Hedefi bir eşin AllowedIPs değeriyle eşleşen paket şifrelenir ve o eşe gönderilir. 0.0.0.0/0, ::/0 her şeyi tünel üzerinden gönderir; bu tam tüneldir ve sunucuyu varsayılan yol yapar. Ayrık tünel ise daha dar bir listedir: AllowedIPs = 10.8.0.0/24, 10.20.0.0/16 VPN trafiğini ve sunucunun arkasındaki bir özel ağı taşır, diğer her şey yerel yolunu kullanmaya devam eder. Bu dar liste, servisleri genel internetten tamamen uzak tutmanızı sağlar; bir VPS üzerinde özel Nextcloud örneği tünel adresine bağlandığında veya aynı makinede çalışan iç içe sanallaştırma laboratuvarı VM'leri, eşler tarafından erişilebilir kalırken diğer herkes için görünmez olur.
Gelen trafik için bu bir erişim denetim listesidir. Kaynak adresi, eşin AllowedIPs değerinde bulunmayan, eşten gelen şifresi çözülmüş bir paket düşürülür. Sunucunun dizüstü bilgisayar için 10.8.0.2/32 listelemesinin nedeni budur: oradaki bir 0.0.0.0/0 girdisi, istemcinin tünel içindeki herhangi bir adresi taklit etmesine olanak tanırdı.
PersistentKeepalive, yönlendiricinin UDP eşlemesini yalnızca paket akışı olduğunda açık tuttuğu NAT arkasındaki istemciler içindir. Eşleme süresi dolduğunda, sunucu istemciye artık ulaşamaz. PersistentKeepalive = 25 eşlemeyi açık tutar; bunu genel IP'ye sahip bir sunucuda değil, istemcide ayarlayın.
DNS ve kimsenin fark etmediği sızıntı
AllowedIPs = 0.0.0.0/0 ile ve hiçbir DNS = satırı olmadan, istemci yerel ağdan öğrendiği çözümleyiciyi, yani 192.168.1.1 adresindeki kafe yönlendiricisini kullanmaya devam eder. Bu rota varsayılan rotadan daha spesifik olduğu için, diğer her şey tünellenirken DNS sorguları yerel bağlantı üzerinden şifrelenmemiş halde çıkar. Trafik gizlidir; ancak sorgulanan isimlerin listesi gizli değildir.
İki dürüst seçenek mevcuttur. DNS değerini genel bir çözümleyiciye (DNS = 9.9.9.9) yönlendirdiğinizde sorgular tünel üzerinden geçer ve sunucunuzdan çıkar; ancak bu durumda çözümleyici sorgularınızı görmeye devam eder. Alternatif olarak, 10.8.0.1 adresine bağlı bir unbound veya dnsmasq çalıştırabilir, DNS = 10.8.0.1 ayarını yapabilir ve giriş zincirine udp dport 53 iifname "wg0" accept ekleyebilirsiniz; bu satırı ayarlayıp çözümleyiciyi devre dışı bıraktığınızda hiçbir şey çözümlenmeyecektir.
Linux istemcilerinde wg-quick, DNS üzerinden resolvconf uygular; bu mevcut değilse resolvconf: command not found alırsınız. openresolv paketini kurun veya systemd-resolved kullanan bir istemcide PostUp = resolvectl dns %i 10.8.0.1 ayarını yapın.
Tüneli düşürmeden eş ekleme ve kaldırma
Arayüzü yeniden başlatmak, bağlı olan herkesin bağlantısını keser. [Peer] bloğunu wg0.conf dosyasına ekleyin ve ardından eş kümesini mevcut oturumu bozmadan yeniden yükleyin.
sudo bash -c 'wg syncconf wg0 <(wg-quick strip wg0)'wg-quick strip komutu, yapılandırmayı wg-quick-only anahtarları (Address, DNS, PostUp) olmadan yazdırır; syncconf ise mevcut oturumları koruyarak aradaki farkı uygular. Bu komut yalnızca eşleri günceller: değiştirilen bir Address parametresi hala tam bir down/up işlemi gerektirir. Bir eşi kaldırmak için sudo wg set wg0 peer <public key> remove komutunu kullanın, ardından ilgili bloğu dosyadan silin; aksi takdirde bir sonraki yeniden yüklemede eş geri dönecektir.
Hata modları ve karşılaşacağınız dizeler
El sıkışma tamamlanmıyor. wg show, eşi latest handshake olmadan listeler ve istemci şu günlükleri üretir:
Handshake for peer 1 (10.0.0.10:51820) did not complete after 5 seconds, retrying (try 2)Hiçbir veri ulaşmıyor veya hiçbir veri kabul edilmiyor. Sırasıyla şunları kontrol edin: UDP 51820 portu VPS güvenlik duvarında ve çoğu panelde ayrı bir denetim mekanizması olan sağlayıcınızın ağ güvenlik duvarında açık mı; Endpoint adresi ve portu doğru mu; anahtarlar yanlış yerleştirilmiş mi. İstemcinin [Peer] bloğundaki anahtar, sunucunun genel (public) anahtarı olmalıdır; bunun tersi, özel (private) anahtarı veya istemcinin kendi genel anahtarını yapıştırmak tam olarak bu belirtiye yol açar. Sunucudaki sudo tcpdump -ni any udp port 51820, paketlerin ulaşıp ulaşmadığını gösterir. Çekirdek modülü varsayılan olarak hiçbir şey günlüğe kaydetmez; WireGuard iletileri, dinamik hata ayıklamayı (echo module wireguard +p | sudo tee /sys/kernel/debug/dynamic_debug/control) etkinleştirdikten sonra dmesg içinde görünür. Bu etkinleştirildiğinde, anahtar uyuşmazlığı geçersiz MAC düşüşü (invalid-MAC drop) olarak raporlanır.
El sıkışma başarılı, internet yok. ping 10.8.0.1 başarılı ancak ping 1.1.1.1 zaman aşımına uğruyor: yönlendirme veya NAT eksik. sysctl net.ipv4.ip_forward dosyasının 1 değerini içerdiğini doğrulayın, ardından istemci ping atarken sudo nft list ruleset veya sudo iptables -t nat -L POSTROUTING -n -v ile sayaçları izleyin. Maskeleme kuralında paket sayacı sıfırsa, çıkış arayüzü adı yanlıştır; sayaç artıyor ancak yanıt gelmiyorsa sorun yönlendirme zinciri (forward chain) ilkesindedir.
İnternet çalışıyor, isim çözümleme çalışmıyor. ping 1.1.1.1 başarılı ve curl https://example.com, Could not resolve host döndürüyor. DNS satırı eksik veya tünel içinden ulaşılamayan bir çözümleyiciye işaret ediyor.
Bazı HTTPS siteleri yanıt vermiyor. SSH ve ping sorunsuz; büyük sayfalar takılıyor. Bu durum yol MTU (path MTU) sorunudur: tünel ek yük getirir ve aradaki bir bağlantı, ICMP iletisi geri dönmeden büyük paketleri düşürür. İstemci [Interface] dosyasında MTU değerini ayarlayın. Standart 1500 baytlık bir bağlantıda wg-quick zaten 1420 (1500 eksi 80 baytlık ek yük) değerini seçer, bu nedenle 1420 yazmak bir şeyi değiştirmez: 1380 değerini, ardından 1280 değerini deneyin. MTU değerini düşürmek takılmaları çözüyor ancak veri aktarım hızı hala düşükse, yuvarlak sayılarla tahmin yürütmeyi bırakın ve ikiye bölme yöntemiyle gerçek yol MTU değerini bulma ve TCP MSS değerini sabitleme adımlarını uygulayın; bu yöntem, tünelden kaynaklanmayan diğer olası nedenleri de eler.
Arayüz başlamayı reddediyor. Address already in use, başka bir sürecin UDP 51820 portunu kullandığı anlamına gelir. Başarısız bir up komutundan sonra Cannot find device wg0 hatası genellikle yapılandırmanın reddedildiğini gösterir; journalctl -u wg-quick@wg0 -n 50 dosyasını okuyun.
Streisand veya OpenVPN'den Geçiş
Streisand artık desteklenmemektedir ve deposu arşivlenmiştir; terk edilmiş otomasyon araçları üzerinde VPN çalıştırmak, zamanla büyüyen bir güvenlik sorunudur. Yerinde yükseltme seçeneği bulunmamaktadır ve OpenVPN'in PKI yapısı dönüştürülemez: WireGuard sertifika, CA veya son kullanma tarihi içermez; bu nedenle her istemci için yeni bir anahtar çifti oluşturulmalıdır.
Geçişi paralel olarak gerçekleştirin; UDP 51820 üzerindeki WireGuard, aynı sunucuda 1194 portundaki OpenVPN ile birlikte çalışabilir. wg0 kurulumunu yapın, istemcileri tek tek taşıyın ve ardından eski servisi durdurun. OpenVPN'in kullanıcı adı/parola ve iptal (revocation) modeli WireGuard'a aktarılamaz; hesap yönetimine veya denetim izine ihtiyacınız varsa, bu katmanı WireGuard'ın üzerinde yapılandırın.
Yedeklemeler, yükseltmeler ve ölçeklendirme zorlukları
/etc/wireguard sunucunun kendisidir. Yedeğini alın (sudo tar czf wg-backup.tgz -C /etc wireguard, 600 modu, sunucu dışında saklayın); böylece yeni bir VPS üzerinde dakikalar içinde yeniden kurulum yapabilirsiniz. Sunucunun özel anahtarını kaybederseniz, istemciler sunucunun açık anahtarını doğruladığı (pinning) için tüm istemci yapılandırmalarını yeniden oluşturmanız gerekir. Yükseltmeler sıradan bir apt upgrade işlemi ve çekirdek güncellemeleri için yeniden başlatmadan ibarettir; wg-quick@wg0 etkinleştirilmişse kendiliğinden geri döner.
Uç nokta başına düşen durum bilgisi azdır ve kriptografi çekirdek seviyesinde çalıştığı için sınır, bu yapılandırmadan ziyade VPS'nizin CPU ve bant genişliği kapasitesidir; bunu yayınlanan rakamlara güvenmek yerine tünel üzerinden iperf3 ile ölçün. Ölçeklendirme aşamasında zorlanan kısım operasyonel süreçlerdir. Her uç noktanın benzersiz bir tünel IP'sine ihtiyacı vardır ve altmış adet [Peer] bloğunu elle düzenlemek, AllowedIPs çakışmalarının sızmasına neden olur: yapılandırmaları bir betik ile oluşturun. Tek bir sunucu, tek bir UDP uç noktası ve tek bir hata noktasıdır; WireGuard'da kümeleme (clustering) özelliği yoktur: yedeklilik, kendi anahtarlarına sahip ikinci bir sunucu anlamına gelir. Anahtar rotasyonu manueldir, bu nedenle kimin hangi anahtara sahip olduğunu ve bir anahtarı nasıl iptal edeceğinizi not edin. Bu kayıt tutma süreci bir metin dosyasının sınırlarını aştığında, genellikle aynı çekirdek veri düzlemi üzerinde bir kontrol düzlemi kullanılır ve kendi kendine barındırılan bir NetBird sunucusu, aksi takdirde elle yapacağınız adres tahsisini, uç nokta dağıtımını ve kurulum anahtarlarını yönetir. Eğer bu kontrol düzlemini kendiniz çalıştırmak bir sunucu fazlalığı yaratıyorsa, Tailscale bunu sizin yerinize barındırır ve ücretsiz Kişisel planı, altı kullanıcıyı, sınırsız kullanıcı cihazını ve başlangıç için sunucular gibi 50 adede kadar etiketli kaynağı kapsar; bu, çoğu kişisel ağın ödeme yapmasına gerek kalmayacak kadar yeterlidir. Bu noktadan sonra ücretlendirme makine sayısına değil kişi sayısına göre işler, bu nedenle bir hanenin veya küçük bir ekibin ödeyeceği tutar, wg0.conf içine elle ekleyeceğiniz uç nokta sayısına değil, kaç kişinin giriş yetkisine sahip olduğuna bağlıdır. Bu tarafta, bölünmüş tünel (split-tunnel) AllowedIPs kayıt tutma süreci, özel IP aralıklarınızı bir subnet router üzerinden duyurmaya dönüşür; bu, her istemci dosyasına yapıştırmak yerine bir VPS'den bir kez duyurulur ve merkezi olarak onaylanır. Bu değişimin yapılıp yapılmayacağı, barındırılan bir kontrol düzleminin gerçekte nelere erişebileceğine bağlıdır ve trafiğinizi şifreleyen anahtarları asla tutmaz, ancak hangi uç noktaların birbirini öğreneceğine karar verir.
Tüm bunlar; kontrol edebileceğiniz bir Linux sunucusuna, genel bir IP adresine, modül yükleyebileceğiniz bir çekirdeğe ve uçtan uca yönetebileceğiniz bir güvenlik duvarına ihtiyaç duyar.
FAQ
WireGuard el sıkışması neden hiç tamamlanmıyor?
wg show, latest handshake içermeyen bir peer listeliyorsa paketler ulaşmıyor veya kabul edilmiyordur. Hem VPS güvenlik duvarında hem de sağlayıcının ayrı ağ güvenlik duvarında UDP 51820 portunu kontrol edin. Endpoint ana bilgisayarını ve portunu doğrulayın. Ardından anahtarların karıştırılmadığını kontrol edin. İstemcinin [Peer] bloğunda sunucunun public anahtarı bulunmalıdır. sudo tcpdump -ni any udp port 51820, paketlerin gelip gelmediğini gösterir. dmesg ise yalnızca dinamik hata ayıklamayı (echo module wireguard +p | sudo tee /sys/kernel/debug/dynamic_debug/control) etkinleştirdikten sonra WireGuard el sıkışması hatalarını raporlar. Bu durumda anahtar uyuşmazlığı invalid-MAC drop olarak görünür.
Tünel bağlanıyor ancak internet erişimim yok. Eksik olan nedir?
ping 10.8.0.1 çalışırken ping 1.1.1.1 zaman aşımına uğruyorsa sorun forwarding veya NAT kaynaklıdır. sysctl net.ipv4.ip_forward değerinin 1 olduğunu ve bunun yalnızca yeniden başlatma sonrasında kaybolan bir sysctl -w ile değil, /etc/sysctl.d/ içinde ayarlandığını doğrulayın. Ardından masquerade kuralının gerçek çıkış arayüzünüzü adlandırıp adlandırmadığını ip route show default, enp1s0 veya ens3, daha nadiren eth0 üzerinden kontrol edin.
İstemci yapılandırmamda DNS = satırına ihtiyacım var mı?
Tam tünel kullanılırken DNS = satırı yoksa istemci, yerel ağdan öğrendiği resolver'ı kullanmaya devam eder. Bu sorgular yerel bağlantı üzerinden cleartext olarak gönderilir; diğer tüm trafik ise tünelden geçirilir. DNS değerini public bir resolver'a yönlendirin veya unbound/dnsmasq hizmetini 10.8.0.1 adresine bağlı olarak çalıştırın ve input chain üzerinde udp dport 53 iifname "wg0" portunu açın.
AllowedIPs gerçekte neyi denetler?
İki görevi vardır. Giden yönde bir routing table olarak çalışır: bir peer'ın AllowedIPs değeriyle eşleşen trafik şifrelenir ve bu peer'a gönderilir. Gelen yönde bir access-control list olarak çalışır: kaynağı ilgili peer'ın AllowedIPs değeri dışında olan şifresi çözülmüş paket drop edilir. Bu nedenle sunucu tarafında istemci başına bir /32 listelenirken istemci tarafında 0.0.0.0/0 listelenebilir.
WireGuard herhangi bir VPS üzerinde çalışır mı?
KVM VPS üzerinde in-kernel module ile ve ek kurulum gerektirmeden çalışır. OpenVZ veya LXC gibi host kernel'ını paylaşan container virtualisation ortamlarında modprobe wireguard, Operation not supported ile başarısız olur ve geri dönüş seçeneği wireguard-go userspace implementation'dır. Önce sudo modprobe wireguard && echo ok komutunu çalıştırın.