Question Comment puis-je créer un sous-domaine générique dans mon fichier / etc / hosts / sous Linux / OSX?


J'ai besoin de tester des sous-domaines sur mon hôte local. Comment puis-je effectivement avoir ce résultat d'ajouter *.localhost.com à mon /etc/hosts/ fichier?

Si ce n'est pas possible, comment puis-je contourner ce problème? Je dois tester des sous-domaines génériques sur mon serveur local. Il s’agit d’un développeur Django, le serveur de développement Django peut-il gérer les sous-domaines? Un autre logiciel / routage peut-il me donner le résultat final souhaité?


151
2018-03-02 16:43


origine


Appartient au superutilisateur? - Paul R
Je sais que les gens disent que ce n'est pas possible! Mais comment puis-je le faire quand même! Quelque chose est en dehors de / etc / hosts / je peux utiliser pour obtenir l'effet. Je teste un serveur de développement. - MikeN
sur super-utilisateur: unix.stackexchange.com/questions/3352/… - Ciro Santilli 新疆改造中心 六四事件 法轮功
Comme la plupart des réponses se concentrent sur votre première question (caractères génériques de sous-domaine localhost), je répondrai sous forme de commentaire à votre question secondaire: oui, le serveur de développement Django est parfaitement capable de gérer les sous-domaines localhost, il vous suffit de convaincre votre navigateur et votre système d'exploitation. envoyer le trafic (en utilisant l’une des solutions ci-dessous)! - hheimbuerger


Réponses:


J'ai écrit un proxy DNS en Python. Il lira les entrées génériques dans / etc / hosts. Vois ici: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py


40
2018-05-02 09:30



C'est parfait! Je recherche depuis longtemps une solution simple comme celle-ci (travail sur OSX Mavericks BTW) - Billy Moon
maintenant, si nous pouvions seulement pip install il :) - metakermit
J'ai installé ceci, j'ai tout fait et je l'ai exécuté, mais cela ne bloque pas les sites. - DisplayName
Ne peut pas upvote cela assez. J'ai besoin de ça pour toujours, je suis tombé sur ce petit bijou de question et de réponse, et je suis un peu un pirate informatique de Python, et ceci est un détail intéressant. Merci d'avoir partagé! - Farley


Installer Dnsmasq (Je le fais de toute façon sur tous mes bureaux Linux sous forme de cache DNS). Dans dnsmasq.conf ajoutez la ligne:

address=/localhost.com/127.0.0.1

144
2018-03-03 02:37



Brillant! Remarque pour les utilisateurs de Mac, c’est aussi simple que cela: 1. sudo port install dnsmasq 2. éditer /opt/local/etc/dnsmasq.conf 3 sudo port load dnsmasq - tomc
OSX avec infusion: comme ci-dessus mais installez infusion Dnsmasq - Matt Humphrey
fyi brew> port (suggestion suggérée par @MattHumphrey) - electblake
Cet exemple ne fonctionne pas pour moi, peut-être parce que j'utilise vagrantup.com pour servir localement. Ne vous inquiétez pas, j'ai déjà changé l'adresse IP par la bonne 192.168.50.11 mais le DNS ne résout pas. Des idées, cet exemple est-il correct pour les adresses IP "non-127.0.0.1"? - Brian
Excellent conseil. Pour un poste de travail Ubuntu 14.04 (qui exécute dnsmasq par défaut), créez un fichier appelé /etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf et mettre la ligne address=/localhost.com/127.0.0.1 en elle, puis redémarrez. - user38397


Il n’est pas possible de spécifier des caractères génériques dans la /etc/hosts fichier. Spécifiez explicitement les noms d’hôte requis ou configurez un serveur de noms local avec les règles appropriées.


53
2018-03-02 16:46





Vous devez configurer un serveur DNS et avoir chacun client utilisez-le pour la résolution. Le serveur lui-même peut être aussi léger que Dnsmasq ou aussi lourd que LIER.


14
2018-03-02 20:28



+1 pour dnsmasq, très bien documenté et facile à utiliser - David Schmitt
Dnsmasq n'est pas capable de faire cela. - DisplayName
Quelle partie du comportement décrit dans le --address= La section de la page de manuel dnsmasq.conf ne couvre pas le cas d'utilisation décrit ci-dessus? - Gerald Combs


Flux de travail simple (pas besoin d'installer quoi que ce soit)

Personnellement, j’aime bien créer un fichier PAC pour cela et laisser mon navigateur l’utiliser.

Étape 1: créer un fichier, par exemple: *.proxy.pac* quelque part (j'utilise mon $home dossier)

Étape 2: collez ce code (par exemple avec le port 8000):

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*localhost")) {
    return "PROXY localhost:8000";
  }
  return "DIRECT";
}

Étape 3: Faites en sorte que votre navigateur utilise ce fichier PAC.

Vidéo Youtube pour PAC et Firefox 

Étape 4: Vous pouvez maintenant tester votre application en accédant à: http://mysubdomain.localhost/

Étape 5: Prendre plaisir :)


8
2018-03-02 16:47



Il convient peut-être de mentionner que cela n’affectera que votre navigateur. Autres programmes (comme wget, ne sera pas affecté par cela). Ce n’est pas un problème en soi, mais il est peut-être préférable de le mentionner. - Willem Van Onsem


Vous ne pouvez pas utiliser de joker dans /etc/hosts.

Regarde ici pour une bonne explication sur la façon de procéder sur OS X en utilisant BIND, le serveur DNS intégré mais inactif, et Apache.


3
2018-04-16 09:11



Apache n'a rien à voir avec les sous-domaines. - Anonymous


J'ai rangé un de mes vieux projets:

https://github.com/airtonix/avahi-aliases

exigences:

  • linux où avahi et python-avahi sont installables
  • vous êtes d'accord avec les domaines .local (avahi ne prend en charge aucun autre type)

Avantages par rapport à l'utilisation de Dnsmasq ou du proxy DNS python:

  • Les autres utilisateurs d'avahi / bonjour de votre réseau local peuvent résoudre les alias que vous créez et annoncer au réseau (à condition que vous autorisiez l'accès au port 5353).

3
2018-03-06 22:02





Cette solution basée sur DNS fonctionnait parfaitement dans mon cas, sans rien installer: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)


3
2018-03-02 16:49



Une telle solution incroyable pour Mac OSX. - iDev247
Lien mort, veuillez mettre à jour votre lien, votre solution ou déprécier d'une certaine manière cette réponse. À votre santé. - Relic
Fait (sauvegarde ajoutée) - Fedir RYKHTIK


Réponse courte:

Votre fichier / etc / hosts / ne vous laissera pas utiliser de jokers ou de numéros de port. Vous devrez créer une entrée pour chacun de vos sous-domaines.


2
2018-03-02 20:20



Qu'est-ce qui vous permettrait de spécifier les numéros de port? Pas DNS autant que je sache. - ptman