Servidor http simples em Python e máquinas virtuais - não é possível conectar-se. Ip mudou? [fechadas]

2

Por vezes, utilizo python -m SimpleHTTPServer one liner para servir ficheiros da minha vms para transferência para o meu anfitrião. Hoje eu tentei usá-lo dentro do virtualbox vm que está sob configurações de rede NAT - eu digitei este python um liner no console, então eu verifiquei o ip meu vm tem no knetworkmanager (eu uso debian com o kde no meu convidado), então no host i tentei conectar a esse ip na porta 8000 mas não consigo conectar ...

Meus convidados são frequentemente pausados, salvos, etc ... talvez ip deve mudar, mas algo deu errado porque convidado foi salvo e depois restaurado? Alguma idéia do que fazer com isso?

Estou usando o debian linux guest e o debian linux host.

    
por Phil 22.11.2009 / 19:36

2 respostas

1

Para obter o redirecionamento de porta, tente o seguinte

VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/HostPort" 8080
VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/GuestPort" 8000
VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/Protocol" TCP

Esta configuração funciona para placas de rede Intel virtuais. Para o PCnet, tente pcnet em vez de e1000 . E eu suponho que a porta na máquina virtual seja 8000. Lembre-se de alterar NAME_OF_VM para o nome da sua máquina virtual!

Depois disso, você pode acessar o servidor web no sistema host via http://localhost:8080/ , que será redirecionado para a máquina virtual com a porta 8000.

Você pode verificar a configuração com VBoxManage getextradata "NAME_OF_VM" enumerate . Para remover o tipo de configuração, o comando sem os valores.

VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/HostPort"
VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/GuestPort"
VBoxManage setextradata "NAME_OF_VM" "VBoxInternal/Devices/e1000/0/LUN#0/Config/pythonhttp/Protocol"
    
por 23.11.2009 / 09:27
0

Se o seu vms for NATed, ele terá um IP virtual em uma rede privada (faixa de IP RFC1918), para que ele não seja roteável e acessível externamente.

Para tornar acessível uma máquina NAT de fora, você precisa implementar um PORT REDIRECT no gateway virtual, mapeando uma solicitação em uma determinada porta para ser redirecionada para o IP virtual na porta especificada ou em outra.

Este não é um problema de virtualização, é assim que o NAT funciona. Assim, qualquer guia sobre o tópico que você encontrará na web será aplicado.

    
por 23.11.2009 / 09:13