Cara memindahkan pelayan VPN Raspberry Pi ke Ethernet
Pindahkan pelayan VPN Raspberry Pi daripada Wi-Fi ke Ethernet tanpa menukar nama titik akhir, ikatan pendengar, pemajuan port atau laluan pemulihan satu langkah.
Menukar Pi daripada Wi-Fi kepada kabel kelihatan seperti kerja lima minit, dan ia kekal begitu hanya jika anda menganggap pemindahan itu sebagai empat tetapan berasingan dan bukannya satu. Nama titik akhir yang didail oleh klien anda boleh kekal sama tepat sementara alamat di bawahnya berubah. Yang benar-benar rosak ialah pendengar yang diikat pada alamat lama, pemajuan port yang masih menghala ke pajakan tanpa wayar, atau laluan balik yang keluar melalui antara muka yang anda sangka telah dipensiunkan. Panduan ini mengekalkan laluan pemulihan terbuka pada setiap langkah, jadi peralihan yang gagal hanya memerlukan satu but semula.
Catat empat pemiliknya sebelum anda mencabut apa-apa
Empat tetapan menentukan sama ada peralihan itu bertahan: alamat Pi, alamat ikatan OpenVPN, sasaran ubah hala penghala dan laluan yang diambil oleh jawapan. Catat kesemuanya sebelum anda menyentuh kabel, kerana apabila pajakan tanpa wayar hilang anda tidak lagi boleh membaca nilai lama daripada mesin. Antara muka kabel tidak mewarisi profil tanpa wayar, dan pada Bookworm alamat itu tinggal dalam NetworkManager manakala Bullseye menyimpannya dalam dhcpcd.conf. Tempahan yang menyematkan alamat MAC tanpa wayar tidak mengatakan apa-apa tentang eth0. Anggap alamat baharu itu sebagai peruntukan baharu yang memerlukan buktinya sendiri.
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
Pendengar ialah pemilik kedua. Jika perkhidmatan dimulakan dengan alamat ikatan tertentu, soket mati bersama antara muka lama; jika ia mengikat semua alamat, soket bertahan dan peraturan penghala menjadi satu-satunya perkara yang tinggal untuk dibaiki.
Sasaran ubah hala dan laluan balik ialah pemilik yang orang terlepas pandang. Pemajuan yang masih menghala ke 10.42.7.24 menghantar jabat tangan yang tiba ke alamat yang Pi tidak lagi miliki, jadi klien tamat masa tanpa satu baris log pun di sebelah pelayan. Laluan balik penting apabila kedua-dua pautan aktif sebentar, kerana Pi menjawab dari antara muka yang diutamakan oleh jadual penghalaan, dan itu bukan selalu antara muka tempat paket tiba. Carian laluan di bawah menunjukkan sumber mana yang dipilih oleh kernel.
Baca soket sebenar sebelum anda mempercayai alamat baharu
Fail konfigurasi menerangkan niat dan soket menerangkan realiti. Tanya perkhidmatan yang sedang berjalan apa yang diikatnya dan bukannya mempercayai konfigurasi yang anda ingat. Manual OpenVPN 2.6 mentakrifkan --local sebagai ikatan pada satu alamat dan mencatat bahawa meninggalkannya akan mengikat setiap antara muka.
sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'
Baca lajur alamat tempatan dan bukannya lajur keadaan. Baris yang memaparkan 10.42.7.24:1194 bermaksud soket disematkan pada alamat yang akan anda buang, manakala 0.0.0.0:1194 atau *:1194 bermaksud daemon akan mengikut perubahan antara muka dengan sendirinya. Jika alamat itu disematkan, sunting profil dan mula semula unit dan bukannya menulis semula soket hidup dengan tangan, kemudian sahkan bahawa perkhidmatan masih mencapai fail sijil dan kuncinya.
Lakukan pemindahan dalam susunan yang mengekalkan anda boleh dicapai
Susunan lebih penting daripada kelajuan di sini. Naikkan pautan kabel semasa yang tanpa wayar masih berfungsi, sahkan alamat baharu dan laluan balik, dan hanya kemudian persarakan profil tanpa wayar. Urutan itu mengekalkan sesi yang berfungsi terbuka sehingga pengganti terbukti.
ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"
Perintah pertama menjawab sama ada eth0 menerima alamat yang anda maksudkan, dan yang kedua mencetak alamat sumber yang akan digunakan oleh kernel untuk destinasi luar, jadi jalankannya sebelum dan selepas perubahan. Jika sumber itu masih alamat tanpa wayar, pautan kabel belum menjadi laluan pilihan dan ujian dari luar akan gagal atas sebab yang tiada kaitan dengan OpenVPN. Betulkan keutamaan penghalaan sebelum anda menyentuh pemajuan.
Dengan kedua-dua pautan aktif, Pi mungkin mengutamakan laluan lalai tanpa wayar kerana ia dipasang dahulu atau kerana pautan kabel membawa metrik yang lebih tinggi. Pada Bookworm tetapan yang disokong ialah ipv4.route-metric pada sambungan, dan pada Bullseye yang setara ialah baris metric khusus antara muka dalam dhcpcd.conf. Turunkan keutamaan pautan tanpa wayar dan bukannya melumpuhkannya, supaya laluan pemulihan kekal satu perintah jauhnya.
Buktikan terowong dari luar, bukan dari LAN
Sambungan VPN yang berfungsi dari sofa membuktikan lebih sedikit daripada yang kelihatan. Trafik dari dalam LAN ke alamat awam melalui peraturan hairpin atau pantulan yang dilaksanakan oleh penghala secara tidak konsisten, jadi ujian LAN yang lulus boleh wujud bersama laluan luar yang rosak. Gunakan telefon dengan data selular, atau mana-mana hos di luar rangkaian, untuk ujian penerimaan. Kekalkan cubaan LAN sebagai diagnostik pilihan yang berasingan.
Kemudian baca log dalam susunan paket tiba. Tiada apa-apa sama sekali bermaksud jabat tangan tidak pernah sampai ke Pi, jadi sasaran ubah hala atau tembok api hos adalah salah. Jabat tangan yang bermula dan tersekat menunjuk kepada kunci, sijil atau MTU. Sesyen yang selesai dan jatuh biasanya bermaksud laluan balik atau laluan lalai kedua, dan baris log klien Initialization Sequence Completed memberitahu anda bahawa terowong itu sendiri telah naik.
sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20
Jika tiada apa yang muncul dalam log pelayan semasa klien mencuba semula, berhenti membaca konfigurasi OpenVPN dan kembali ke sasaran ubah hala. Tangkapan menjawab soalan ketibaan dalam beberapa saat, dan paket masuk tanpa balasan menyempitkan masalah kepada laluan.
Kekalkan pemulihan satu langkah dan persarakan profil tanpa wayar
Biarkan profil tanpa wayar terpasang sehingga susunan kabel melepasi satu but semula. nmcli con show menyenaraikan nama profil yang akan anda perlukan, dan profil yang dipadam mesti dibina semula daripada ingatan pada saat terburuk. Catat nama antara muka, kaedah alamat dan metrik di sebelah empat nilai yang lain. Pemulihan yang boleh anda taip daripada nota lebih bernilai daripada yang perlu anda bina semula.
Mempersarakan kebergantungan tanpa wayar ialah perubahan sifat dan bukannya pemadaman. Dengan menetapkan connection.autoconnect no kelayakan dan sejarah alamat kekal utuh sementara Pi dihalang daripada menyambung semula ke rangkaian yang anda tinggalkan.
nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no
Sebelum anda mengisytiharkan kerja selesai, sahkan empat perkara: sasaran ubah hala sepadan dengan alamat kabel, pendengar terselamat daripada but semula, klien dari luar menyelesaikan jabat tangan, dan Pi masih menjawab pada alamat kabel selepas but semula. But semula ialah cara paling murah untuk menangkap peruntukan yang hanya wujud dalam kernel yang sedang berjalan. Jika mana-mana daripada empat itu gagal, naikkan semula profil tanpa wayar dengan sudo nmcli con up dan bandingkan nilai yang dicatat dengan yang aktif.