Vraag In mijn / etc / hosts / bestand op Linux / OSX, hoe voer ik een subdomein met een joker uit?


Ik moet subdomeinen testen op mijn localhost. Hoe kan ik dit resultaat van het toevoegen effectief hebben? *.localhost.com aan mijn /etc/hosts/ het dossier?

Als dit niet mogelijk is, hoe kan ik dit probleem dan omzeilen? Ik moet wildcard-subdomeinen op mijn localserver testen. Het is een Django devserver, kan de Django dev-server de subdomeinen aan? Kan een ander stukje software / routering mij het eindresultaat geven dat ik wil?


151
2018-03-02 16:43


oorsprong


Behoort de superuser? - Paul R
Ik weet dat mensen zeggen dat het niet mogelijk is! Maar hoe doe ik het hoe dan ook! Wat is iets buiten / etc / hosts / ik kan gebruiken om het effect te krijgen. Ik test een ontwikkelserver. - MikeN
op superuser: unix.stackexchange.com/questions/3352/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Aangezien de meeste antwoorden gericht zijn op uw eerste vraag (localcard subdomein-wildcards), zal ik uw secundaire vraag als een opmerking beantwoorden: ja, de Django dev-server is perfect in staat om localhost-subdomeinen af ​​te handelen, u hoeft alleen uw browser en uw besturingssysteem te overtuigen om het verkeer op zijn weg te sturen (met behulp van een van de verschillende oplossingen hieronder)! - hheimbuerger


antwoorden:


Ik heb een DNS-proxy in Python geschreven. Het zal jokertekens in / etc / hosts lezen. Kijk hier: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py


40
2018-05-02 09:30



Dit is perfect! Ik ben al heel lang op zoek naar een eenvoudige oplossing zoals deze (Werken aan OSX Mavericks tussen haakjes) - Billy Moon
nu, als we maar net konden pip install het :) - metakermit
Ik heb dit geïnstalleerd, heb alles gedaan en heb het uitgevoerd, maar het blokkeert geen sites. - DisplayName
Ik kan dit niet genoeg opwaarderen. Ik heb dit voor altijd nodig gehad, struikelde over dit juweeltje van een vraag en een antwoord, en ik ben een beetje een Python-hacker, en dit is een leuke tussendoortje. Bedankt voor het delen! - Farley


Installeren dnsmasq (Ik doe dit op al mijn Linux-desktops als een DNS-cache sowieso). In dnsmasq.conf voeg de regel toe:

address=/localhost.com/127.0.0.1

144
2018-03-03 02:37



Briljant! Opmerking voor Mac-gebruikers, het is echt zo simpel: 1. sudo port install dnsmasq 2. bewerken /opt/local/etc/dnsmasq.conf 3. sudo port load dnsmasq - tomc
OSX met brouwsel: hetzelfde als hierboven maar brouw installeer dnsmasq - Matt Humphrey
fyi brew> port (opnieuw suggestie @MattHumphrey) - electblake
Dit voorbeeld werkt niet voor mij, mogelijk omdat ik het gebruik vagrantup.com voor lokale portie. Maak je geen zorgen, ik heb het IP-adres al naar de juiste veranderd 192.168.50.11 maar DNS lost niet op. Eventuele ideeën, is dit voorbeeld correct voor "non-127.0.0.1" IP's? - Brian
Geweldige tip. Voor een Ubuntu 14.04-desktop (die standaard dnsmasq uitvoert), maakt u een bestand met de naam /etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf en zet de lijn address=/localhost.com/127.0.0.1 erin en start dan opnieuw op. - user38397


Het is niet mogelijk om jokertekens op te geven in de /etc/hosts het dossier. Geef de vereiste hostnamen expliciet op of stel een lokale naamserver in met de juiste regels.


53
2018-03-02 16:46





U moet een DNS-server instellen en elk hebben cliënt gebruik het voor een oplossing. De server zelf kan zoiets 'licht' als zijn dnsmasq of zo zwaar als BINDEN.


14
2018-03-02 20:28



+1 voor dnsmasq, dat is echt goed gedocumenteerd en gemakkelijk te gebruiken - David Schmitt
dnsmasq kan dit niet doen. - DisplayName
Welk deel van het gedrag beschreven in de --address= gedeelte van de dnsmasq.conf man-pagina heeft geen betrekking op de hierboven beschreven use case? - Gerald Combs


Eenvoudige workflow (u hoeft niets te installeren)

Ik maak er persoonlijk graag een PAC-bestand voor en laat mijn browser het gewoon gebruiken.

Stap 1: maak een bestand, bijvoorbeeld: *.proxy.pac* ergens (ik gebruik mijn $home map)

Stap 2: plak deze code (voorbeeld is met poort 8000):

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

Stap 3: Laat uw browser dit PAC-bestand gebruiken.

Youtube Video voor PAC en Firefox 

Stap 4: Nu kunt u uw app testen via: http://mysubdomain.localhost/

Stap 5: Genieten :)


8
2018-03-02 16:47



Misschien is het de moeite waard te vermelden dat dit alleen van invloed is op uw browser. Andere programma's (zoals wget, zal hier niet door beïnvloed worden). Dat is niet per se een probleem, maar misschien is het beter om dit te vermelden. - Willem Van Onsem


U kunt geen jokerteken gebruiken /etc/hosts.

Even kijken hier voor een goede uitleg over hoe te bereiken op OS X met behulp van BIND, de ingebouwde maar inactieve DNS-server en Apache.


3
2018-04-16 09:11



Apache heeft niets te maken met subdomeinen. - Anonymous


Ik heb een oud project van mij opgeruimd:

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

vereisten:

  • linux waar avahi en python-avahi installeerbaar zijn
  • je bent in orde met .local-domeinen (avahi ondersteunt geen andere soort)

Voordelen ten opzichte van het gebruik van dnsmasq of de python dns proxy:

  • andere gebruikers van avahi / bonjour op uw lokale netwerk kunnen de aliassen die u maakt en die zij aan het netwerk aankondigen, oplossen (op voorwaarde dat u toegang verleent tot poort 5353)

3
2018-03-06 22:02





Deze DNS-gebaseerde oplossing werkte perfect in mijn geval, zonder iets te hoeven installeren: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)


3
2018-03-02 16:49



Wat een geweldige oplossing voor Mac OSX. - iDev247
Dode link, update uw link, uw oplossing, of verwerp op een of andere manier dit antwoord. Proost. - Relic
Klaar (backup toegevoegd) - Fedir RYKHTIK