Memindahkan Pi dari Wi-Fi ke kabel tampak seperti pekerjaan lima menit, dan tetap begitu hanya jika Anda memperlakukan pemindahan sebagai empat pengaturan terpisah, bukan satu. Nama endpoint yang dihubungi klien Anda bisa tetap persis sama sementara alamat di bawahnya berubah. Yang benar-benar rusak adalah listener yang terikat ke alamat lama, penerusan port yang masih mengarah ke lease nirkabel, atau jalur balik yang keluar melalui antarmuka yang Anda kira sudah dipensiunkan. Panduan ini menjaga jalur pemulihan tetap terbuka di setiap langkah, sehingga peralihan yang gagal hanya membutuhkan satu reboot.

Catat empat pemiliknya sebelum Anda mencabut apa pun

Empat pengaturan menentukan apakah peralihan bertahan: alamat Pi, alamat pengikatan OpenVPN, target pengalihan router, dan jalur yang diambil jawaban. Catat keempatnya sebelum Anda menyentuh kabel, karena begitu lease nirkabel hilang Anda tidak bisa lagi membaca nilai lama dari mesin. Antarmuka kabel tidak mewarisi profil nirkabel, dan di Bookworm alamat tinggal di NetworkManager sementara Bullseye menyimpannya di dhcpcd.conf. Reservasi yang menyematkan alamat MAC nirkabel tidak mengatakan apa pun tentang eth0. Perlakukan alamat baru sebagai penetapan baru yang membutuhkan 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

Listener adalah pemilik kedua. Jika layanan dimulai dengan alamat pengikatan tertentu, socket mati bersama antarmuka lama; jika ia mengikat semua alamat, socket bertahan dan aturan router menjadi satu-satunya yang tersisa untuk diperbaiki.

Target pengalihan dan jalur balik adalah pemilik yang dilewati orang. Penerusan yang masih menunjuk ke 10.42.7.24 mengirim jabat tangan yang datang ke alamat yang tidak lagi dimiliki Pi, sehingga klien kehabisan waktu tanpa satu pun baris log di sisi server. Jalur balik penting ketika kedua tautan sebentar aktif, karena Pi menjawab dari antarmuka yang disukai tabel routing, dan itu tidak selalu antarmuka tempat paket tiba. Pencarian rute di bawah menunjukkan sumber mana yang dipilih kernel.

Baca socket yang sebenarnya sebelum Anda memercayai alamat baru

Berkas konfigurasi menjelaskan niat dan socket menjelaskan kenyataan. Tanyakan kepada layanan yang berjalan ke apa ia terikat alih-alih memercayai konfigurasi yang Anda ingat. Panduan OpenVPN 2.6 mendefinisikan --local sebagai pengikatan ke satu alamat dan mencatat bahwa menghilangkannya mengikat setiap antarmuka.

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

Baca kolom alamat lokal, bukan kolom status. Baris yang menampilkan 10.42.7.24:1194 berarti socket disematkan ke alamat yang akan Anda hapus, sedangkan 0.0.0.0:1194 atau *:1194 berarti daemon akan mengikuti perubahan antarmuka sendiri. Jika alamat disematkan, sunting profil dan mulai ulang unit alih-alih menulis ulang socket yang hidup dengan tangan, lalu pastikan layanan masih mencapai berkas sertifikat dan kuncinya.

Jalankan pemindahan dalam urutan yang menjaga Anda tetap terjangkau

Urutan lebih penting daripada kecepatan di sini. Naikkan tautan kabel selagi yang nirkabel masih bekerja, pastikan alamat baru dan jalur balik, lalu baru pensiunkan profil nirkabel. Urutan itu menjaga sesi yang berfungsi tetap terbuka sampai penggantinya 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 apakah eth0 menerima alamat yang Anda maksudkan, dan yang kedua mencetak alamat sumber yang akan digunakan kernel untuk tujuan luar, jadi jalankan sebelum dan sesudah perubahan. Jika sumber itu masih alamat nirkabel, tautan kabel belum menjadi jalur pilihan dan uji dari luar akan gagal karena alasan yang tidak ada hubungannya dengan OpenVPN. Perbaiki preferensi routing sebelum Anda menyentuh penerusan.

Dengan kedua tautan aktif, Pi mungkin lebih memilih rute default nirkabel karena dipasang lebih dulu atau karena tautan kabel membawa metrik lebih tinggi. Di Bookworm setelan yang didukung adalah ipv4.route-metric pada koneksi, dan di Bullseye padanannya adalah baris metric khusus antarmuka di dhcpcd.conf. Turunkan prioritas tautan nirkabel alih-alih menonaktifkannya, agar jalur pengembalian tetap satu perintah jauhnya.

Buktikan terowongan dari luar, bukan dari LAN

Koneksi VPN yang bekerja dari sofa membuktikan lebih sedikit daripada yang terlihat. Lalu lintas dari dalam LAN ke alamat publik melewati aturan hairpin atau pantulan yang diterapkan router secara tidak konsisten, sehingga uji LAN yang lolos bisa hidup berdampingan dengan jalur luar yang rusak. Gunakan ponsel dengan data seluler, atau host mana pun di luar jaringan, untuk uji penerimaan. Simpan percobaan LAN sebagai diagnostik opsional terpisah.

Lalu baca log dalam urutan paket datang. Tidak ada apa pun berarti jabat tangan tidak pernah mencapai Pi, jadi target pengalihan atau firewall host salah. Jabat tangan yang dimulai lalu macet menunjuk ke kunci, sertifikat, atau MTU. Sesi yang selesai lalu jatuh biasanya berarti jalur balik atau rute default kedua, dan baris log klien Initialization Sequence Completed memberi tahu Anda bahwa terowongannya sendiri sudah naik.

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

Jika tidak ada yang muncul di log server saat klien mencoba lagi, berhentilah membaca konfigurasi OpenVPN dan kembalilah ke target pengalihan. Tangkapan menjawab pertanyaan kedatangan dalam hitungan detik, dan paket masuk tanpa balasan mempersempit masalah ke rute.

Pertahankan pengembalian satu langkah dan pensiunkan profil nirkabel

Biarkan profil nirkabel terpasang sampai susunan kabel melewati reboot. nmcli con show mencantumkan nama profil yang akan Anda butuhkan, dan profil yang dihapus harus dibangun ulang dari ingatan pada saat terburuk. Catat nama antarmuka, metode alamat, dan metrik di samping empat nilai lainnya. Pengembalian yang bisa Anda ketik dari catatan lebih berharga daripada yang harus Anda rekonstruksi.

Memensiunkan ketergantungan nirkabel adalah perubahan properti, bukan penghapusan. Dengan menyetel connection.autoconnect no kredensial dan riwayat alamat tetap utuh sementara Pi dicegah menyambung kembali ke jaringan yang Anda tinggalkan.

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

Sebelum menyatakan pekerjaan selesai, pastikan empat hal: target pengalihan cocok dengan alamat kabel, listener selamat dari reboot, klien dari luar menyelesaikan jabat tangan, dan Pi masih menjawab di alamat kabel setelah reboot. Reboot adalah cara termurah untuk menangkap penetapan yang hanya ada di kernel yang berjalan. Jika salah satu dari empat gagal, naikkan kembali profil nirkabel dengan sudo nmcli con up dan bandingkan nilai yang dicatat dengan yang aktif.

Artikel terkait