dnsmasq no pot enllaçar el port 53: trobeu el socket que el té
Un error d’enllaç al port 53 és una qüestió de propietat del socket. Llegiu els oients, reviseu l’abast del wildcard i decidiu quin dimoni respon als clients de VPN.
dnsmasq surt amb un error d’adreça ja en ús, i el registre anomena el port en lloc del culpable. En una màquina que també executa una VPN, el reflex és culpar les rutes enviades, però un error d’enllaç passa abans que cap client enviï una consulta. Alguna cosa ja té el socket, i la feina és identificar-la. Els canvis de ruta no poden alliberar un port.
Cinc passos, en aquest ordre: reproduïu l’error, llisteu els oients, enteneu el wildcard, assigneu la feina i després verifiqueu.
Pas 1: reproduïu i llegiu l’error
Inicieu dnsmasq en primer pla amb la mateixa configuració que fa servir el servei, perquè l’error aparegui al vostre terminal en lloc d’un registre que heu d’endevinar. Fixeu-vos en la família d’adreces i l’adreça local del missatge. Un enllaç a una adreça concreta i un enllaç al wildcard són errors diferents amb propietaris diferents.
Conserveu el text exacte. Una adreça en ús, un error de permisos i una interfície absent arriben tots com un error d’inici, i apunten a tres reparacions diferents.
Pas 2: llisteu els propietaris
Llisteu primer els sockets. Un filtre pel port d’origen 53 mostra tots dos transports i el procés propietari quan teniu privilegis per veure’l:
ss -lntup 'sport = :53'Llegiu la sortida en columnes: transport, adreça local, port, procés. Un oient TCP i un oient UDP són sockets separats, així que aturar-ne un no allibera l’altre. Una adreça wildcard cobreix totes les interfícies, cosa que vol dir que l’adreça de la VPN ja està ocupada encara que cap línia no la nomeni. I el nom del procés us diu si es tracta d’un resolutor gestionat per la distribució, d’un contenidor o d’una cosa que va deixar en marxa un experiment anterior.
Pas 3: la trampa del wildcard
L’opció bind-interfaces canvia si dnsmasq enllaça un socket wildcard o un socket per interfície configurada, tal com descriu la referència de dnsmasq. Sense aquesta opció, dnsmasq pot enllaçar el wildcard i filtrar les peticions per interfície, cosa que falla immediatament quan un altre dimoni té el wildcard. Linux afegeix bind-dynamic, que gestiona interfícies creades després de l’inici, una preocupació real quan la interfície de la VPN només apareix en connectar-se.
Per això dos dimonis que tots dos semblen configurats per a interfícies diferents encara xoquen. El conflicte és al socket, no a la intenció. Trieu el mode d’enllaç deliberadament i llegiu el comportament documentat per a la vostra versió abans de canviar-lo.
Pas 4: assigneu la feina
Decidiu quin dimoni respon als clients de la VPN i quin respon a l’amfitrió. Un resolutor que escolta a l’adreça del túnel i reenvia cap a dalt és una disposició habitual; dos resolutors que cadascun assumeix que posseeix el port 53 no és cap disposició.
Després expresseu aquesta decisió a la configuració de cada servei: adreces d’escolta, filtres d’interfície i reenviament. Canvieu-los a través del propietari del servei, sigui la unitat de la distribució, el gestor de xarxa o el runtime de contenidors, perquè el canvi sobrevisqui a un reinici.
Pas 5: verifiqueu el socket i després el camí
Després del reinici, confirmeu que existeixen els sockets previstos abans de provar un client. Un dimoni que mai no s’ha enllaçat no es pot salvar amb una ruta, i un error de client contra un socket ben enllaçat és un altre problema amb una altra solució. Després comproveu l’abastabilitat des d’un client al túnel. Només després val la pena preguntar si els noms necessaris es resolen.
Tres resultats separats que cal mantenir distints: el socket existeix, el client hi arriba, la resposta és correcta.
Què no s’ha de fer
No atureu un resolutor desconegut per alliberar el port sense saber què en depèn, perquè les consultes del propi amfitrió normalment en depenen. No copieu una recepta antiga que trasllada el segon dimoni a una adreça d’escolta pública, ja que això decideix com a efecte secundari qui us pot consultar. I no afegiu un reenviament quan l’error era local.
Si la màquina està gestionada, anoteu la decisió de propietat on la trobi el proper administrador. Els conflictes de port tornen sempre que es reconstrueix una imatge.