Reference
1.玩转WSL-用Samba服务替代Win10原生的文件共享
2.WSL2设置内网访问
3.WSL2开启桥接网络
4.固定ip_如何在windows10 自带的wsl2 中解决固定ip的问题
说明
本文主要是参考玩转WSL-用Samba服务替代Win10原生的文件共享进行samba服务器搭建,参考WSL2设置内网访问对WSL2网络进行设置,已实现WIN10启动后,自启WSL2,然后拉起Samba server的需求。当然,在实际搭建中,发现reference文档并不能完全适用,因此会有些调整。
选用WSL2,而不是WSL
在搭建samba服务器后,发现添加用户,启动用户均失败,如下述错误:
通过google发现,在WSL上很多人都碰到这个问题,同时WSL github的issue中提到在WSL2上这个问题已经解决。因此在搭建过程中选用的是WSL2。
WSL升级到WSL2
1.检查WSL的version方法:
VERSION显示出Ubuntu-20.04是用的WSL,而不是WSL2
2.升级WSL
- 使用管理员权限打开powershell,输入下述命令,并且重启系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 从下载 Linux 内核更新包下载X86 WSL2需要的内核包,并安装。
- 关闭正在运行的Ubuntu,并为其设置WSL2
wsl --shutdown
wsl --set-version Ubuntu-20.04 2
关于WSL2的网络配置
Reference中的三种配置网络的方式均有试过。最终只有WSL2设置内网访问满足我的需求。
另外两种方案有如下问题:
- WSL2开启桥接网络
重启后将会导致电脑无法上网
- 固定ip_如何在windows10 自带的wsl2 中解决固定ip的问题
重启后需要重新更新port forward设置,并且相对于选用的配置方案要复杂些。
关于Port forward设置
使用WSL2后,由于WSL2使用的是虚拟网卡,与实际的物理网卡是独立的。而在搭建samba服务器时,将139,445 port被释放,因此对应WIN10的实际网卡来说,这两个port是没有monitor的。而在我本地将这两个port恢复后,又碰到了一些其他的问题。因此,在firewall setting中,我这边将10139以及10445对外开放,然后使用下述命令将WIN10的上述port forward到WSL2的对应port上。
netsh interface portproxy add v4tov4 listenport=10139 listenaddress=<win10_ip> connectaddress=<wsl2_ip> connectport=139 protocol=tcp
netsh interface portproxy add v4tov4 listenport=10445 listenaddress=<win10_ip> connectaddress=<wsl2_ip> connectport=445 protocol=tcp