Python 如何使用WSL(Linux的Windows子系统)访问Django服务器?
我在Windows10上的Ubuntu上使用Bash,并在python虚拟环境中安装了django。我能够成功启动django服务器,但当我在windows 10浏览器中键入“”时,没有收到响应 我尝试将端口号更改为其他端口号(例如python3 manage.py runserver 127.0.0.1:7171),但仍然一无所获 我不认为这是防火墙问题,因为WSL和浏览器都运行在同一台Windows10笔记本电脑上。你知道问题可能是什么吗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
(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
奇怪,这表明情况并非如此。出于好奇,当你pingGAMMAFLYER
时,你会得到什么?这在某个时候是个问题,但是如果他们在过去几个月内修复了它,那么我对WSL系统的了解似乎已经过时了。谢谢。我尝试了主机名,但仍然没有得到响应。当我不使用WSL,只是在windows上用python运行django时,它工作得很好。我想我得换回去了。我只是对WSLYeah感到兴奋,我也对它大肆宣传。遗憾的是,它还没有出现——但事实上,它已经发展到目前为止,这给了我希望。它在Linux上工作吗,例如curl 127.0.0.1:8000
?
python3 manage.py runserver 0.0.0.0:8080