views:

1641

answers:

3

Software: VMWare Fusion 2.05 on Mac OS X 10.5.8 (also applies to VMWare Workstation 6.5.2 on Vista, used for verification of the issue) Guest: Ubuntu Server 9.04 (also applies to Ubuntu Desktop 9.04, used for verficiation of the issue) VMWare Networking: bridged Router: Apple TimeCapsule, latest firmware

Issue:

After successfully installing Django 1.1 on the guest, and starting Django's built-in webserver (listening on 127.0.0.1:8000), I verified via wget 127.0.0.1:8000 (and also via Firefox on Ubuntu Desktop 9.04) that indeed the server works.

However, I haven't been able to connect to the Django server from the host machine.

Specifically:

In bridged mode the guest OS has the IP 172.16.1.6 (assigned via DHCP by the TimeCapsule), the host OS has the IP 172.16.1.2 (assigned via DHCP by the TimeCapsule). I can successfully ping the guest from the host, and also ping the host from the guest. But the Django server on port 8000 is not reachable from the host OS.

Is there any configuration setting that must be enabled for routing the Django server from the guest to the host? Either in Ubuntu, or in VMWare (Workstation or Fusion), or in Vista or Mac OS X?

EDIT:

I found the solution. When invoking django-admin.py runserver, there is a documented optional argument ipaddr:port. Setting this to 172.16.1.6 (instead of the default 127.0.0.1) enabled the correct routing from guest to host.

A: 

This may be a serverFault question?

I run multiple VMWare instances on macs all the time and they access each other fine and access from the host works fine, so there is no theoretical problem here. I also find nothing wrong in what you describe, though I'm not a Django expert.

I suggest trying something easier, like trying to access a simple text index.html file, first from 127.0.0.1:8000 from within the VM and then 172.16.1.6:8000 from the host. Or perhaps even set up apache and try these on port 80 to make sure the connectivity is OK.

Devin Ceartas
Thanks for the suggestion. wget from within the VM works fine, but not from the host. I haven't tried port 80 yet, but I also haven't seen a configuration setting yet in any part of the equation (VMWare, Ubuntu, Mac OS) that suggests that port 80 is treated differently than port 8000.
prometheus
A: 

I found the solution. When invoking django-admin.py runserver, there is a documented optional argument ipaddr:port. Setting this to 172.16.1.6 (instead of the default 127.0.0.1) enabled the correct routing from guest to host.

prometheus
You should accept this as the answer, so that this question is no longer considered 'unanswered'.
Craig Trader
+2  A: 

I found that you can just start up the server with the following command, and that opens up all ip's...

python manage.py runserver 0.0.0.0:8000

You're welcome.

Leddo