zoukankan      html  css  js  c++  java
  • install samba on wsl

    install samba on wsl

    参考 https://blog.csdn.net/fcymk2/article/details/86572249

    参考 https://segmentfault.com/a/1190000015892542

    参考 https://dog.xmu.edu.cn/2017/05/19/windows-network-neighborhood.html

    根据以上背景知识,在Windows10上通过WSL搭建Samba服务的方案如下:

    1. 释放Windows占用的139,445端口
    2. 安装Samba服务,并且配置
    3. 更改防火墙配置
    4. 最后测试

    实施步骤

    释放Windows占用的139,445端口

    释放139端口

    • 安装完毕的Windows10系统,默认情况下会监听139与445端口,通过netstat -an | findstr /r "139 445"可以查看:
    • 禁用NetBIOS over TCP/IP,通过如下操作禁用,在“更改适配器设置”界面,双击对应网卡,打开“以太网状态”界面:
    • 点击“属性”打开“以太网属性”界面:
    • 选中“TCP/IPv4”项目,点击“属性”,打开“TCP/IPv4属性”界面:
    • 点击“高级”并选中“WINS”页签,勾选“禁用TCP/IP上的NetBIOS”:
    • 点击“确定”以后生效,如果有多块网卡,每块网卡都要按照如上步骤操作,操作完毕以后,还是通过netstat命令进行查看,发现139端口已经不再监听。


    释放445端口

      • 通过“WIN+R”打开运行窗口,输入:services.msc,打开服务管理界面:
      • 找到Computer Browser服务,双击该服务打开属性界面,将“启动类型”修改为禁用,并且直接点击“停止”:
      • 找到Server服务:
      • 双击Server服务,打开属性界面,将“启动类型”修改为禁用,并且直接点击“停止”:
      • 设置完毕以后重启系统。
      • 重启完毕以后,再通过netstat -an | findstr /r "139 445"命令检查端口使用情况,发现445端口已经释放成功。

    安装Samba服务,并且配置

    安装Samba服务:

    • 先升级apt-get工具,命令:sudo apt-get update
    • 安装samba软件包,命令:sudo apt install samba


    配置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 = Yes
    • 写好配置文件,因为是user安全模式,所以需要添加一个smb用户,命令:sudo smbpasswd -a jamieli,并输入密码:
    • 启动smbd服务,sudo service smbd start
    • 在Windows的CMD窗口查看端口暂用情况,发现139与445被smbd服务占用了:
    • 通过Windows本地的资源管理器,输入本机IP地址,可以访问到共享目录:
    • homes目录中,创建一个test目录,可以看到对应c:privatejamieli目录中,多了一个相同的目录:
    • 但是通过另外一台机器访问,发现访问失败,原因就是防火墙的设置问题,下一节我们讲下如何配置防火墙:

       

    更改防火墙配置

    • 在“运行”界面输入:wf.msc,启动防火墙配置界面,选中“入站规则”菜单,右侧点击“新建规则”:
    • 在“新建入站规则向导”界面中,选中“端口”:
    • 选择“TCP”,并且输入端口“139,445”:
    • 选择“允许连接”:
    • 起名为“samba服务”,点击“完成”:

    最后测试:

    • 在Mac下面进行访问测试,在Finder界面下使用“CMD+K”,打开“连接服务器”界面,输入之前配置的服务器地址:
    • 输入通过smbpasswd命令添加的SMB账户与密码:
    • 成功访问通过WSL搭建的Samba服务,此时关闭Ubuntu窗口没有任何影响,服务在后台会继续运行:


    总结

    通过该服务配置的过程,大体了解了WSL的使用,通过该方式也可以在Windows上部署SSH等服务,对于熟悉Linux系统的人员来说是一大福音。
    同时通过一些工具,也可以将这些服务包装成Windows的Service,Windows启动的时候自动加载这些服务。
    欢迎各位看官互相交流,Email:jamieli@vip.qq.com,WeChat:jamieli

    参考

    NetBIOS over TCP/IP
    Windows Subsystem for Linux Documentation

    -------------------------------

    禁用 Browser  和 LanmanServer 服务:

    sc config LanmanServer start=disabled
    sc config Browser start=disabled

    查看网络接口代理配置

    netsh interface portproxy show all

    查看网络监听端口

    netstat -an | findstr /r "139 445"

    编辑配置文件 /etc/samba/smb.conf 增加以下内容:

    [Share-root]
       comment = Share-root
       browseable = yes
       path = /root
       valid users = @root, root
       public = yes
       available = yes
       guest ok = no
       writable = yes
       read only = no
       directory mask = 0775
       create mask = 0664
    
    [Share-lsgx]
       comment = Share-lsgx
       browseable = yes
       path = /home/lsgx
       valid users = @root, lsgx
       public = yes
       available = yes
       guest ok = no
       writable = yes
       read only = no
       directory mask = 0775
       create mask = 0664

    编辑配置文件 /etc/init.wsl 添加 /etc/init.d/smbd $1 内容

    #! /bin/sh
    #Filename: /etc/init.wsl
    #Usage: sudo /etc/init.wsl [start|stop|restart]
    
    /etc/init.d/cron $1
    /etc/init.d/ssh $1
    /etc/init.d/smbd $1
    /etc/init.d/supervisor $1

    浏览 \127.0.0.1 共享内容

    ================ End

  • 相关阅读:
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
    15. 3Sum
    14. Longest Common Prefix
    13. Roman to Integer
    12. Integer to Roman
    11. Container With Most Water
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/12088534.html
Copyright © 2011-2022 走看看