VPS'te WireGuard PersistentKeepalive 25 ve PresharedKey
PersistentKeepalive = 25, NAT'ın tüneli açık tutması için her 25 saniyede bir keepalive gönderir; NAT arkasındaki istemcide ayarlayın. PresharedKey simetrik, post-quantum bir güvence ekler.
Kısaca: `PersistentKeepalive = 25`, WireGuard'a karşı tarafa her 25 saniyede bir küçük, kimliği doğrulanmış bir paket göndermesini söyler; bu da NAT ve stateful firewall eşlemelerini canlı tutar, böylece karşı taraf size hâlâ ulaşabilir. Normalde bunu yalnızca NAT arkasındaki peer'da (dizüstü bilgisayar, telefon veya ev router'ı) ayarlarsınız, herkese açık IP'li bir VPS'te değil. `PresharedKey`, `wg genpsk` ile üretilen ve Curve25519'a yönelik gelecekteki kuantum saldırılarına karşı bir güvence olarak handshake'e karıştırılan, her peer çifti için isteğe bağlı ek bir 256 bit simetrik sırdır.
Bu rehber her iki seçeneği de açıklıyor ve bir WireGuard VPS'i için çalışan bir sunucu ve istemci yapılandırması veriyor. NAT ve DNS'li tam VPN kurulumu için bkz. WireGuard VPN rehberi.
PersistentKeepalive = 25 gerçekte ne yapar
WireGuard tasarım gereği sessizdir: veri akmadığında hiçbir şey göndermez. Bu gizlilik ve pil için iyidir, ancak NAT ve bağlantı takibi yapan router'lar boştaki UDP eşlemelerini çoğu zaman 30 saniye sonra, bazen birkaç dakika sonra düşürür. Eşleme gittiğinde, istemci tekrar bir şey gönderene kadar sunucudan gelen paketler NAT arkasındaki istemciye artık ulaşamaz.
`PersistentKeepalive` saniye cinsinden bir aralıktır. `25` ile peer, 25 saniye boyunca hiçbir şey göndermediğinde boş, şifreli bir keepalive gönderir. 25 değeri WireGuard belgelerinde önerilen değerdir, çünkü en kısa yaygın UDP zaman aşımlarının güvenle altında kalır. Ayar varsayılan olarak kapalıdır (`0`) ve ek yük, peer başına yaklaşık her 25 saniyede bir küçük bir pakettir.
| Değer | Etki | Ne zaman kullanılır |
|---|---|---|
| 0 veya ayarsız | Keepalive yok; boştayken tünel sessizdir | Her iki peer'ın da herkese açık IP'si var veya trafiği her zaman yalnızca istemci başlatıyor |
| 25 | Her 25 sn boşta kalma süresinde bir keepalive | Erişilebilir kalması gereken NAT veya CGNAT arkasındaki istemci |
| 15–20 | Daha sık keepalive'lar | Alışılmadık derecede agresif UDP zaman aşımlarına sahip ağlar |
| 60+ | Daha az paket, daha fazla eşleme kaybı riski | Nadiren yararlı; çoğu NAT cihazı daha erken zaman aşımına uğrar |
PersistentKeepalive hangi tarafta gerekir
Keepalive'ı doğrudan erişilemeyen peer'da, yani NAT arkasındakinde ayarlayın. O peer paketleri dışarı gönderir ve kendi NAT eşlemesini yeniler. Herkese açık IPv4 adresine sahip bir VPS'in önünde NAT yoktur, dolayısıyla erişilebilir kalmak için bu seçeneğe ihtiyacı yoktur; ayrıca istemcinin endpoint'ini yalnızca istemcinin paketlerinden öğrendiği için uzaktaki bir NAT'ı kendi başına açık tutamaz.
İstemci tünel üzerinden yalnızca web'de geziniyorsa, trafik gönderdiği her an anında yeniden bağlanır, bu yüzden keepalive isteğe bağlıdır. Sunucunun veya diğer peer'ların istemciye bağlantı başlatması gerektiğinde buna ihtiyacınız olur; örneğin bir ev makinesine SSH, izleme veya site-to-site bağlantı.
- ▹NAT arkasındaki dizüstü veya telefondan VPS'e: `PersistentKeepalive = 25`'i yalnızca istemcide ayarlayın.
- ▹Her ikisi de herkese açık IP'li VPS'ten VPS'e: genellikle ayarlamayın; bkz. [WireGuard mesh rehberi](/guides/wireguard-mesh-vps-cluster).
- ▹Bir VPS üzerinden dışarı açılan CGNAT arkasındaki ev sunucusu: ev sunucusunda ayarlayın, aksi halde VPS yolu dakikalar içinde kaybeder.
- ▹Mobil istemciler: keepalive biraz pile mal olur; yalnızca cihazın erişilebilir olması gerekiyorsa etkinleştirin.
PresharedKey: isteğe bağlı simetrik katman
WireGuard'ın handshake'i Curve25519 anahtar değişimini kullanır. Yeterince büyük bir kuantum bilgisayar teoride bu değişimi kırabilir ve bir saldırgan trafiği bugün kaydedip daha sonra çözebilir. `PresharedKey`, handshake'e ek bir 256 bit simetrik anahtar karıştırır. Bu boyuttaki simetrik anahtarların bilinen kuantum algoritmalarıyla pratikte kırılabileceği düşünülmez; bu yüzden PSK gizli kaldığı sürece, açık anahtar kısmı kırılsa bile kaydedilen trafik korunur.
PSK peer çifti başınadır, her iki peer'ın `[Peer]` bölümlerinde aynı olmalı ve her çift için benzersiz olmalıdır. Özel anahtarların yerini almaz; ek bir katmandır. PSK'ler eşleşmezse handshake sessizce başarısız olur ve `wg show`'da `latest handshake` göremezsiniz.
- ▹Rastgele, base64 kodlu 32 baytlık bir anahtar çıktısı veren `wg genpsk` ile üretin.
- ▹Zaten güvendiğiniz bir kanal üzerinden, örneğin SSH ile aktarın; asla sohbet veya e-posta ile değil.
- ▹Her çift için bir PSK kullanın: beş node'lu bir mesh'te bu, on farklı PSK demektir.
- ▹Bir cihaz kaybolduğunda veya kullanımdan kaldırıldığında onu diğer sırlar gibi değiştirin.
Anahtarları ve PresharedKey'i üretin
Araçları Debian 12/13 veya Ubuntu 24.04'te `apt install wireguard` ile kurun, ardından anahtarları her özel anahtarın yaşayacağı makinede üretin. PSK her iki tarafta da üretilip diğerine kopyalanabilir. `umask 077`, dosyaların yalnızca root tarafından okunabilir olmasını sağlar.
umask 077
cd /etc/wireguard
# on the VPS
wg genkey | tee server.key | wg pubkey > server.pub
# on the client
wg genkey | tee client.key | wg pubkey > client.pub
# once, on either side; copy to the other over SSH
wg genpsk > client.pskVPS'teki sunucu yapılandırması: /etc/wireguard/wg0.conf
Sunucunun sabit bir dinleme portu vardır ve istemci için keepalive ve `Endpoint` yoktur, çünkü istemcinin güncel adresini kimliği doğrulanmış paketlerden öğrenir.
[Interface]
Address = 10.8.0.1/24, fd08::1/64
ListenPort = 51820
PrivateKey = <contents of server.key>
[Peer]
# laptop
PublicKey = <contents of client.pub>
PresharedKey = <contents of client.psk>
AllowedIPs = 10.8.0.2/32, fd08::2/128Note · VPS firewall'unda UDP 51820'yi açın ve tüneli `systemctl enable --now wg-quick@wg0` ile başlatın. Başka bir şeyi dışarı açmadan önce SSH'ı SSH sıkılaştırma rehberinde anlatıldığı gibi kilitleyin ve anahtar izinlerini StrictModes rehberi ile kontrol edin.
NAT arkasındaki istemci yapılandırması
İstemci VPS'in herkese açık adresini gösterir ve keepalive'ı taşır. Yalnızca özel bir tünel için `AllowedIPs = 10.8.0.0/24, fd08::/64`, tüm trafiği VPS üzerinden göndermek için `0.0.0.0/0, ::/0` kullanın.
[Interface]
Address = 10.8.0.2/32, fd08::2/128
PrivateKey = <contents of client.key>
[Peer]
PublicKey = <contents of server.pub>
PresharedKey = <contents of client.psk>
Endpoint = 203.0.113.10:51820
AllowedIPs = 10.8.0.0/24, fd08::/64
PersistentKeepalive = 25Note · Dedicated IPv4'lü bir NoctisNode Wisp VPS (1 vCPU, 1 GB RAM, 28 günlük döngü için $6) kişisel bir WireGuard endpoint'i için yeterlidir ve kayıtta yalnızca e-posta ve şifreyle Monero veya diğer kriptolarla ödenebilir.
Doğrulama ve sorun giderme
Her iki tarafta `wg show` çalıştırın. Sağlıklı bir istemci, peer için yakın tarihli bir `latest handshake`, `persistent keepalive: every 25 seconds` ve `preshared key: (hidden)` gösterir.
- 01.Hiç handshake yok: VPS'te UDP 51820'nin açık olduğunu ve `Endpoint`'in doğru IP ve portu kullandığını kontrol edin.
- 02.Handshake PSK olmadan çalışıyor ama PSK ile çalışmıyor: PresharedKey iki yapılandırma arasında farklı; tekrar kopyalayın.
- 03.Tünel çalışıyor, ama bir dakika sonra sunucu istemciye ulaşamıyor: istemciye `PersistentKeepalive = 25` ekleyin.
- 04.Keepalive'ı yeniden başlatmadan değiştirin: `wg set wg0 peer <server-public-key> persistent-keepalive 25`.
- 05.Çalışma anında bir dosyadan PSK ekleyin: `wg set wg0 peer <public-key> preshared-key /etc/wireguard/client.psk`.
SSS
QWireGuard'da PersistentKeepalive 25 ne anlama gelir?
APeer'ın başka trafik olmadan geçen 25 saniyeden sonra şifreli bir keepalive paketi göndermesini sağlar. Bu, NAT ve firewall eşlemelerini açık tutar, böylece tünel karşı taraftan erişilebilir kalır.
QPersistentKeepalive sunucuda mı yoksa istemcide mi olmalı?
ANAT arkasındaki peer'da, ki bu neredeyse her zaman istemcidir. Herkese açık IP'li bir VPS'in buna ihtiyacı yoktur ve istemcinin NAT eşlemesini kendi başına açık tutamaz.
QWireGuard PresharedKey zorunlu mu?
AHayır, isteğe bağlıdır. Curve25519'a yönelik gelecekteki kuantum saldırılarına karşı bir güvence olarak handshake'e simetrik bir sır ekler; bu yüzden uzun ömürlü tüneller için iyi bir varsayılandır.
QWireGuard PresharedKey nasıl üretilir?
A`wg genpsk > peer.psk` çalıştırın ve aynı değeri her iki peer'ın `[Peer]` bölümlerindeki `PresharedKey` satırına koyun. Her peer çifti için farklı bir PSK kullanın.
QPersistentKeepalive çok bant genişliği kullanır mı?
AHayır. Boşta geçen yaklaşık her 25 saniyede bir küçük bir paket gönderir; bu bir VPS'te ihmal edilebilir düzeydedir, ancak telefonlarda pil ömrünü biraz azaltabilir.