BC 2019-06-28
习惯了Linux系统的人们,肯定觉得Samba服务更加灵活和方便,那如何在Windows系统上搭建高效的Samba服务呢?本文介绍了通过WSL在Win10系统上,搭建Samba文件共享服务。
背景是家里只有一个台式机,一方面家里人偶尔使用,另一方面,它是家里的数据中心,挂载了多块硬盘。所以系统用的是Windows10,但是为了方便灵活得进行文件共享,一直考虑搭建Samba服务。达到此目的的方案有多种,可以考虑用虚拟机,例如:VMWare、VirtualBox、Hyper-V,也可以考虑使用CygWin,因为Windows10提供了WSL,所以本文介绍了另一种方式,也是运行效率比较高的一种方式,使用WSL搭建Samba服务。
使用网络对外提供文件访问服务,现在广泛用于局域网内部文件的共享,例如:小米盒子、手机、PC机、包括Mac,通过139或445端口。
对不同版本的Windows做了抓包测试,发现WinXP只访问139端口,Win7同时访问139与445端口,Win10只访问445端口,测试结果如下:
Windows10

Windows7

WindowsXP

是在Windows10系统上,对Windows内核进行了封装,使其可以直接支持ELF格式的Linux可执行程序,感觉有点像GNU/Windows。
现在基于WSL,已经有了多个Linux发行版,包括Ubuntu、Debian、Suse、Kali等,能够非常方便得在Windows里面运行Linux发行版,学习和使用各种Linux工具,同时也能够将Linux里面各种服务无缝集成到Windows环境中,例如:Samba服务、SSH服务等
为了实现UNIX、Linux等非Windows能够访问Windows的文件共享资源,之前有个大牛将SMB(Server Message Block)协议进行了逆向分析,然后根据逆向分析的协议开发了一套开源软件Samba,可以让UNIX、Linux、Mac等系统能够与Windows之间进行文件共享。目前最新的Samba甚至可以提供AD、DC等服务。
根据以上背景知识,在Windows10上通过WSL搭建Samba服务的方案如下:
netstat -a|findstr LISTENING可以查看:





services.msc,打开服务管理界面:



netstat -a|findstr LISTENING命令检查端口使用情况,发现445端口已经释放成功。

wsl:



bash命令进入Ubuntu的命令行模式:
sudo apt-get update:
sudo apt install samba:
这里只是一个配置示例,用最简单的配置让服务跑起来,如果需要深入了解samba服务的配置,建议去网上找更多的攻略。
sudo vi /etc/samba/smb.conf,这里配置了一个用户私有目录homes,以及一个所有人可读写的共享目录share,对应windows上的目录分别是c:\private\<用户名>,以及c:\share:
具体配置文件内容如下:
[global]
    workgroup = WORKGROUP
    server string = jamieli-vm
    log file = /var/log/samba/log.%m
    log level = 0
    max log size = 1000
    security = user
    map to guest = Bad User
    passdb backend = smbpasswd
    smb passwd file = /etc/samba/smbpasswd
    username map = /etc/samba/smbusers
    guest account = nobody
    os level = 64
[homes]
    comment = user private
    path = /mnt/c/private/%u
    read only = No
[share]
    comment = home share
    guest ok = Yes
    path = /mnt/c/share
    read only = No
    public = Yessudo smbpasswd -a jamieli,并输入密码:
sudo service smbd start:


homes目录中,创建一个test目录,可以看到对应c:\private\jamieli目录中,多了一个相同的目录:


wf.msc,启动防火墙配置界面,选中“入站规则”菜单,右侧点击“新建规则”:







通过该服务配置的过程,大体了解了WSL的使用,通过该方式也可以在Windows上部署SSH等服务,对于熟悉Linux系统的人员来说是一大福音。
同时通过一些工具,也可以将这些服务包装成Windows的Service,Windows启动的时候自动加载这些服务。
欢迎各位看官互相交流,Email:[email protected],WeChat:jamieli
NetBIOS over TCP/IP
Windows Subsystem for Linux Documentation
其他全市默认配置。5.在Ubuntu中建立共享文件夹,命名为share,然后进入VirtualBox菜单选择Deivce=》Shared Folder Settings 里面指定创建的share路径。