Como recuperar o host ip do nat virtualbox guest?

1

Eu tenho um host do windows 7 gerenciando um guest debian do VirtualBox com o nat. Este convidado está executando alguns serviços da web a partir do exterior através do redirecionamento de porta.

Eu preciso fornecer o acesso externo a esses serviços por meio de URLs, mas não posso confiar em uma resolução de dns adequada, portanto, tenho que propagar o IP do host para o ambiente convidado. Como eu poderia fazer isso com o impacto mínimo no host?

Alguns esclarecimentos: "o lado de fora", "acesso externo" refere-se a navegadores hospedados no mesmo nível do host, ou seja, eles não podem confiar apenas no endereço do host.

Um desenho vale mais que mil palavras:

+--------------+  External                         
| Windows Host |  network   +---------------------+
| +----+       |            |      Web client     |
| |    |      NAT           |  +----------------+ |
| |    ------------------------> Page generated | |
| |    |       |            |  |by VM with URLs | |
| | VM |       |            |  |to host         | |
| |    |       |            |  +--------|-------+ |
| |    |      FWD           |           |         |
| |    <--------------------------------+         |
| |    |       |            +---------------------+
| +----+       |                                   
+--------------+
    
por Dfaure 30.05.2017 / 10:03

2 respostas

1

Uma maneira de conseguir isso é o truque por trás de sites como whatsmyip.com . tudo o que você precisa é de um servidor da web em sua rede que envie o endereço IP de onde recebe uma solicitação de volta ao cliente.

Lembre-se de que, como você está usando o NAT, o servidor vê o endereço do roteador NAT (nesse caso, o host da VM) como endereço de origem.

Para conseguir isso, você pode criar um script php (por exemplo, whatsmyip.php ) na raiz da web do seu servidor web, como

//whatsmyip.php
<?php 
//Gets the IP address
$ip = getenv("REMOTE_ADDR") ; 
Echo "$ip; 
?> 

e acesse-o do seu convidado como http://webserver/whatsmyip.php

(fonte: Thoughtco.com )

Agora você só precisa avaliar essa resposta em seu serviço

    
por 28.06.2017 / 21:55
0

Tomando em conta a resposta de guntbert, isso envolve:

  • Use um servidor da web de terceiros na rede "externa" para hospedar um respondedor de endereço remoto, conforme descrito na resposta fornecida.
  • Durante a fase de inicialização da VM (e / ou periodicamente, de acordo com o contexto da rede), procure-o para buscar o endereço externo do host do Windows
  • Use o endereço recuperado para forjar URLs ao criar páginas.
por 29.06.2017 / 08:53