host resolve configuração para um comando? [duplicado]

1

Para modificar o endereço resolvido de um host, podemos alterar o / etc / hosts
Eu quero ter essa funcionalidade ao executar um único script sem realmente modificar / etc / hosts
Algo

$HOST=foo.bar:10.0.1.256 ping foo.bar

seria o mesmo que ter uma entrada em / etc / hosts 10.0.1.256 foo.bar
e $ ping foo.bar

Isso é factível?

    
por Pengtuzi 23.10.2016 / 19:09

2 respostas

0

Não há arquivos de host de usuário, uma configuração de ligação complexa funcionaria hospedando o aplicativo por trás de um ip interno diferente ... no entanto ... o aplicativo deve ser capaz de pular o DNS ...

Se você estiver procurando fazer isso para um aplicativo que está fazendo chamadas http / https, poderá ignorar totalmente o DNS. Ao fazer uma requisição http, o domínio é copiado para os cabeçalhos, você pode pular este passo, sobrescrevendo o cabeçalho ...

por exemplo;

wget --header="Anfitrião: www.example.com" " link "

Isso enviará uma solicitação http para localhost, mas a solicitação http será para www.example.com e não para 127.0.0.1 ...

(ignorou o DNS e fez uma chamada http válida para o domínio correto).

Se por alguma razão for um serviço tcp alternativo que não tenha identificador como um host na requisição, então uma configuração de bind louco funcionaria (negar o ip src do aplicativo, ele resolverá em um serviço de dns diferente) .

Outra solução seria usar o firewall do kernel ...

divida o aplicativo em um lan diferente ou talvez um endereço de loopback, então você poderá DNAT para um IP diferente baseado no endereço do pacote de origem ...

    
por 23.10.2016 / 19:51
0

Duplicado de Can Eu crio um arquivo hosts específico do usuário para complementar / etc / hosts? , onde explica o uso de HOSTALIASES.

Essencialmente, você define uma variável de ambiente HOSTALIASES que aponta para o seu próprio arquivo de hosts.

Mais informações na página man hostname (7)

    
por 23.10.2016 / 20:12