无法使用IPV6地址访问Django项目

问题描述 投票:0回答:2

我正在 ubuntu 服务器上运行我的 Django 项目。我已经在settings.py中更改了允许的主机

ALLOWED_HOSTS = ['my_IPV4', 'my_IPV6', 'localhost']

我通过

sudo ufw allow 8000
允许访问端口8000。

我通过

python manage.py runserver 0.0.0.0:8000
运行服务器,但是我只能访问IPV4地址,但端口8000上的IPV6地址无法访问。我的 IPV6 地址处于活动状态,但端口 8000 似乎不起作用。我是否错过了一些配置 IPV6?

django ubuntu ipv6
2个回答
1
投票

我阅读了有关IPV6的文档并得到了一些答案,你必须将IPV6放在方括号中。

IPV6 的本地主机:

::1

IPV6 的任何地址:

:: 
(IPV4 为
0.0.0.0

所以在settings.py中AllOWED_HOSTS应该是

['my_IPV4', '[my_IPV6]', 'localhost']

Django 运行服务器命令:

python manage.py runserver [::]:8000

使用端口访问 IPV6 地址

https://[IPV6 address]:8000

即使没有端口号,您也需要在 URL 中添加括号来访问 IPV6 地址

http://[fe80::b746:6473:e65f:5dd4]/foo/bar

http://[fe80::b746:6473:e65f:5dd4]:8000/foo/bar

参考https://cheat.readthedocs.io/en/latest/ipv6.html


1
投票

参数

--ipv6, -6
使用 IPv6 作为开发服务器。这会将默认 IP 地址从 127.0.0.1 更改为 ::1。

在主机 localhost 的 IPv6 地址上运行端口 8000:

django-admin runserver -6 localhost:8000

参考: Django 文档:使用不同端口和地址的示例

© www.soinside.com 2019 - 2024. All rights reserved.