5 votes

Comment définir un port personnalisé pour le DNS dans systemd-resolved ?

Je veux ajouter le serveur DNS local avec le port 8600 à systemd-resolved pour la transmission des demandes. J'ai essayé de modifier /etc/systemd/resolved.conf comme ceci

[Resolve]
DNS=127.0.0.1#8600

mais cela ne compte pas comme un port (btw, : ne fonctionne pas aussi)

Y a-t-il un moyen de le faire ?

1voto

aliqandil Points 123

systemd-resolved n'est pas vraiment connu pour ses options de configuration complètes ! Mais je pense qu'avec un peu de iptables magique, vous pouvez le faire fonctionner. D'abord, faites quelque chose comme ça :

[Resolve]
DNS=127.0.0.52 #instead of 127.0.0.53 which is systemd-resolved itself.

Vous pouvez bien sûr choisir tout autre numéro entre 2 et 255. Mais n'utilisez pas le 53 lui-même.

Ensuite, vous devez rediriger tous les paquets dirigés vers 127.0.0.1:53 a 127.0.0.52:53 con iptables . Voici ma meilleure tentative non testée : (Je n'ai pas votre environnement pour tester ceci, corrigez-moi si je me trompe)

iptables -t nat -I OUTPUT -d 127.0.0.1 --dport 53 -j REDIRECT --to-destination 127.0.0.52 --to-ports 53

et enfin, vous devriez probablement rendre cette configuration persistante lors des redémarrages. iptables-persistent pourrait aider.

Quelques liens utiles :

1 votes

J'ai réussi à le faire fonctionner en modifiant un peu les règles d'iptables : iptables -t nat -A OUTPUT -d 127.0.0.52 -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600 y iptables -t nat -A OUTPUT -d 127.0.0.52 -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600

0voto

raven Points 101

Vous pouvez simplement spécifier le port (fonctionne avec DoT au moins) :

[Resolve]
DNS=<ip>:<port>#<domain>
DNSOverTLS=yes

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X