簡體   English   中英

從同一網絡的另一台機器訪問 Django devserver

[英]Access Django devserver from another machine same network

我正在使用 django 的內置服務器來開發一個站點,並且我希望我所在的同一網絡中的其他計算機能夠使用本地 IP 地址訪問服務器。 我看過很多關於這個的帖子,在嘗試了所有建議之后,它仍然不允許我網絡中的其他計算機訪問該站點。

我使用運行服務器

python manage.py runserver 0.0.0.0:8000

並且已經打開了端口8000 ,如下圖所示。

在此處輸入圖像描述

我在內核 3.8.11-200 上運行 Django 1.4.2、Python 2.7.3、Fedora 18

非常感謝任何幫助。 謝謝。

使用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 權限,可能是因為我有其他應用程序在訪問它。

您還必須將 IP 地址添加到 settings.py 中的ALLOWED_HOSTS列表中

通過這樣做,192.168.0 網絡中的所有客戶端將能夠訪問位於 192.168.0.100 的站點

您正在根據需要啟動 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

斯卡拉普是正確的。 如果您的網絡配置正確並且您的 django 應用程序使用 pytho9n manage.py runserver 0.0.0.0:8000 並且您仍然無法從 VM 主機訪問您的 django 應用程序,那么幾乎可以肯定是防火牆問題。 如果您正在運行 iptables,則上圖很好。

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

如果

ps -ae | grep 防火牆返回類似 602 的內容? 00:00:00 防火牆

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

要更正您的 VM,以便您可以從主機訪問您的 django 站點,請使用以下命令:

firewall-cmd --zone=public --add-port=8000/tcp --permanent firewall-cmd --reload

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

使用 $ sudo ufw enable 設置防火牆規則 $ sudo ufw allow 8000

在inet下輸入ipconfig copy addr

做 python3 manage.py runserver your_inet_addr:8000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM