如何从外界访问本地 Django 网络服务器

2025-03-04 08:27:00
admin
原创
67
摘要:问题描述:我按照此处的说明使用内置 Web 服务器运行 Django,并能够使用成功运行它python manage.py runserver。如果我从 Web 服务器本地访问 127.0.0.1:port,我会得到 Django 页面,表明它已成功运行。我意识到 Django 网络服务器不是生产服务器,但对...

问题描述:

我按照此处的说明使用内置 Web 服务器运行 Django,并能够使用成功运行它python manage.py runserver。如果我从 Web 服务器本地访问 127.0.0.1:port,我会得到 Django 页面,表明它已成功运行。

我意识到 Django 网络服务器不是生产服务器,但对于我来说,出于测试目的,能够从外部世界访问它非常重要 - 例如,不是从服务器上的网络浏览器,而是从另一台计算机。

我试过:

http://mywebserver:port_django_runs_on

但它不起作用。我还尝试使用 IP(基于 ifconfig)来访问:

http://myipaddress:port_django_runs_on 

但也不起作用。

Web 服务器正在运行,因此必须可以从外部访问,但我不知道如何访问。我正在使用 Apache 运行 Linux,但我尚未使用 Apache 配置 Django。

关于如何做到这一点有什么想法吗?


解决方案 1:

您必须运行开发服务器,以便它监听您的网络接口。

例如

python manage.py runserver 0.0.0.0:8000

监听端口 8000 上的每个接口。

使用 IP 还是主机名访问 Web 服务器并不重要。我猜你仍然在自己的 LAN 中。

如果你真的想从外部访问服务器,你还必须配置路由器以将端口转发8000到你的服务器。


检查服务器上的防火墙是否允许到正在使用的端口的传入连接!

假设您可以从外部成功访问您的 Apache 服务器,您也可以尝试以下操作:

  • 停止 Apache 服务器,以便80释放该端口。

  • 使用以下命令启动开发服务器sudo python manage.py runserver 0.0.0.0:80

解决方案 2:

我必须将此行添加到 settings.py 才能使其工作(否则从另一台计算机访问时会显示错误)

ALLOWED_HOSTS = ['*']

然后使用以下命令运行服务器:

python manage.py runserver 0.0.0.0:9595

还要确保防火墙允许连接到该端口

解决方案 3:

只需这样做:

python manage.py runserver 0:8000

通过上述命令,您实际上将其绑定到外部 IP 地址。所以现在当您使用端口号访问您的 IP 地址时,您将能够在浏览器中访问它而不会出现任何问题。

只需在浏览器地址栏中输入以下内容:

<your ip address>:8000

例如:

192.168.1.130:8000

您可能需要编辑 settings.py 在最后一行的 settings.py 中添加以下内容:

ALLOWED_HOSTS = ['*']

希望这会有所帮助...

解决方案 4:

选择以下一个或多个:

  • 您的应用程序未成功监听预期的 IP:PORT

+ 因为你还没有配置成功
+ 因为用户没有权限
  • 您的应用程序正在成功侦听目标 IP:PORT,但客户端无法访问它,因为

+ 服务器本地 iptables 阻止了它。
+ 防火墙可以阻止它。

lsof -i因此,您可以通过在机器上以 root 身份运行来检查您的应用程序是否正在成功监听,并查找python具有您指定的相应端口的条目。

非 root 用户通常无法绑定到 <1024 的端口。

您需要查看iptables -nvL是否存在一条规则可以阻止访问您尝试将应用程序绑定到的 ip:port。

如果存在上游防火墙而您对此不太了解,则需要与网络管理员联系。

解决方案 5:

对于 AWS 用户。

我必须采取以下步骤才能到达那里。

1)确保pip和django在sudo级别安装

  • sudo apt-get 安装 python-pip

  • sudo pip 安装 django

2)确保安全组入站规则包括端口 80 上的 http 0.0.0.0/0

  • 通过AWS控制台配置

3)将公共 IP 和 DNS 添加到 ALLOWED_HOSTS

  • ALLOWED_HOSTS 是一个列表对象,你可以在 settings.py 中找到

  • ALLOWED_HOSTS = ["75.254.65.19","ec2-54-528-27-21.compute-1.amazonaws.com"]

4)在端口 80 上使用 sudo 启动开发服务器

  • 须藤蟒蛇管理.py runserver 0:80

现在可以通过以下任一方式访问站点(不需要 :80,因为这是 http 的默认设置):

  • [公共 DNS] 即 ec2-54-528-27-21.compute-1.amazonaws.com

  • [公网IP] 即75.254.65.19

解决方案 6:

打开终端

类型:ifconfig

检查 ifconfig 命令的结果

使用 inet IP .. 应该看起来像这样.. 192.168.1.121 或类似的 192.168.xx

现在像平常一样运行服务器,但这次指定 inet IP

python3 manage.py runserver 192.168.xx:8000(将 x 替换为您的 inet)

也在

settings.py

ALLOWED_HOSTS = ['*']上

解决方案 7:

我要在这里添加这个:

  1. sudo python manage.py runserver 80

  2. 转到您的手机或计算机并192.168.0.12在浏览器中输入您的计算机的内部 IP(例如)。

此时您应该已连接到 Django 服务器。

在没有 sudo 的情况下这也应该有效:

python manage.py runserver 0.0.0.0:8000

解决方案 8:

2020 年更新 试试这个方法

python manage.py runserver yourIp:8000

ALLOWED_HOSTS = ["*"]

解决方案 9:

您只需要允许任何主机:settings.py:

ALLOWED_HOST = ['*']

运行你的服务器:

python3 manage.py runserver 0.0.0.0:8000

如果您想连接 Android 应用程序,只需在 AndroidManifest 中添加互联网权限即可。这对我来说很有用;)

解决方案 10:

如果你使用 Docker,则需要确保端口也暴露出来

解决方案 11:

在终端中安装 ngrok

sudo apt-get install -y ngrok-client

运行之后:

ngrok http 8000
or 
ngrok http example.com:9000 
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   4008  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2751  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   86  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   97  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   85  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用