dnsmasq keluar dengan ralat alamat sudah digunakan, dan log menyebut port dan bukan punca sebenar. Pada mesin yang juga menjalankan VPN, reaksi pertama ialah menyalahkan laluan yang ditolak, tetapi kegagalan bind berlaku sebelum mana-mana klien menghantar pertanyaan. Sesuatu sudah memegang soket itu, dan tugasnya ialah mengenal pastinya. Perubahan laluan tidak boleh melepaskan port.

Lima langkah, dalam urutan ini: hasilkan semula ralat, senaraikan pendengar, fahami wildcard, tetapkan tugas, kemudian sahkan.

Langkah 1: hasilkan semula dan baca ralat

Mulakan dnsmasq di latar hadapan dengan konfigurasi yang sama seperti yang digunakan oleh perkhidmatan, supaya ralat muncul di terminal anda dan bukan dalam log yang perlu anda teka. Perhatikan keluarga alamat dan alamat setempat dalam mesej. Bind ke alamat tertentu dan bind ke wildcard ialah kegagalan berbeza dengan pemilik berbeza.

Simpan teks yang tepat. Alamat sedang digunakan, kegagalan kebenaran dan antara muka yang tiada semuanya datang sebagai kegagalan permulaan, dan ia menunjuk kepada tiga pembaikan berbeza.

Langkah 2: senaraikan pemilik

Senaraikan soket dahulu. Penapis pada port sumber 53 menunjukkan kedua-dua pengangkutan dan proses pemilik apabila anda mempunyai keistimewaan untuk melihatnya:

ss -lntup 'sport = :53'

Baca output dalam lajur: pengangkutan, alamat setempat, port, proses. Pendengar TCP dan pendengar UDP ialah soket berasingan, jadi menghentikan satu tidak melepaskan yang lain. Alamat wildcard meliputi setiap antara muka, bermakna alamat VPN sudah diambil walaupun tiada baris menyebutnya dengan nama. Dan nama proses memberitahu anda sama ada ini resolver yang diuruskan oleh distribusi, kontena, atau sesuatu yang ditinggalkan berjalan oleh eksperimen terdahulu.

Langkah 3: perangkap wildcard

Pilihan bind-interfaces menukar sama ada dnsmasq mengikat soket wildcard atau satu soket bagi setiap antara muka yang dikonfigurasi, seperti yang diterangkan oleh rujukan dnsmasq. Tanpanya, dnsmasq boleh mengikat wildcard dan menapis permintaan mengikut antara muka, yang gagal serta-merta apabila daemon lain memegang wildcard. Linux menambah bind-dynamic, yang mengendalikan antara muka yang dicipta selepas permulaan, kebimbangan sebenar apabila antara muka VPN hanya muncul semasa menyambung.

Itulah sebabnya dua daemon yang kedua-duanya kelihatan dikonfigurasi untuk antara muka berbeza masih berlanggar. Konflik itu pada soket, bukan pada niat. Pilih mod bind dengan sengaja dan baca tingkah laku terdokumen untuk versi anda sebelum mengubahnya.

Langkah 4: tetapkan tugas

Tentukan daemon mana yang menjawab klien VPN dan mana yang menjawab hos. Satu resolver yang mendengar pada alamat terowong dan memajukan ke hulu ialah susunan biasa; dua resolver yang masing-masing menganggap ia memiliki port 53 bukanlah susunan sama sekali.

Kemudian nyatakan keputusan itu dalam konfigurasi setiap perkhidmatan: alamat dengar, penapis antara muka dan pemajuan. Tukarlah melalui pemilik perkhidmatan, sama ada unit distribusi, pengurus rangkaian atau runtime kontena, supaya perubahan itu kekal selepas mula semula.

Langkah 5: sahkan soket, kemudian laluan

Selepas mula semula, sahkan soket yang dimaksudkan wujud sebelum menguji klien. Daemon yang tidak pernah mengikat tidak boleh diselamatkan oleh laluan, dan kegagalan klien terhadap soket yang diikat dengan betul ialah masalah lain dengan pembaikan lain. Kemudian semak kebolehcapaian dari klien pada terowong. Hanya selepas itu wajar bertanya sama ada nama yang diperlukan diselesaikan.

Tiga hasil berasingan yang perlu dibezakan: soket wujud, klien mencapainya, jawapannya betul.

Apa yang tidak patut dilakukan

Jangan hentikan resolver yang tidak dikenali untuk melepaskan port tanpa mengetahui apa yang bergantung padanya, kerana carian hos itu sendiri biasanya bergantung. Jangan salin resipi lama yang memindahkan daemon kedua ke alamat dengar awam, kerana itu sebagai kesan sampingan menentukan siapa yang boleh bertanya kepada anda. Dan jangan tambah pemajuan apabila kegagalan itu setempat.

Jika mesin diuruskan, catat keputusan pemilikan di tempat yang akan ditemui oleh pentadbir seterusnya. Konflik port kembali setiap kali imej dibina semula.

Artikel berkaitan