WSL2 启动了一个 localhost:8000 服务, chrome 总是打不开,查了无数文档,知道是网络设置的原因,不知道怎么 fix,有人遇到类似的问题吗?

2020-12-29 13:20:57 +08:00
 ericgui

这个 wsl2 的网络可真的是太烦了

看来还是没法替代 macOS

5650 次点击
所在节点    Windows
37 条回复
keepeye
2020-12-29 17:36:33 +08:00
没有 docker 需求的话还是用 wsl1 比较好,尤其是需要读写宿主机文件的的话
libook
2020-12-29 17:52:27 +08:00
WSL2 是跑在虚拟机里的,虚拟机和 Win10 是相当于 2 台网络设备,所以你在 WSL2 里启动了一个服务,不能监听 localhost,而是应该监听 2 台设备同在的网络段,最简单直接的是监听 0.0.0.0:8000 。

然后找到 WSL2 目前在用的 IP 地址,比如 10.2.3.1,然后在 Win10 上访问 10.2.3.1:8000 就可以了,就像是你在自己电脑上访问一台测试服务器上的服务一样。
assiadamo
2020-12-29 18:05:05 +08:00
既然用到 WSL2 了,不如连 docker desktop 一起安排上吧
fuis
2020-12-29 18:07:20 +08:00
多大点事

export HOST_IP="$(grep nameserver /etc/resolv.conf | awk '{print $2}')"
export WSL_IP="$(hostname -I)"
hantsy
2020-12-29 18:46:49 +08:00
@hui314 Windows 下真是麻烦,本来我是 Virtualbox 用得多。

后来的 Docker 放弃了 Dockers Toolbox (支持 Virtulbox ),与 MS 合作开发 Docker For Windows,仅支持 Hyper V,无耐才用它。最扯蛋的是 VirtualBox 与 HyperV 不兼容,虽然 VirtualBox 有选项可以用 HyperV 协议,一直没成功过。
hantsy
2020-12-29 18:49:44 +08:00
对于开发人员,Vargrant 是比较好的方案,直接用虚拟机,而且网络,文件系统映射做得不错。
uselessVisitor
2020-12-29 19:03:22 +08:00
直接用 wsl2 ifconfig 出来的内网 ip 访问
narmgalaxy
2020-12-29 19:46:56 +08:00
我记得是因为 wsl2 是虚拟机,占用了一部分端口
https://www.cnblogs.com/zsmumu/p/13389816.html
kennylam777
2020-12-29 19:52:18 +08:00
@hantsy WSL2 不好嗎,Docker for Desktop 3.0.0 以 WSL2 為主,輕鬆解決 File system 的問題。

WSL 1 能直接使用 Windows 網口,用來調試 userspace 程序也很輕鬆
hantsy
2020-12-29 21:31:12 +08:00
@kennylam777 Hyper V 的生态不如 VirtualBox,很多东西不支持 HyperV,比如 Genymotion,Vagrant 很多 Box 只有 VirtualBox 版本。
jiangzm
2020-12-29 21:33:45 +08:00
监听改成 0.0.0.0:80 试下
kennylam777
2020-12-29 22:40:47 +08:00
@hantsy 的確, Vagrant 的 Hyper-V driver 不能用要 VirtualBox 也沒辦法, 但新的 Hyper-V 可以和 VirtualBox 共存了, 不像以前般 mutually exclusive
RickyC
2020-12-30 09:01:06 +08:00
应该要让 windows 映射 WSL2 的端口, 才可在 windows 下访问
并且 WSL2 的内网 IP 会经常自己改变

可参考 https://blog.class4ever.com/2588.html
ericgui
2020-12-30 09:23:11 +08:00
@RickyC +1
RickyC
2020-12-30 09:55:54 +08:00
不映射端口的话,
可以尝试在 WSL2 输入 ifconfig, 找到 inet 的 IP,
然后用 该 IP:端口, 看能不能访问.
hantsy
2020-12-30 11:25:02 +08:00
如果直接映射 WLS 所有端口到 Windows,估计太多冲突。 没有简单的通过子域名方式来解决所有 的 WLS 端口问题。比如 Windows 启动时在 Host 文件,写入 wsl.local XXXX ( WLS IP ).
xzysaber
2020-12-30 13:09:19 +08:00
重启 WSL 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX