Supposons que vous avez Server A
configuré votre serveur Web-démon préféré pour servir www.example.com
. Vous voulez maintenant déplacer ceci vers Server B
. Après un tas de copie et de configuration, le nouveau serveur semble être prêt. Un test final serait de mise: Avant de modifier les enregistrements DNS, comment demander au www.example.com
serveur B quand les enregistrements DNS pointent toujours vers le serveur A?
Bien que ma question principale ait été répondue, dans le cas où / etc / hosts ne serait pas sous mon domaine d'influence, est-il possible de le tester avec telnet en parlant à la place de HTTP1.1 brut au serveur Web?
domain-name-system
http
testing
Jarmund
la source
la source
Réponses:
Le DNS est une chose magique. Avec suffisamment de contrôle sur un PC client, vous pouvez faire
right.com
enwrong.com
etviceversa.io
. Sautez sur un PC client de test et détruisez sa résolution DNS en changeant le fichier hôte sur ce client, ou vous pouvez faire quelque chose d'un peu plus complexe et donner à cet hôte un serveur DNS simple à interroger, commednsmasq
. Quelle que soit la manière dont vous procédez, le but ultime est de faire en sorte que la réponse DNS pour les requêtes concernant lawww.example.com
réponse avec l'adresse IP du serveur B. Les en-têtes d'hôte HTTP portent alors le nom DNS de www.example.com, mais visent à Serveur B.La magie!
la source
/etc/hosts
, je ne m'en suis pas rendu compte, et cela a parfaitement fonctionné. Bravo pour le rappel!hosts
fichier n'est pas impliqué dans la résolution DNS mais est un mécanisme de recherche de nom entièrement distinct que la bibliothèque de résolveurs fournie par le système d'exploitation client peut, et dans la plupart des cas, utilisera en plus des recherches dans DNS. Personnellement, je pense que le bit "c'est magique" ne fait qu'alimenter "il n'y a pas besoin de comprendre", ce qui est certainement une mauvaise chose pour les professionnels.Il est important de noter que ce qui importe de faire un test comme celui-ci pour HTTP n'est pas vraiment lié au DNS, mais ce que le client HTTP envoie comme
Host
valeur d'en-tête.Le client doit se connecter à la bonne adresse IP et au bon port, bien sûr, mais au-delà, tout se résume à l'en-
Host
tête qui est en ligne dans la requête HTTP elle-même.Pour un test rapide, la commande suivante peut être utilisée sans modifier la configuration au niveau du système d'exploitation sur le client:
ou, d'ailleurs,
Pour faire de même avec un navigateur Web standard, vous auriez besoin d'une extension de navigateur qui peut modifier les en-têtes de demande (ou éventuellement d'un proxy HTTP qui change les en-têtes), ou vous devriez changer la configuration du système d'exploitation de l'ordinateur client.
Comme cela a été mentionné, le moyen le plus simple d'effectuer un tel changement de configuration serait d'ajouter une entrée au
hosts
fichier. De cette façon, la bibliothèque du résolveur du système d'exploitation client obtiendrait déjà un hit lors de la consultation duhosts
fichier et n'aura même pas besoin de faire une recherche DNS.Les autres options incluent la modification des serveurs de résolution DNS configurés sur le client en un serveur de noms qui est configuré pour répondre comme vous le souhaitez.
la source
curl
vous permet de remplacer la résolution de nom normale (DNS ou fichier hôte) et de toujours faire les en-têtes automatiquement, ainsi que SNI si vous utilisez / testez httpS. Voir--resolve
dans votre page de manuel ou sur curl.haxx.se/docs/manpage.html .Vous pouvez tester cela avec
telnet
. Vous devez effectuer une requête HTTP brute en tapant les commandes. Vous ne pouvez pas faire d'erreurs, et certains serveurs ont un délai d'attente, vous devez donc également taper la demande entière dans ce délai.La commande ressemblera à ceci:
La demande ressemblera à ceci:
Notez qu'il doit se terminer par une ligne vierge, vous devez donc appuyer sur Entrée deux fois après l'en-tête de l'hôte.
la source
Host
n'est pas en majuscules. (Et apparemment, certains serveurs pourraient avoir des problèmes avec différentes capitalisations.)Ce que je fais habituellement, c'est forcer www.example.com à l'adresse IP du serveur B dans mon / etc / hosts. Je fais ça depuis que j'utilise Mosaic et depuis que je le fais rarement, je n'ai pas ressenti le besoin de trouver mieux.
En cherchant un peu pour vous, j'ai trouvé /superuser/403042/custom-host-file-for-firefox qui est répondu par https://addons.mozilla.org/es/firefox/addon/ foxyproxy-standard / mais il y a une note très récente disant qu'elle est abandonnée.
la source
Si vous avez besoin de vérifier si cela fonctionne, je conseille un plugin broswer simple comme
Modify Headers
pour Firefox, et changez leHOST
enwww.mydomain.com
.la source