J'ai résolu un problème similaire hier, de sorte que les dépôts git sur mon ordinateur portable peuvent être synchronisés avec une télécommande sur mon ordinateur de bureau, sans avoir à utiliser une télécommande différente selon que je suis sur le réseau local ou loin de chez moi.
J'ai couru dnsmasq
sur mon bureau, avec cette configuration :
domain-needed
bogus-priv
no-poll
local=/localdomain/
addn-hosts=/etc/extra_hosts
/etc/extra_hosts
contient une seule entrée avec l'IP de mon bureau sur le LAN et le nom de domaine qui se résout à mon IP externe, par ex.
192.168.0.72 jwakely.example.com
Ensuite, sur mon ordinateur portable, modifiez la configuration de NetworkManager pour ma connexion wifi LAN en "Adresses DHCP uniquement" et définissez 192.168.0.72 comme serveur DNS primaire, et mon routeur comme secondaire (pour faire cela sans l'interface graphique de NetworkManager, définissez simplement DNS1 et DNS2 et PEERDNS=no, ou mettez les serveurs de noms dans /etc/resolv.conf
manuellement)
Il a fonctionné parfaitement une fois que je me suis souvenu d'autoriser les requêtes DNS (port 53) à travers le pare-feu de mon ordinateur.
Lorsque je suis sur le réseau local de ma maison, l'ordinateur portable utilise l'ordinateur de bureau pour les requêtes DNS, et obtient donc l'adresse IP interne pour l'ordinateur de bureau. jwakely.example.com
et toutes les autres requêtes DNS sont redirigées vers le serveur DNS habituel de mon ordinateur de bureau (qui se trouve être mon routeur ADSL). dnsmasq
Tous les autres hôtes du réseau local utilisent toujours le routeur pour le DNS, comme d'habitude. Si mon ordinateur portable est sur le réseau local mais que mon ordinateur de bureau ne fonctionne pas, l'ordinateur portable utilise son serveur DNS secondaire et ne peut pas obtenir l'adresse IP interne pour le routeur. jwakely.example.com
mais ce n'est pas grave car la machine ne fonctionne pas de toute façon.