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

Django project cannot be accessed using IPV6 address

我 运行 在 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?

在允许的主机设置中添加“[::1]”,然后运行 :

python manage.py runserver --ipv6 "[::1]:8000"

参考:https://docs.djangoproject.com/en/4.0/ref/settings/#allowed-hosts

我阅读了有关 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