关于虚拟机中的Ubuntu和windows中的Django服务器通信的IP问题(NAT网络连接下Ubuntu中的浏览器访问windows的Djangoweb网站)

问题:Ubuntu中的浏览器访问windows中的Django网站,Django中的IP地址应该怎样绑定才正确?

答:将Django服务器的IP地址绑定为虚拟网卡的IP地址。

环境:pycharm、Ubuntu(虚拟机,NAT网络连接方式)、windows、python3、Django==1.11.11

首先查看windows的IP-----》打开windows终端输入命令:ipconfig------》查看IP,如图:

关于虚拟机中的Ubuntu和windows中的Django服务器通信的IP问题(NAT网络连接下Ubuntu中的浏览器访问windows的Djangoweb网站)

查看Ubuntu的IP------》Ubuntu终端中输入命令:ifconfig ---》查看Ubuntu的IP,如图:

关于虚拟机中的Ubuntu和windows中的Django服务器通信的IP问题(NAT网络连接下Ubuntu中的浏览器访问windows的Djangoweb网站)

Django默认的IP地址及端口为127.0.0.1:8000,127.0.0.1该IP为本地回环IP,该IP只能在当前系统中访问,即windows中访问的是windows中的127.0.0.1,Ubuntu中访问也只能访问Ubuntu的127.0.0.1,Ubuntu无法访问到windows的127.0.0.1.

绑定windows的真实IP,Ubuntu内是可以访问到windows下的Django服务器的,但是由于虚拟机和Django服务器不在相同的IP段,虚拟机会通过windows访问Django  ,此时访问Django的IP就变成了windows的IP了,显然这不是我们想要的(具体请求的IP地址可以在request请求头中查看到)。

最后尝试绑定虚拟网卡的IP,如我的虚拟网卡的IP为:192.168.111.1或192.168.213.1,绑定这两个IP后就可以以虚拟机的IP正常访问Django了,

①:NAT 模式下 虚拟机会和windows组成一个局域网,共享windows的IP来接入到互联网,也就是当请求的IP不在该局域网的网段时,虚拟机就需要通过windows的真实IP来间接访问。

具体实现细节不再详细展示说明!

完!