[python]django远程访问问题解决
1 问题描述
1、远程服务器起一个本地的django服务
python manage.py runserver 8080
远程登录不了http://192.168.18.133:8080/admin/
2、python manage.py runserver 0.0.0.0:8080 报错
DisallowedHost at /admin/
Invalid HTTP_HOST header: '192.168.18.133:8088'. You may need to add '192.168.18.133' to ALLOWED_HOSTS.
2 问题原因
1、问题原因:
192.168.18.133 是一个本地 IP 地址,通常用于局域网内,使用 0.0.0.0 代替默认的 127.0.0.1,这样服务器可以接受来自局域网内其他设备的连接。
问:使用 0.0.0.0 代替默认的 127.0.0.1,这样服务器可以接受来自局域网内其他设备的连接。 这个是什么原理?
127.0.0.1 是一个特殊的 IP 地址,称为 Loopback 地址 或 本地回环地址。它用于表示本机设备,主要用于本地测试和开发。当你在代码中使用 127.0.0.1 时,你告诉服务器只监听来自本机的连接请求。
0.0.0.0 是一个特殊的 IP 地址,表示 所有可用的网络接口。当你在代码中使用 0.0.0.0 时,你告诉服务器监听来自所有网络接口的连接请求,包括本地回环接口和所有物理网络接口。
2、问题原因:
这个错误表明 Django 的 ALLOWED_HOSTS 设置中没有包含你尝试访问的 IP 地址 192.168.18.133。ALLOWED_HOSTS 是一个安全设置,用于防止 HTTP 主机头攻击。当 Django 收到一个请求时,它会检查 HTTP_HOST 头是否在 ALLOWED_HOSTS 列表中。如果不在,就会抛出 DisallowedHost 异常。
3 解决方案
1、直接改ip即可
python manage.py runserver 0.0.0.0:8080
2、直接在settings.py中增加一行:你希望允许所有 IP 地址访问
ALLOWED_HOSTS = ['*']

浙公网安备 33010602011771号