2013-08-31 50 views
9

Được rồi vì vậy tôi có máy tính xách tay thực của mình đã cài đặt trình phát vmware. Tôi đang chạy lubuntu như một máy ảo và tôi cài đặt django trên máy ảo và đang thử nghiệm ứng dụng của mình vì vậy tôi đã làm python manage.py runserver và tôi có thể truy cập ứng dụng bằng cách truy cập 127.0.0.1:8000 từ máy ảo của mình, tuy nhiên, nếu tôi đi đến 127.0.0.1:8000 từ máy tính thực tế (không phải máy ảo), nó nói 'chrome không thể kết nối với 127.0.0.1:8000' .. Bất kỳ ý tưởng làm thế nào để sửa chữa nó?cách truy cập máy chủ phát triển django trên máy ảo từ máy tính thực tế

+0

Hãy xem các chủ đề tương tự: http://stackoverflow.com/questions/1261975/addressing-localhost-from-a-virtualbox-virtual-machine http://stackoverflow.com/questions/1155487/access- tomcat-localhost8080-of-guest-virtualbox-vm-from-host-os – ambi

+0

Bạn sử dụng chế độ mạng nào? Cầu ? NAT? Chỉ máy chủ lưu trữ? –

+0

@JeffLi NAT .. khi tôi cố gắng thay đổi chế độ mạng thành cầu nối, hệ điều hành khách của tôi mất quyền truy cập internet. – user2719875

Trả lời

8

Tôi đã có thể nhận được câu trả lời @Kerberos để hoạt động. (không đủ điểm để bình luận vì vậy tôi thêm nó như là một câu trả lời riêng biệt).

Tôi đang chạy Ubuntu 12.04 LTS trong hệ điều hành khách trong VMWare. Các máy tính xách tay máy chủ đang chạy Windows 8.

Như đã đề cập bởi Kerberos, trong VMWare, đi đến Player ==> Manage ==> Virtual Machine Settings...

Trên tab Hardware, chọn Network Adaptor, sau đó chọn nút radio cho Bridged: Connect directly to the physical network. Chọn OK

Trong VM, thông tin kết nối mạng giờ đây sẽ có cùng địa chỉ IP của kết nối internet của máy chủ lưu trữ. Trong trường hợp của tôi: 192.168.1.141 (của bạn sẽ thay đổi).

Trong VM, bắt đầu Django sử dụng python manage runserver 192.168.1.141:8000

Sử dụng phương pháp này, tôi có thể truy cập vào máy chủ web chạy trong máy ảo tại địa chỉ IP này từ bên trong máy ảo, từ máy chủ, và từ các hệ thống khác trên cùng một mạng 192.168.1.xxx.

+0

đúng, nhưng vấn đề của tôi là ngay cả khi tôi đã thử những gì bạn đã làm, một khi tôi thiết lập kết nối của máy ảo để 'Bridged' và nhấn OK, tôi đã không thể kết nối với internet từ máy ảo của tôi. Địa chỉ IP của tôi cho máy ảo cũng không thay đổi và khi tôi thử chạy máy chủ trên địa chỉ IP của máy chủ lưu trữ của tôi, nó đưa ra lỗi nói rằng 'địa chỉ ip không thể gán cho' và tôi xác nhận rằng hai dòng đề nghị ở đây: s/13505540/lỗi-đó-ip-địa chỉ-cant-được-giao-to-in-django là trong etc của tôi/mạng/giao diện – user2719875

+2

Được rồi vì vậy tôi chỉ cần tắt máy ảo của tôi và khởi động lại nó và sau đó bắc cầu và nó hoạt động. Sau khi chuyển tiếp, tôi cũng chỉ chạy trình điều khiển trên 0.0.0.0:8000 và sau đó truy cập địa chỉ IP của máy ảo (192.169.2.49:8000) từ Google Chrome của máy chủ lưu trữ của tôi và nó hoạt động. – user2719875

8

Bạn có thể thử chạy các máy chủ trên 0.0.0.0

python manage.py runserver 0.0.0.0:8000 

Địa chỉ IP 0.0.0.0 có nghĩa là "tất cả các địa chỉ IP trên máy tính cục bộ" (hoặc tất cả địa chỉ IPv4 trên máy cục bộ).

Tiếp theo, bạn sẽ cần địa chỉ IP của máy ảo của mình. Visting http: // <ip_address_of_vm>: 8000 trên các máy tính khác nên truy cập máy chủ phát triển django trên máy ảo của bạn.

Lưu ý: Nếu máy ảo của bạn chỉ có IP nội bộ (ví dụ: 192.168.x.x) thì chỉ các máy tính trên cùng một mạng mới có thể truy cập VM.

+0

Hm, không hoạt động, vì vậy tôi đã làm python manage.py runserver 0.0.0.0:8000 và từ vm, đã đi đến 0.0.0.0:8000 và nó hoạt động. Sau đó tôi mở terminal trên vm và gõ ifconfig, nó nói inet addr: 192.168.174.132 vì vậy tôi đã đi đến 192.168.174.132:8000 từ máy tính của tôi nhưng điều đó không làm việc .. bất kỳ ý tưởng về những gì sai? – user2719875

+0

Tôi có thể thực hiện việc này và kết nối trên máy chủ lưu trữ với 'localhost: 8000'. Tôi đã thiết lập Virtualbox để sử dụng NAT và chuyển tiếp cổng 8000 trên máy khách. – Dan

2

để truy cập máy ảo (khách) từ bên ngoài máy chủ, bạn phải thiết lập chế độ mạng lưới khách để cầu

Bridge-chế độ kết nối khách với mạng thực tế để các máy khác có thể kết nối đến nó

+0

Tôi đã đi đến VMWare Player, nhấp vào 'Player -> Manage -> Virtual Machine Settings' và sau đó thay đổi 'Network Adapter' từ 'NAT' thành 'Bridged' ... sau khi thực hiện điều này, hệ điều hành khách của tôi không thể mất kết nối internet . Tôi chạy máy chủ django trên 0.0.0.0:8000 và có thể truy cập nó bằng cách truy cập 0.0.0.0:8000 HOẶC http://192.168.174.233:8000/ từ hệ điều hành khách, nhưng tôi không thể truy cập nó từ một trong hai hai liên kết từ hệ điều hành máy chủ .. bất kỳ ý tưởng tại sao? – user2719875

Các vấn đề liên quan