WSL2 启动了一个 localhost:8000 服务, chrome 总是打不开,查了无数文档,知道是网络设置的原因,不知道怎么 fix,有人遇到类似的问题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ericgui
V2EX    Windows

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

  •  
  •   ericgui 2020-12-29 13:20:57 +08:00 6456 次点击
    这是一个创建于 1745 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    看来还是没法替代 macOS

    37 条回复    2020-12-30 13:09:19 +08:00
    6IbA2bj5ip3tK49j
        1
    6IbA2bj5ip3tK49j  
       2020-12-29 13:23:18 +08:00
    dobelee
        2
    dobelee  
       2020-12-29 13:29:51 +08:00 via iPhone   2
    最简单的,切换回 wsl1 解君愁。
    ai277014717
        3
    ai277014717  
       2020-12-29 13:32:50 +08:00
    nat 转换
    CallMeReznov
        4
    CallMeReznov  
       2020-12-29 13:32:53 +08:00
    你绑 eth0 然后自己的机器无法访问?
    防火墙吧。。。。?
    iamwho
        5
    iamwho  
       2020-12-29 13:36:41 +08:00
    ericgui
        6
    ericgui  
    OP
       2020-12-29 13:36:45 +08:00
    @ai277014717 咋做?求指教
    ericgui
        7
    ericgui  
    OP
       2020-12-29 13:39:20 +08:00
    @iamwho 我用这个解决了:


    The IP i use in my .bashrc is from:

    export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0

    我也不知道什么原因

    我的网络知识很少,一直都没咋学明白
    ai277014717
        8
    ai277014717  
       2020-12-29 13:40:09 +08:00
    @ericgui 关键字搜一下就知道了 wsl2 hyper-v nat
    enfuss
        9
    enfuss  
       2020-12-29 13:57:03 +08:00
    @ericgui #7
    因为 wsl2 每次启动的 localhost 和 windows 本身的 localhost 不是同一个东西。之前试图给 wsl2 用 windows 的代理就碰到这个坑。
    purefkh
        11
    purefkh  
       2020-12-29 14:30:33 +08:00 via Android
    zhlssg
        12
    zhlssg  
       2020-12-29 14:37:16 +08:00   28
    确实有点坑,有天搞这个加班了一小时,下班发现电动车被偷了
    ohoh
        13
    ohoh  
       2020-12-29 14:53:00 +08:00
    打开老版 IE, 进入设置进行重置, 可能需要重启电脑.
    zlowly
        14
    zlowly  
       2020-12-29 15:13:51 +08:00
    最新版本的 WIN10 里的 WSL2 里监听于::1 的话,WIN10 的 HOST 主机里就可以用 localhost 访问到对应监听的端口,看起来似乎是通过 ipv6 实现的。
    xgc
        15
    xgc  
       2020-12-29 15:42:01 +08:00
    是不是开了 SS 或者什么别的 http 代理,正常是可以用 localhost:8000 访问的
    sleepm
        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 之外,还是很香的
    hui314
        17
    hui314  
       2020-12-29 16:00:34 +08:00
    wsl2 除了 localhost,还有文件 io 巨缓慢的问题,TTL 能去到 5 秒.已经转投 virtualBox
    Rhilip
        18
    Rhilip  
       2020-12-29 16:38:06 +08:00
    我是绑定静态 IP, 个人觉得这是比 localhost 更好的方法访问 WSL2
    https://github.com/MicrosoftDocs/WSL/issues/418#issuecomment-648570865
    nmap
        19
    nmap  
       2020-12-29 17:29:21 +08:00
    最简单的办法是不要用 localhost,用 wsl2 eth 口的 ip 访问
    KuroNekoFan
        20
    KuroNekoFan  
       2020-12-29 17:35:00 +08:00 via iPhone   1
    @hui314 wsl2 访问 mnt 路径会有问题,用虚拟机本身的硬盘空间就正常了
    keepeye
        21
    keepeye      2020-12-29 17:36:33 +08:00
    没有 docker 需求的话还是用 wsl1 比较好,尤其是需要读写宿主机文件的的话
    libook
        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 就可以了,就像是你在自己电脑上访问一台测试服务器上的服务一样。
    assiadamo
        23
    assiadamo  
       2020-12-29 18:05:05 +08:00
    既然用到 WSL2 了,不如连 docker desktop 一起安排上吧
    fuis
        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)"
    hantsy
        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 协议,一直没成功过。
    hantsy
        26
    hantsy  
       2020-12-29 18:49:44 +08:00
    对于开发人员,Vargrant 是比较好的方案,直接用虚拟机,而且网络,文件系统映射做得不错。
    zm8m93Q1e5otOC69
        27
    zm8m93Q1e5otOC69  
       2020-12-29 19:03:22 +08:00 via Android
    直接用 wsl2 ifconfig 出来的内网 ip 访问
    narmgalaxy
        28
    narmgalaxy  
       2020-12-29 19:46:56 +08:00
    我记得是为 wsl2 是虚拟机,占用了一部分端口
    https://www.cnblogs.com/zsmumu/p/13389816.html
    kennylam777
        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 程序也很
    hantsy
        30
    hantsy  
       2020-12-29 21:31:12 +08:00
    @kennylam777 Hyper V 的生态不如 VirtualBox,很多东西不支持 HyperV,比如 Genymotion,Vagrant 很多 Box 只有 VirtualBox 版本。
    jiangzm
        31
    jiangzm  
       2020-12-29 21:33:45 +08:00
    监听改成 0.0.0.0:80 试下
    kennylam777
        32
    kennylam777  
       2020-12-29 22:40:47 +08:00
    @hantsy 的, Vagrant 的 Hyper-V driver 不能用要 VirtualBox 也法, 但新的 Hyper-V 可以和 VirtualBox 共存了, 不像以前般 mutually exclusive
    RickyC
        33
    RickyC  
       2020-12-30 09:01:06 +08:00
    应该要让 windows 映射 WSL2 的端口, 才可在 windows 下访问
    并且 WSL2 的内网 IP 会经常自己改变

    可参考 https://blog.class4ever.com/2588.html
    ericgui
        34
    ericgui  
    OP
       2020-12-30 09:23:11 +08:00
    @RickyC +1
    RickyC
        35
    RickyC  
       2020-12-30 09:55:54 +08:00
    不映射端口的话,
    可以尝试在 WSL2 输入 ifconfig, 找到 inet 的 IP,
    然后用 该 IP:端口, 看能不能访问.
    hantsy
        36
    hantsy  
       2020-12-30 11:25:02 +08:00
    如果直接映射 WLS 所有端口到 Windows,估计太多冲突。 没有简单的通过子域名方式来解决所有 的 WLS 端口问题。比如 Windows 启动时在 Host 文件,写入 wsl.local XXXX ( WLS IP ).
    xzysaber
        37
    xzysaber  
       2020-12-30 13:09:19 +08:00
    重启 WSL 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     877 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 19:51 PVG 03:51 LAX 12:51 JFK 15:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86