侧边栏壁纸
博主昵称
流苏小筑

步伐虽小,密而不止

通过本机ip地址访问wsl2容器中的服务

2025年03月05日 56阅读 0评论 0点赞

问题:想搭建一个本地的接口文档服务器,在局域网内使用,使用的是wsl2+docker,搭建完成后可以使用localhost:端口号访问,但是不能通过本机ip进行访问。

找了很多文档,修改防火墙规则,更改桥接模式,关闭虚拟机防火墙等等,都不行。 按官方文档说最新的wsl2是支持镜像模式的,wsl2和宿主机ip是一致的,可以直接进行访问,但是不行,后面试了很多方法,发现是因为使用1pan的时候将docker的iptables设置为true了。

解决方法

  1. 编辑/etc/docker/daemon.json文件添加如下内容

    {
      "iptables": false
    }
  2. 开放防火墙 管理员权限打开PowerShell运行

    # 可以通过这个命令获取40E0AC32-46A5-438A-A0B2-2B479E8F2E90
    Get-NetFirewallHyperVVMSetting | Format-Table Name, Id -AutoSize
    
    Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow

    3.编辑wslconfig开启镜像网络 wsl-config
    win + r 输入 %UserProfile% 新建 .wslconfig 建议内容如下

    [wsl2]
    memory=8GB #内存最大值
    swap=8GB #虚拟内存最大值
    processors=4 #cpu核最大值
    networkingMode=mirrored # 开启镜像网络
    dnsTunneling=true # 开启 DNS Tunneling
    firewall=true # 开启 Windows 防火墙
    autoProxy=true # 开启自动同步代理
    
    [experimental]
    sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间
    autoMemoryReclaim=gradual # 开启自动回收内存
    hostAddressLoopback=true # 允许容器通过分配给主机的 IP 地址连接到主机

重启wsl就可通过宿主机ip进行访问。

0
wsl

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
博主头像 流苏小筑

步伐虽小,密而不止

135 文章数
27 标签数
16 评论量