Testando a capacidade de um servidor para servir um determinado domínio

10

Digamos que você tenha Server A configurado com seu servidor web favorito para veicular www.example.com . Agora você deseja mover isso para Server B . Depois de um monte de copiar e configurar, o novo servidor parece estar pronto. Um teste final seria em ordem: Antes de alterar os registros DNS, como alguém pede www.example.com do Servidor B quando os registros DNS ainda apontam para o servidor A?

Enquanto minha pergunta principal foi respondida, no caso de / etc / hosts não estar sob o meu domínio de influência, é possível testá-la com o telnet falando em HTTP1.1 bruto para o servidor web?

    
por Jarmund 27.12.2015 / 02:29

5 respostas

12

DNS é uma coisa mágica. Com controle suficiente sobre um PC cliente, você pode fazer right.com em wrong.com e viceversa.io . Ir para um PC cliente de teste e estragar com sua resolução de DNS, alterando o arquivo host nesse cliente, ou você pode fazer algo um pouco mais complexo e dar a esse host um servidor DNS simples para consulta, como dnsmasq . De qualquer maneira que você vá sobre o processo, o objetivo final é fazer com que a resposta do DNS para consultas relativas a www.example.com responda com o endereço IP para o Servidor B. Os cabeçalhos de host HTTP exibirão o nome DNS para www.example.com, mas ser destinado ao Servidor B.

Magia!

    
por 27.12.2015 / 02:37
11

É importante observar que o que importa fazer um teste como este para HTTP não está realmente relacionado ao DNS, mas ao que o cliente HTTP envia como o valor do cabeçalho Host .

O cliente precisa se conectar ao endereço IP e à porta corretos, obviamente, mas além disso, tudo se resume ao cabeçalho Host , que está embutido na própria solicitação HTTP.


Para um teste rápido, o seguinte comando pode ser usado sem alterar qualquer configuração no nível do sistema operacional no cliente:

$ curl -H "Host: www.example.com" http://192.0.2.17/foo/bar

ou, para esse assunto,

$ curl -H "Host: www.example.com" http://beta.example.com/foo/bar


Para fazer o mesmo com um navegador da Web comum, você precisaria de uma extensão de navegador que pudesse modificar os cabeçalhos de solicitação (ou possivelmente um proxy HTTP que altera cabeçalhos) ou precisaria alterar a configuração do sistema operacional da máquina cliente.

Como foi mencionado, o meio mais fácil de fazer essa alteração de configuração seria adicionar uma entrada ao arquivo hosts . Dessa forma, a biblioteca de resolução de SO do cliente já teria um hit ao consultar o arquivo hosts e nem precisaria fazer uma pesquisa de DNS.

Outras opções incluem a alteração dos servidores de resolução de DNS configurados no cliente para um servidor de nomes configurado para responder conforme desejado.

    
por 27.12.2015 / 18:19
4

Você pode testar isso com telnet . Você precisa fazer uma solicitação HTTP bruta digitando os comandos. Você não pode cometer erros, e alguns servidores têm um tempo limite, então você também tem que digitar toda a solicitação dentro desse prazo.

O comando será algo assim:

telnet serverb 80

O pedido será parecido com isto:

GET / HTTP/1.1
Host: www.example.com

Observe que ele deve terminar com uma linha em branco, então você deve pressionar Enter duas vezes depois do cabeçalho do host.

    
por 27.12.2015 / 03:22
3

O que geralmente faço é forçar www.example.com para o endereço IP do servidor B em meu / etc / hosts. Eu venho fazendo isso desde que usei o Mosaic e, como raramente o faço, não sinto necessidade de encontrar melhor.

Olhando em volta um pouco para você, eu encontrei o link que é respondido por < href="https://addons.mozilla.org/es/firefox/addon/foxyproxy-standard/"> link mas há uma nota muito recente dizendo que ela foi abandonada.

    
por 27.12.2015 / 02:44
2

Se você precisar verificar se funciona, aconselho um plug-in simples como Modify Headers para o Firefox e altere o HOST para www.mydomain.com .

    
por 28.12.2015 / 05:44