WireGuard, hızlı, küçük ve yapılandırması kolay modern bir VPN protokolüdür. Kendinizinkini bir VPS üzerinde çalıştırmak, aradaki üçüncü taraf bir VPN şirketi olmadan, seçtiğiniz ülkedeki bir sunucuya şifreli bir tünel verir. Bu rehber Ubuntu 24.04 veya Debian 12/13 kullanır ve sunucuyu zaten güvenceye aldığınızı varsayar.
1. WireGuard'ı kurun
sudo apt update
sudo apt install -y wireguard
2. Sunucu anahtarlarını oluşturun
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077, anahtar dosyalarının yalnızca root tarafından okunabilmesini sağlar. server.key dosyasını gizli tutun.
3. İstemci anahtarlarını oluşturun
Dizüstü bilgisayarınız veya telefonunuz için sunucuda bir anahtar çifti oluşturun ve istemci yapılandırmasını sonra kopyalayın:
wg genkey | tee client1.key | wg pubkey > client1.pub
4. Sunucu yapılandırmasını yazın
Önce genel ağ arayüzünüzün adını bulun:
ip route get 1.1.1.1 | awk '{print $5; exit}'
Genellikle eth0 veya ens3 olur. /etc/wireguard/wg0.conf dosyasını oluşturun ve büyük harfli değerleri kendi değerlerinizle değiştirin:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
server.key ve client1.pub içeriğini belirtilen yerlere yapıştırın ve ETH_IF yerine arayüz adınızı yazın.
5. IP yönlendirmeyi açın
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. Güvenlik duvarını açın
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. Tüneli başlatın
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Arayüzü ve bir istemci bağlandığında son el sıkışmasını (handshake) görmelisiniz.
8. İstemciyi yapılandırın
Cihazınızda şöyle bir yapılandırma oluşturun (Windows, macOS, Linux, iOS ve Android için resmi WireGuard uygulamaları bunu bir dosyadan veya QR kodundan içe aktarabilir):
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 kullanmak tüm trafiği tünelden geçirir. Yalnızca özel ağınıza ulaşmak için bunun yerine 10.8.0.0/24 kullanın.
9. Test edin
- İstemcide tüneli etkinleştirin.
- Sunucuda
sudo wg showkomutunu çalıştırın ve yakın zamanlı bir el sıkışma olduğunu doğrulayın. - İstemciden bir "IP adresim nedir" sayfasını ziyaret edin. Sunucunuzun adresini göstermelidir.
- Amaç gizlilikse DNS sızıntılarını kontrol edin ve sunucunuzda IPv6 varsa IPv6 kuralları ekleyin.
Daha fazla cihaz ekleme
Her yeni cihaz için bir anahtar çifti oluşturun, başka bir [Peer] bloğunu 10.8.0.3/32 gibi yeni bir adresle ekleyin ve mevcut bağlantıları düşürmeden uygulamak için sudo wg syncconf wg0 <(wg-quick strip wg0) komutunu çalıştırın.
Konum seçimi
Bir WireGuard sunucusu konumlarımızın herhangi birinde çalışır. Hız için size yakın birini veya trafiğinizin hangi ülkenin IP adresinden çıkmasını istiyorsanız o ülkedekini seçin. Bkz. VPS konumu nasıl seçilir. Kişisel bir tünel için küçük bir VPS fazlasıyla yeterlidir.