V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chaleaochexist
V2EX  ›  程序员

wsl2 开启 mirror 模式, 局域网外部设备无法通过网络访问 wsl2 中开启的服务

  •  
  •   chaleaochexist · 9 小时 29 分钟前 · 490 次点击
    1. wsl2 中开启服务 -h 0.0.0.0
    2. wsl2 可以通过 10.xx 网络访问, 也可以通过 127.xx 访问
    3. windows 宿主机可以通过 127.xx 访问, 但是无法通过 10.xx 访问
    4. 如果这个服务在 windows 上开启, 一切正常.
    5. 和 clash 有关系吗? 不过我试过, 即使 clash 退了也白扯.
    [wsl2]
    memory=10GB 
    processors=4
    swap=16GB
    pageReporting=true
    localhostforwarding=true
    networkingMode=mirrored
    nestedVirtualization=false
    debugConsole=false
    dnsTunneling=true
    firewall=true
    autoProxy=true #强制 WSL 使用 Windows 的 HTTP 代理信息
    
    [boot]
    systemd=true
    
    [experimental]
    autoMemoryReclaim=gradual # 检测到空闲 CPU 使用率后自动释放缓存内存。设置 gradual 为缓慢释放,设置 dropcache 为立即释放缓存内存。
    sparseVhd=true
    
    
    jimages
        1
    jimages  
       9 小时 28 分钟前
    你需要设置 windows 设置端口转发 在 windows 上设置,命令如下

    netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=(wsl hostname -I)
    chaleaochexist
        2
    chaleaochexist  
    OP
       9 小时 25 分钟前
    @jimages 您的意思是说 mirrord 模式也需要端口转发是吗?
    chaleaochexist
        3
    chaleaochexist  
    OP
       9 小时 23 分钟前
    @jimages 试过了 不好用
    Alias4ck
        4
    Alias4ck  
       9 小时 20 分钟前   ❤️ 3
    开这个
    dbak
        5
    dbak  
       6 小时 48 分钟前
    clash 开启 tun 是会有这种情况 你可以 clash 启动后 再把相应服务重启一下 试试
    BortonJones
        6
    BortonJones  
       5 小时 31 分钟前
    刚好前段时间搞过 记了个笔记 我去找找

    1. 查看网络情况
    1. 查看`wsl`对于`宿主机`的 ip
    1. `ifconfig`
    2. 查看`宿主机`相对于`wsl`的 ip
    1. `cat /etc/resolv.conf`
    3. 基础联通性测试
    1. `ping -c 2 1.1.1.1`
    2. `ping -c 2 baidu.com`

    ### 二、配置网络代理(临时代理)

    > 采用临时代理
    >
    > - 不污染系统
    > - 用时开启,不用即关
    > - 避免“时间久了忘了为什么不通”

    1. 配置网络代理
    1. 查看系统代理
    1. `env | grep -i proxy`
    2. 配置代理
    1. `export http_proxy=http://172.21.240.1:7898`
    2. `export https_proxy=http://172.21.240.1:7898`
    3. `export all_proxy=socks5://172.21.240.1:7898`
    3. 清理代理
    1. ` unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY`
    4. 代理连通性测试
    1. 测试代理端口是否能访问
    1. `nc -vz 172.21.240.1 7898`
    2. 测试 HTTPS 是否能真正走代理
    1. `curl -I https://www.google.com`
    3. 异常情况
    1. `nc succeeded` → 代理监听 & 网络通道 OK
    2. `Connection refused` → 代理未监听在 LAN / 防火墙阻断
    3. `timeout` → 网络或路由问题
    5. 配置快捷启动命令
    1. `alias proxy_on='export http_proxy=http://172.21.240.1:7898 https_proxy=http://172.21.240.1:7898 all_proxy=socks5://172.21.240.1:7898'`
    2. `alias proxy_off='unset http_proxy https_proxy all_proxy'`
    3. `alias proxy_ls='env | grep -i proxy'`

    2. window 上的代理软件设置( clash verge )
    1. 打开局域网连接
    2. 打开`当前配置`检查是否存在`bind-address: 0.0.0.0`
    3. 修改配置文件:配置目录 -> config.yaml
    1. 添加顶层配置 `bind-address: 0.0.0.0`


    你看看 这是我记的笔记
    每次打开都是 跑个 proxy_on 就可以了
    hosea3000
        7
    hosea3000  
       5 小时 18 分钟前
    解决了吗? 我跟你一样的问题
    zenfsharp
        8
    zenfsharp  
       5 小时 11 分钟前
    我也在公司电脑上折腾了一阵 wsl2
    但我后来想明白了,折腾 wsl2 得到的经验在其他地方也用不到,而我的目的只是希望结合 windows 的界面和 Linux 的服务,那我干脆还是虚拟机好了,干净利落,不用整天在宿主机路径和 wsl2 文件路径之间、正斜线反斜线之间、网络等基础设施之间纠结,折腾 wsl2 的时间性价比太低了。
    然后就直接 Hyper-V 了。
    ponder09
        9
    ponder09  
       5 小时 5 分钟前
    @Alias4ck 牛的,今天刚遇到这个问题,改为记得重启 wsl --shutdown
    mlyykk
        10
    mlyykk  
       5 小时 1 分钟前
    @Alias4ck 正解
    mlyykk
        11
    mlyykk  
       3 小时 45 分钟前
    @Alias4ck 正解
    chaleaochexist
        12
    chaleaochexist  
    OP
       3 小时 6 分钟前
    @hosea3000 4 楼正解
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3156 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:06 · PVG 21:06 · LAX 05:06 · JFK 08:06
    ♥ Do have faith in what you're doing.