Django:错误:您无权访问该端口

Hel*_*pme 8 django virtualenv python-2.7

我对这整个设置都很陌生,所以请你好.在dev上,命令通常没有错误,但由于我一直在为Django尝试不同的命令,因此出错了.

python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

我无权再使用此端口.我可以使用端口8080但是当我将端口添加到url中常用主机名末尾时,网站不起作用.当我使用端口80时,我从来没有必须添加:80到网址.

我有一个错误,我没有对日志文件的权限,但我更改了该文件的权限.现在似乎有很多我没有权限的东西.

Django 1.8.5.使用虚拟环境,我在项目中有2个应用程序.

Shk*_*kum 7

下面帮助我纠正同样的错误:

在 Windows 命令行中:

网络停止 winnat

网络启动winnat


小智 6

我使用的是 Xubuntu 20.04 版本,我使用这个命令(因为我有一个 python 环境):

$ sudo ~/.virtualenvs/myproject/bin/python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

为了知道你的 envs python 文件夹在哪里,我做了:

$ which python
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您使用的是 Linux,则会收到此错误。

首先,Django 没有生产服务器,只是一个非常基本的开发服务器,默认使用端口 8080。

当你执行命令时

python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

你告诉 django 启动它的开发服务器并运行它,这样你就可以在部署到生产服务器之前测试你的 web 应用程序。

Django 文档 -> django-admin -> 运行服务器

访问服务器的方式是使用浏览器在地址栏中插入URL

localhost:8080
Run Code Online (Sandbox Code Playgroud)

默认情况下,除非另有说明,大多数 HTTP 应用程序在端口 80 上运行。例如,默认情况下,您的 MySQL 服务器可以在端口 3306 上运行。

基本上,您可以将端口视为老式电话线,将您连接到您希望与之通信的任何人。

这一切都没有什么特别之处。您可能应该先玩一下瓶子以了解基础知识;只是一个友好的建议。

您可以在网站上深入了解详细信息。虽然不安全,但您可以使用sudo在端口 80 上运行,但出于安全原因,您应该避免使用它。

@ mtt2p提到一个serverfault后,做的,为什么一个伟大的工作

我确信有一种方法可以告诉服务器只允许本地连接,但是当您想向其他人展示您的工作或查看您的网络应用程序在其他设备上的外观时,您应该只使用 0.0.0.0:80。

从长远来看,sudo只是更容易和更快,但懒惰和不安全。

这是一个在 virtualenv 上下文中解释它的链接。

指定端口时Django运行服务器错误

答案指出

我猜 sudo 命令将在超级用户上下文中运行该进程,并且超级用户上下文缺少 virtualenv 设置。

制作一个shell脚本来设置virtualenv并调用manage.py runserver,然后改为sudo这个脚本。

您应该注意到解释基于 virtualenv 的上下文的答案也是不安全的。它应该只是运行

sudo python manage.py runserver 80
Run Code Online (Sandbox Code Playgroud)

不是

sudo bash script-name
Run Code Online (Sandbox Code Playgroud)

在 virtualenv 之外。这样做违背了对应用程序进行沙盒处理的目的。如果您忽略这一点,您将面临竞争条件


mtt*_*t2p 1

sudo python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

您需要端口 80 的管理员权限