2013-05-12 103 views
9

我使用django的內置服務器來開發一個站點,我希望其他計算機位於同一網絡中,以便能夠使用本地IP地址訪問服務器。 我見過很多關於此的帖子,在嘗試了所有建議之後,仍然不允許我的網絡中的其他計算機訪問該網站。從另一臺機器訪問Django devserver相同的網絡

我運行使用

python manage.py runserver 0.0.0.0:8000 

服務器,並已經打開端口8000,你可以在下圖中看到的。

enter image description here

我在內核3.8.11-200

任何幫助運行Django的1.4.2,2.7.3的Python,Fedora的18是高度讚賞。謝謝。

回答

11

使用python manage.py runserver <ip>:<port>

例如,我的IP是192.168.0.100,我想在80端口上運行Django應用程序,我需要做的

[sudo] python manage.py runserver 192.168.0.100:80 

我的80端口需要root權限,也許是因爲我有其他應用程序訪問它。

通過192.168.0網絡中做這一切的客戶將能夠在192.168.0.100

訪問該網站
+0

謝謝拉傑夫。但是這不起作用,因爲我的本地Apache正在使用80端口,而8000端口是大多數django開發者使用的端口,因此我不想爲任何新東西而去。另外0.0.0.0:8000表示8000端口上的任何IP,因此給它一個特定的IP並沒有太大的區別。 – Paulo 2013-05-12 14:16:16

4

你開始Django的需要 - 這將接受從任何地方只要連接得到連接到它。

檢查您的防火牆,並確保它允許8000端口連接。像這樣的東西應該工作:

iptables -I INPUT -p tcp -m tcp --dport 8000 -j ACCEPT 

可選方案,您將需要INTERNAL_IPS變量的設置延伸,以允許遠程調試:https://docs.djangoproject.com/en/dev/ref/settings/#internal-ips

2

skarap是正確的。如果您的網絡配置正確,並且您的django應用程序使用pytho9n manage.py runserver 0.0.0.0:8000,並且仍然無法從VM主機訪問您的django應用程序,則幾乎肯定會出現防火牆問題。如果你正在運行iptables,上面的例子很好。

我在Windows 7主機的virtualbox虛擬機上部署了CentOS 7。我不知道這個發行版使用了firewalld,而不是iptables來控制訪問。

如果

PS -ae | grep防火牆 返回類似 602? 00:00:00 firewalld

你的系統運行的是firewalld,而不是iptables。他們不一起跑。

要糾正你的虛擬機,所以你可以從主機訪問你的Django網站上使用的命令:

防火牆-CMD --zone =公共--add端口= 8000/TCP --permanent 防火牆-cmd --reload

非常感謝pablo v在http://www.scriptscoop.net網站上指出了這一點。

相關問題