Vagrant - Conectando-se ao servidor django a partir do host

0

Eu tenho lutado com isso por dias. Isso está me deixando louco, porque todo esse tempo eu poderia ter gasto desenvolvendo. Eu instalei o django dentro de uma VM Ubuntu, e eu preciso acessá-lo a partir do host (Windows 10), mas parece não haver maneira de acessá-lo. Eu usei o puphpet para configurá-lo, aqui está a parte do arquivo config.yaml que definiu o IP e o host da rede:

            machines:
                vflm_zpwmfbk4aw05:
                    id: machine1
                    hostname: machine1.puphpet
                    network:
                        private_network: 192.168.56.101
                        forwarded_port:
                            vflmnfp_pjysbxl944a0:
                                host: '9346'
                                guest: '22'
                    memory: '2000'
                    cpus: '1'

Quando eu executo o servidor django assim:

python manage.py runserver 0.0.0.0:8000

Funciona bem, mas não há como acessá-lo a partir da máquina host. Apontar meu navegador para 192.168.56.101:8000 me dá um erro 404. Eu tentei todos os tipos de variações disso, alterando as portas, alterando o IP.

Heres que está no arquivo /etc/hosts :

127.0.0.1       machine1.puphpet        machine1
127.0.0.1       localhost
127.0.1.1       vagrant.vm      vagrant
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Heres o arquivo de interfaces:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
pre-up sleep 2
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto enp0s8
iface enp0s8 inet static
      address 192.168.56.101
      netmask 255.255.255.0
#VAGRANT-END

Eu executei um scanner de porta em 192.168.56.101 e ele detectou o servidor apache sendo executado na porta 80, mas não detectou nada na porta 8000. Poderia ser esse o problema? O apache2 poderia estar usando a porta que o servidor django usaria geralmente?

EDIT: Eu acho que o problema é que a porta de convidado está definida para 22. O que é um problema porque as portas usadas por outros serviços, quando eu tento executar o servidor web django nele, ele diz que é proibido. E o problema real aqui é quando eu mudo o arquivo config.yaml , ele não muda nada quando eu recarregar a VM. Nada que eu faça para o arquivo config.yaml tem algum efeito. Existe algum cache sorta que eu preciso limpar?

    
por Horse O'Houlihan 04.01.2017 / 05:09

1 resposta

1

Eu percebi isso. O problema foi com a configuração de encaminhamento de porta. Eu resolvi adicionando isso ao Vagrantfile:

  config.vm.network "forwarded_port", guest: 8000, host: 3333

Isso significa que posso me conectar ao servidor em execução na porta 8000 na máquina convidada, apontando o navegador de minhas máquinas host para a porta 3333 . Por exemplo, eu executo o servidor na máquina convidada assim:

python manage.py 0.0.0.0:8000

Em seguida, na minha máquina convidada, posso acessá-lo apontando o navegador para aqui:

127.0.0.1:3333
    
por Horse O'Houlihan 06.01.2017 / 05:24