Python 如何使用WSL(Linux的Windows子系统)访问Django服务器?

Python 如何使用WSL(Linux的Windows子系统)访问Django服务器?,python,django,windows-subsystem-for-linux,Python,Django,Windows Subsystem For Linux,我在Windows10上的Ubuntu上使用Bash,并在python虚拟环境中安装了django。我能够成功启动django服务器,但当我在windows 10浏览器中键入“”时,没有收到响应 我尝试将端口号更改为其他端口号(例如python3 manage.py runserver 127.0.0.1:7171),但仍然一无所获 我不认为这是防火墙问题,因为WSL和浏览器都运行在同一台Windows10笔记本电脑上。你知道问题可能是什么吗 (env) $ python3 manage.py

我在Windows10上的Ubuntu上使用Bash,并在python虚拟环境中安装了django。我能够成功启动django服务器,但当我在windows 10浏览器中键入“”时,没有收到响应

我尝试将端口号更改为其他端口号(例如python3 manage.py runserver 127.0.0.1:7171),但仍然一无所获

我不认为这是防火墙问题,因为WSL和浏览器都运行在同一台Windows10笔记本电脑上。你知道问题可能是什么吗

(env) $ python3 manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
July 26, 2018 - 00:50:25
Django version 2.0.7, using settings 'portfolio.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Windows版本:Windows 10 build 1709(16299.492)


Ubuntu版本:Ubuntu16.04.5LTS

不久前我自己做这件事时,发现没有办法将WSL中运行的东西绑定到本地主机

不过,当通过主机名连接时,我确实成功了

因此,给定主机名GAMMAFLYER,请执行以下操作:

python3 manage.py runserver 0.0.0.0:8000
这允许外部连接

然后在浏览器中:

http://GAMMAFLYER:8000

我有同样的问题和答案@shadowworks对我来说很好,也就是说,我能够在WSL上
python manage.py runserver 0.0.0.0:8000
之后从windows访问

但是有一种方法可以让它正常工作并访问
http://localhost:8000
在windows上,为windows系统上安装了VirtualBox的用户禁用VirtualBox网络适配器

我发现我的主机名在windows上的IP地址是VirtualBox纯主机以太网适配器的IP

(windows cmd):

ping-4主机名

Pinging HOSTNAME [192.168.56.1] with 32 bytes of data:
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128

在我从
控制面板\网络和Internet \网络连接中禁用此适配器后,在WSL shell上重新运行
python manage.py runserver
,它运行良好,我可以从windows进行访问。

我目前正在windows 10上运行wsl2。我在尝试设置django项目时遇到了这个问题。通过在powershell上运行以下命令,我可以使它正常工作

netsh interface portproxy reset
我的proxyport有一些配置错误,上面的命令能够修复这些错误。因此,如果wsl2在某个点工作,但现在不工作,请运行该命令。但是,如果您刚刚安装了wsl2,则需要添加一个代理端口,以便本地访问该端口。
netsh接口端口代理添加v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100

在本例中,我将暴露4000端口

来源:


在WSL终端运行时:

python3 manage.py runserver 0.0.0.0:8080
将主机名作为允许的主机(计算机名)包含在settings.py中


在浏览器中运行:
http://yourhostname:8080

奇怪,这表明情况并非如此。出于好奇,当你ping
GAMMAFLYER
时,你会得到什么?这在某个时候是个问题,但是如果他们在过去几个月内修复了它,那么我对WSL系统的了解似乎已经过时了。谢谢。我尝试了主机名,但仍然没有得到响应。当我不使用WSL,只是在windows上用python运行django时,它工作得很好。我想我得换回去了。我只是对WSLYeah感到兴奋,我也对它大肆宣传。遗憾的是,它还没有出现——但事实上,它已经发展到目前为止,这给了我希望。它在Linux上工作吗,例如
curl 127.0.0.1:8000
python3 manage.py runserver 0.0.0.0:8080