Raspberry Pi VPN sunucusu Ethernet’e nasıl taşınır
Raspberry Pi VPN sunucusunu Wi-Fi’den Ethernet’e taşıyın; uç nokta adı, dinleyici bağlaması, bağlantı noktası yönlendirmesi veya tek adımlı geri alma yolu değişmeden.
Pi’yi Wi-Fi’den kabloya geçirmek beş dakikalık bir iş gibi görünür ve ancak geçişi bir değil dört ayrı ayar olarak ele alırsanız öyle kalır. İstemcilerinizin aradığı uç nokta adı, altındaki adres değişirken tamamen aynı kalabilir. Gerçekte bozulan şey eski adrese sabitlenmiş bir dinleyici, hâlâ kablosuz lease’e yönelen bir bağlantı noktası yönlendirmesi ya da kullanımdan kaldırdığınızı düşündüğünüz arayüzden çıkan bir dönüş yoludur. Bu kılavuz her adımda bir kurtarma yolunu açık tutar, böylece başarısız bir geçiş yalnızca bir yeniden başlatmaya mal olur.
Herhangi bir şeyi sökmeden önce dört sorumluyu yazın
Dört ayar geçişin ayakta kalıp kalamayacağını belirler: Pi adresi, bağlama adresi OpenVPN, yönlendiricinin yönlendirme hedefi ve yanıtların izlediği yol. Kabloya dokunmadan önce dördünü de yazın, çünkü kablosuz lease kaybolduğunda eski değerleri artık makineden okuyamazsınız. Kablolu arayüz kablosuz profili devralmaz ve Bookworm’da adres NetworkManager’da yaşarken Bullseye onu dhcpcd.conf. Kablosuz MAC adresini sabitleyen bir rezervasyon, eth0 hakkında hiçbir şey söylemez. Yeni adresi kendi kanıtına ihtiyaç duyan yeni bir atama olarak ele alın.
Old wireless lease: 10.42.7.24/24 on wlan0
New wired address: 10.42.7.31/24 on eth0
Client endpoint: vpn.lab.example:1194/udp
Dinleyici ikinci sorumludur. Hizmet belirli bir bağlama adresiyle başlatıldıysa, soket eski arayüzle birlikte ölür; tüm adresleri bağlıyorsa soket hayatta kalır ve yönlendirici kuralı düzeltilecek tek şey olarak kalır.
Yönlendirme hedefi ve dönüş yolu, insanların atladığı sorumlulardır. Hâlâ 10.42.7.24’e işaret eden bir yönlendirme, gelen el sıkışmaları Pi’nin artık sahip olmadığı bir adrese gönderir, bu yüzden istemciler sunucu tarafında tek bir günlük satırı bile olmadan zaman aşımına uğrar. Dönüş yolu, iki bağlantı kısa süre etkinken önemlidir, çünkü Pi yönlendirme tablosunun tercih ettiği arayüzden yanıt verir ve bu her zaman paketin geldiği arayüz değildir. Aşağıdaki rota sorgusu çekirdeğin hangi kaynağı seçtiğini gösterir.
Yeni adrese güvenmeden önce gerçek soketi okuyun
Yapılandırma dosyaları niyeti, soket ise gerçeği anlatır. Hatırladığınız yapılandırmaya güvenmek yerine çalışan hizmete neye bağlı olduğunu sorun. OpenVPN 2.6 kılavuzu --local tek bir adrese bağlanma olarak tanımlar ve atlanmasının her arayüzü bağladığını belirtir.
sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'
Durum sütunu yerine yerel adres sütununu okuyun. 10.42.7.24:1194 gösteren bir satır, soketin kaldırmak üzere olduğunuz adrese sabitlendiği anlamına gelir; 0.0.0.0:1194 veya *:1194 ise daemonun arayüz değişimini kendi başına izleyeceğini gösterir. Adres sabitlenmişse, canlı soketi elle yeniden yazmak yerine profili düzenleyin ve birimi yeniden başlatın, ardından hizmetin sertifika ve anahtar dosyalarına hâlâ ulaştığını doğrulayın.
Geçişi erişilebilir kalmanızı sağlayan bir sırayla yapın
Sıra burada hızdan daha önemlidir. Kablosuz bağlantı hâlâ çalışırken kablolu bağlantıyı kaldırın, yeni adresi ve dönüş yolunu doğrulayın, ancak ondan sonra kablosuz profili kullanımdan kaldırın. Bu sıralama, yedek kanıtlanana kadar çalışan bir oturumu açık tutar.
ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"
İlk komut eth0 istediğiniz adresi alıp almadığını yanıtlar, ikincisi ise çekirdeğin dış bir hedef için kullanacağı kaynak adresi yazdırır, bu yüzden değişiklikten önce ve sonra çalıştırın. Bu kaynak hâlâ kablosuz adres ise, kablolu bağlantı henüz tercih edilen yol değildir ve dış test OpenVPN ile hiçbir ilgisi olmayan bir nedenle başarısız olur. Yönlendirmeye dokunmadan önce yönlendirme tercihini düzeltin.
Her iki bağlantı da etkinken Pi, önce kurulduğu için veya kablolu bağlantı daha yüksek bir metrik taşıdığı için kablosuz varsayılan rotayı tercih edebilir. Bookworm’da desteklenen ayar bağlantıdaki ipv4.route-metric, Bullseye’de ise eşdeğeri arayüze özgü bir metric satırıdır ve dhcpcd.conf dosyasında bulunur. Geri dönüş yolu bir komut uzaklıkta kalsın diye kablosuz bağlantıyı devre dışı bırakmak yerine önceliğini düşürün.
Tüneli LAN’dan değil, dışarıdan kanıtlayın
Kanepeden çalışan bir VPN bağlantısı göründüğünden daha azını kanıtlar. LAN içinden genel adrese giden trafik, yönlendiricilerin tutarsız uyguladığı hairpin veya yansıma kurallarından geçer, bu yüzden başarılı bir LAN testi bozuk bir dış yolla bir arada bulunabilir. Kabul testi için hücresel veri kullanan bir telefon veya ağ dışındaki herhangi bir ana makine kullanın. LAN denemesini ayrı bir isteğe bağlı tanılama olarak tutun.
Sonra günlüğü paketlerin geldiği sırayla okuyun. Hiçbir şey yoksa el sıkışma Pi’ye hiç ulaşmamıştır, yani yönlendirme hedefi veya ana makinenin güvenlik duvarı yanlıştır. Başlayıp takılan bir el sıkışma anahtarlara, sertifikalara veya MTU’ya işaret eder. Tamamlanıp düşen bir oturum genellikle dönüş yolunu veya ikinci bir varsayılan rotayı gösterir ve istemcinin günlük satırı Initialization Sequence Completed tünelin kendisinin kalktığını söyler.
sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20
İstemci yeniden denemeye çalışırken sunucu günlüğünde hiçbir şey görünmüyorsa, OpenVPN yapılandırmasını okumayı bırakın ve yönlendirme hedefine dönün. Yakalama, varış sorusunu saniyeler içinde yanıtlar ve yanıtsız gelen paketler sorunu rotaya daraltır.
Tek adımlı bir geri dönüş tutun ve kablosuz profili kullanımdan kaldırın
Kablosuz profili, kablolu düzen bir yeniden başlatmayı geçene kadar kurulu bırakın. nmcli con show ihtiyaç duyacağınız profil adlarını listeler ve silinen bir profil en kötü anda bellekten yeniden oluşturulmak zorundadır. Arayüz adını, adresleme yöntemini ve metriği diğer dört değerin yanına yazın. Bir nottan yazabileceğiniz bir geri dönüş, yeniden oluşturmanız gereken bir geri dönüşten daha değerlidir.
Kablosuz bağımlılığı kullanımdan kaldırmak, silme değil özellik değişikliğidir. connection.autoconnect no ayarını yapmak, kimlik bilgilerini ve adres geçmişini bozulmadan korurken Pi’nin taşındığınız ağa yeniden bağlanmasını engeller.
nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no
İşi bitmiş ilan etmeden önce dört şeyi doğrulayın: yönlendirme hedefi kablolu adresle eşleşiyor, dinleyici bir yeniden başlatmadan sağ çıktı, dışarıdan bir istemci el sıkışmayı tamamlıyor ve Pi yeniden başlatmadan sonra hâlâ kablolu adreste yanıt veriyor. Yeniden başlatma, yalnızca çalışan çekirdekte var olan bir atamayı yakalamanın en ucuz yoludur. Dördünden herhangi biri başarısız olursa, kablosuz profili sudo nmcli con up ile geri getirin ve kaydedilen değerleri etkin olanlarla karşılaştırın.