WireGuard yapılandırmasını Interface'ten Peer'e satır satır okuyun
Interface anahtarları bu uca, peer anahtarları karşı tarafa aittir. Her satırı tek bir yön olarak okuyun, sonra wg-quick'in protokolün çevresine ne eklediğini doğrulayın.
Bozuk WireGuard yapılandırmalarının çoğu değerde yanılmaz; doğru değeri yanlış tarafa koyarlar. Özel anahtar bu makineye aittir, peer diğer makinenin açık anahtarını taşır ve adres tünelin nerede yaşadığını anlatmasına rağmen interface bloğunda oturur. Dosyayı birbirine kavuşan iki yön olarak okuyun, sonra yardımcı betiğin üstüne ne eklediğine bakın. Protokolün kendisi dosyadan daha az alana sahiptir ve fazladan alanları ayrıca bilmek gerekir.
interface anahtarları bu makineyi anlatır
interface bloğu bu ucun kendi kimliğini tutar. PrivateKey o kimliktir ve ana makineden hiç ayrılmaz; eşleşen açık anahtar ondan türetilir ve diğer peer'ların listelediği de odur. ListenPort bu tarafın el sıkışmalarını aldığı yerdir, bu yüzden aynı adresin arkasındaki iki istemci farklı bağlantı noktalarına ihtiyaç duyar.
Address bu ana makinenin yanıt verdiği tünel adresidir ve kullanacağı kaynak da kendisi olduğu için önek uzunluğuyla yazılır. Burada öneki yanlış vermek, ana makinenin hangi hedefleri doğrudan bağlı saydığını değiştirir ve yapılandırma değil yönlendirme gibi görünen arızalar üretir.
Gerçek bir istemciyle [Interface] bloğundaki diğer her şeyi genellikle wg-quick ekler: DNS, MTU, Table, ve kanca satırları. Bunlar protokol alanı değildir ve çıplak wg kurulumu bunları tamamen yok sayar.
Her peer girdisi bir başka tarafı anlatır
Bir [Peer] bloğu uzak taraftır. PublicKey o tarafın türetilmiş anahtarıdır, asla onların özel anahtarı değildir, ve PresharedKey iki tarafın da aynı tutması gereken isteğe bağlı ek bir sırdır. Endpoint nereye gönderileceğidir ve PersistentKeepalive başka hiçbir şey çıkmadığında bu ana makineden aralıktan sonra paket göndermesini ister.
Buradaki karışıklığın çoğunu iki hata açıklar. Kendi özel anahtarınızı bir peer bloğuna kopyalamak iki ucu tek bir kimliği paylaşmaya zorlar ve el sıkışma kötü günlüklenen bir biçimde başarısız olur. Endpoint bir istemcide dışarıda bırakmak genellikle bilerek yapılır, çünkü sunucu adresi gelen el sıkışmadan öğrenir; başlatması gereken bir sunucuda dışarıda bırakmak öyle değildir. keepalive'in bir NAT eşlemesini açık tuttuğunu ve aktarım hızını artırmadığını ya da gecikmeyi azaltmadığını da unutmayın, bu yüzden trafik zaten akarken otuz saniyelik ek paketler hiçbir şey satın almaz.
AllowedIPs yönlendirmedir, izin listesi değil
AllowedIPs WireGuard'ın kripto anahtar yönlendirmesidir. Dışarı doğru, hedefe göre hangi peer'ın paket alacağına karar verir. İçeri doğru, o peer'dan gelen paketin kaynağa göre kabul edilip edilmeyeceğine karar verir. Aynı alan iki işi de yapar, bu yüzden erişim denetim listesi değildir ve izin verilen web sitelerinin listesi de değildir.
Dar bir AllowedIPs sunucuda bir istemci için, sunucunun yalnızca o kaynakları iddia eden paketleri kabul edeceği ve yalnızca o hedefleri o istemciye göndereceği anlamına gelir. Bir tarafı diğerini genişletmeden genişletin, ayağa kalkan ama hiçbir şey geçirmeyen bir tünel elde edersiniz.
wg-quick protokolün çevresine ne ekler
wg-quick aynı dosyayı okur ve protokolün işletim sistemine bıraktığı ağ adımlarını yürütür. interface adresini atar, AllowedIPs türetilen yolları ekler, çözücü ayarlarını yazar ve kanca komutlarını sırayla çalıştırır.
Bu katman klasik asimetriyi açıklar. İçinde 0.0.0.0/0 ve bir DNS satırı bulunan dosya istemciye varsayılan bir yol ve bir çözücü verir ve sunucunun iletme ya da NAT kurallarına hiçbir şey yapmaz. Bunlar sunucunun kendi yapılandırmasına aittir ve hiçbir istemci dosyası onları sağlayamaz.
Dosyanın tek bir sahibi olsun. SaveConfig etkinken onu elle düzenlemek şu anlama gelir: düzenlemeniz interface bir sonraki indiğinde kaybolur, ve interface bunun olduğunu size söylemez.
Dosyayı değil, uygulanan durumu denetleyin
Dosya bir niyettir. Uygulanan durum çekirdeğin tuttuğudur ve etkinleştirmeden sonra bir yardımcı, bir drop-in ya da bir kanca bir şey düzenlediğinde ayrışırlar.
Canlı durumu ve adreslemeyi birlikte okuyun, sonra ikisini de yazdıklarınızla karşılaştırın:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confpeer listesi boşsa interface yapılandırması uygulanmadan oluşturulmuştur. Adresler ve yollar varsa ama sayaçlar sıfırda kalıyorsa dosya yüklenmiştir ve el sıkışma başarısız oluyor demektir; bu bölüm sırası değil anahtar ya da uç sorunudur. Düzenlemeden önce iki görünümü karşılaştırın, çünkü aralarındaki fark genellikle gerçek arızadır.