You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从局域网内其他Windows机器访问Windows Server 2022上WSL2 Ubuntu的文件?

如何从局域网内其他Windows机器访问Windows Server 2022上WSL2 Ubuntu的文件?

我来给你几个实用的方案,都是能直接通过资源管理器访问的,不用搞那些拷贝同步的麻烦事:

方案一:把WSL目录映射为Windows主机的共享文件夹(最推荐)

这个方法完全不用改动WSL里的配置,直接利用Windows本身的共享功能,兼容性拉满:

  • 先在Windows Server本地打开资源管理器,输入 \\wsl$\Ubuntu 就能进入WSL的文件系统
  • 找到你想共享的目录(比如 /home/你的用户名),右键点击它选择「属性」→「共享」标签页
  • 点击「高级共享」,勾选「共享此文件夹」,设置一个好记的共享名称(比如 WSL_Ubuntu_Home
  • 点击「权限」,添加需要访问的局域网用户或组,设置对应的读写权限(比如给特定用户设读写,或者给Everyone设只读)
  • 搞定后,局域网里的其他Windows机器直接在资源管理器输入 \\你的服务器名\WSL_Ubuntu_Home 就能访问这个WSL目录了,和访问普通共享文件夹完全一样

方案二:在WSL里配置独立的Samba服务(避免和主机SMB冲突)

如果你想直接在WSL里搞共享,也能避开主机的SMB服务,只需要改几个配置:

  • 先在WSL的Ubuntu终端里安装Samba:sudo apt update && sudo apt install samba
  • 先备份原配置文件以防万一:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
  • 编辑Samba配置:sudo nano /etc/samba/smb.conf
    • 找到 [global] 部分,把 netbios name 改成和主机不一样的名字(比如 UbuntuWSL),这样局域网里就能区分开主机和WSL的共享了
    • 也可以把默认的SMB端口从445改成其他值(比如4450),彻底避免端口冲突,找到 port = 445 这行改成 port = 4450 就行
    • 在文件末尾添加你的共享配置,比如:
      [WSL_Share]
      path = /home/你的用户名
      available = yes
      valid users = 你的WSL用户名
      read only = no
      browsable = yes
      public = no
      
  • 设置Samba用户的密码(必须和WSL里的用户名对应):sudo smbpasswd -a 你的WSL用户名,输入两次密码确认
  • 重启Samba服务:sudo systemctl restart smbd nmbd
  • 之后局域网机器可以通过 \\你的服务器IP\WSL_Share 访问,如果改了端口的话,可能需要用工具做端口转发,或者直接用WSL的IP访问(前提是WSL用桥接网络)

方案三:切换WSL为桥接网络直接访问

如果你的网络环境允许,可以把WSL改成桥接模式,让它直接获取局域网IP:

  • 在Windows Server的PowerShell里运行:wsl --set-default-network Ubuntu Bridged(确保你的WSL版本是2,之前没设置过的话先跑 wsl --set-version Ubuntu 2
  • 进入WSL终端,用 ip addr show eth0 查看它的局域网IP(比如 192.168.1.105
  • 之后其他机器可以直接通过 \\192.168.1.105\WSL_Share 访问你在WSL里配置的Samba共享,不过这个IP可能会随网络变化,不如前两个方案稳定

备注:内容来源于stack exchange,提问作者neilalex

火山引擎 最新活动