这个 wsl2 的网络可真的是太烦了
看来还是没法替代 macOS
1
6IbA2bj5ip3tK49j 2020-12-29 13:23:18 +08:00
|
2
dobelee 2020-12-29 13:29:51 +08:00 via iPhone 2
最简单的,切换回 wsl1 解君愁。
|
3
ai277014717 2020-12-29 13:32:50 +08:00
nat 转换
|
4
CallMeReznov 2020-12-29 13:32:53 +08:00
你绑 eth0 然后自己的机器无法访问?
防火墙吧。。。。? |
5
iamwho 2020-12-29 13:36:41 +08:00
https://docs.microsoft.com/en-us/windows/wsl/compare-versions#accessing-linux-networking-apps-from-windows-localhost
如果你无法解决 wsl2 的网络问题,那么建议你用 vagrant |
6
ericgui OP @ai277014717 咋做?求指教
|
7
ericgui OP @iamwho 我用这个解决了:
The IP i use in my .bashrc is from: export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0 我也不知道什么原因 我的网络知识很少,一直都没咋学明白 |
8
ai277014717 2020-12-29 13:40:09 +08:00
@ericgui 关键字搜一下就知道了 wsl2 hyper-v nat
|
9
enfuss 2020-12-29 13:57:03 +08:00
@ericgui #7
因为 wsl2 每次启动的 localhost 和 windows 本身的 localhost 不是同一个东西。之前试图给 wsl2 用 windows 的代理就碰到这个坑。 |
10
fuxkcsdn 2020-12-29 14:02:16 +08:00
|
11
purefkh 2020-12-29 14:30:33 +08:00 via Android
|
12
zhlssg 2020-12-29 14:37:16 +08:00 28
确实有点坑,有天搞这个加班了一小时,下班发现电动车被偷了
|
13
ohoh 2020-12-29 14:53:00 +08:00
打开老版 IE, 进入设置进行重置, 可能需要重启电脑.
|
14
zlowly 2020-12-29 15:13:51 +08:00
最新版本的 WIN10 里的 WSL2 里监听于::1 的话,WIN10 的 HOST 主机里就可以用 localhost 访问到对应监听的端口,看起来似乎是通过 ipv6 实现的。
|
15
xgc 2020-12-29 15:42:01 +08:00
是不是开了 SS 或者什么别的 http 代理,正常是可以用 localhost:8000 访问的
|
16
sleepm 2020-12-29 15:48:11 +08:00
https://abdus.dev/posts/fixing-wsl2-localhost-access-issue/
写个 powershell 脚本 在事件查看器找到'加载 wsl 交换机(1019)'的事件,加个计划任务上去,每次 wsl2 启动时自动把 wls2 的 ip 写入主机 hosts shayne/go-wsl2-host 这个我试了,我的 win10 没用,不工作,所以只能搞脚本了 wsl2 除了不能固定 ip/nat 之外,还是很香的 |
17
hui314 2020-12-29 16:00:34 +08:00
wsl2 除了 localhost,还有文件 io 巨缓慢的问题,TTL 能去到 5 秒.已经转投 virtualBox
|
18
Rhilip 2020-12-29 16:38:06 +08:00
我是绑定静态 IP, 个人觉得这是比 localhost 更好的方法访问 WSL2
https://github.com/MicrosoftDocs/WSL/issues/418#issuecomment-648570865 |
19
nmap 2020-12-29 17:29:21 +08:00
最简单的办法是不要用 localhost,用 wsl2 eth 口的 ip 访问
|
20
KuroNekoFan 2020-12-29 17:35:00 +08:00 via iPhone 1
@hui314 wsl2 访问 mnt 路径会有问题,用虚拟机本身的硬盘空间就正常了
|
21
keepeye 2020-12-29 17:36:33 +08:00
没有 docker 需求的话还是用 wsl1 比较好,尤其是需要读写宿主机文件的的话
|
22
libook 2020-12-29 17:52:27 +08:00 1
WSL2 是跑在虚拟机里的,虚拟机和 Win10 是相当于 2 台网络设备,所以你在 WSL2 里启动了一个服务,不能监听 localhost,而是应该监听 2 台设备同在的网络段,最简单直接的是监听 0.0.0.0:8000 。
然后找到 WSL2 目前在用的 IP 地址,比如 10.2.3.1,然后在 Win10 上访问 10.2.3.1:8000 就可以了,就像是你在自己电脑上访问一台测试服务器上的服务一样。 |
23
assiadamo 2020-12-29 18:05:05 +08:00
既然用到 WSL2 了,不如连 docker desktop 一起安排上吧
|
24
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)" |
25
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 协议,一直没成功过。 |
26
hantsy 2020-12-29 18:49:44 +08:00
对于开发人员,Vargrant 是比较好的方案,直接用虚拟机,而且网络,文件系统映射做得不错。
|
27
uselessVisitor 2020-12-29 19:03:22 +08:00 via Android
直接用 wsl2 ifconfig 出来的内网 ip 访问
|
28
narmgalaxy 2020-12-29 19:46:56 +08:00
我记得是因为 wsl2 是虚拟机,占用了一部分端口
https://www.cnblogs.com/zsmumu/p/13389816.html |
29
kennylam777 2020-12-29 19:52:18 +08:00 via Android
@hantsy WSL2 不好嗎,Docker for Desktop 3.0.0 以 WSL2 為主,輕鬆解決 File system 的問題。
WSL 1 能直接使用 Windows 網口,用來調試 userspace 程序也很輕鬆 |
30
hantsy 2020-12-29 21:31:12 +08:00
@kennylam777 Hyper V 的生态不如 VirtualBox,很多东西不支持 HyperV,比如 Genymotion,Vagrant 很多 Box 只有 VirtualBox 版本。
|
31
jiangzm 2020-12-29 21:33:45 +08:00
监听改成 0.0.0.0:80 试下
|
32
kennylam777 2020-12-29 22:40:47 +08:00
@hantsy 的確, Vagrant 的 Hyper-V driver 不能用要 VirtualBox 也沒辦法, 但新的 Hyper-V 可以和 VirtualBox 共存了, 不像以前般 mutually exclusive
|
33
RickyC 2020-12-30 09:01:06 +08:00
应该要让 windows 映射 WSL2 的端口, 才可在 windows 下访问
并且 WSL2 的内网 IP 会经常自己改变 可参考 https://blog.class4ever.com/2588.html |
35
RickyC 2020-12-30 09:55:54 +08:00
不映射端口的话,
可以尝试在 WSL2 输入 ifconfig, 找到 inet 的 IP, 然后用 该 IP:端口, 看能不能访问. |
36
hantsy 2020-12-30 11:25:02 +08:00
如果直接映射 WLS 所有端口到 Windows,估计太多冲突。 没有简单的通过子域名方式来解决所有 的 WLS 端口问题。比如 Windows 启动时在 Host 文件,写入 wsl.local XXXX ( WLS IP ).
|
37
xzysaber 2020-12-30 13:09:19 +08:00
重启 WSL 。
|