Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现

考虑到window和linux虚拟机之间互传文件较为麻烦,遂打算在虚拟机中安装Samba服务器,以此实现共享文件给window使用。然而安装配置过程曲折,遂作记录如下:

一、samba服务器的安装

正常的安装流程如下:
1、安装samba:yum install samba
  检查samba安装状态:rpm qa | grep samba(确保samba服务器已经正常安装)
2、配置samba服务:vim /etc/samba/smb.conf
  testparm        测试samba配置文件是否有语法错误
3、添加samba新用户:
  smbpasswd -a user_name    添加samba新用户(前提是该用户已在Linux系统中存在,否则需要首先添加该用户到系统中)
  smbpasswd -x user_name    删除samba用户
  pdbedit -L    列出所有samba用户
4、重启samba服务:service smb restart
安装过程遇到的问题:依赖包错误云云
        Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
网上查了好久,始终未找到合适的答案(找依赖包这个思路的方向偏了,因为yum命令本身可以自动解决依赖包的问题)。
之后,我使用yum update命令,注意到了有这样的问题,
Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
         Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
然后,意识到了问题的所在--可能是由于之前安装samba过程残留了一些过程文件造成,了重新安装时出现了冲突?
Anyway,由于命令yum-complete-transaction在yum-utils包中,首先安装yum-utils,使用命令 yum install yum-utils;
然后执行命令yum-complete-transaction,成功安装了samba,问题得到了解决。
总结:遇到问题时,首先耐心找出所有可能引起问题的地方,并考虑问题的源头在哪

二、samba服务器与主机的通信

遇到的问题,通过win7主机运行窗口(按键:win+R)访问samba的共享端口,无法连接到samba:
        Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
为了解决这个问题,几乎找遍了网上的资源,遗憾的是并没有针对我所遇到问题的解决方案。不过这个帖子有所提及https://www.iyunv.com/thread-70422-1-1.html。虚拟机的联网配置一直是NAT模式,后改用桥接方式,确实连接成功了。
问题之所以解决,似乎也与我将最终目的分解为不同的步骤有关。最终效果是想实现win7访问虚拟机中CentOS的samba,但首先可以在虚拟机中本地进行smbclient客户端登录,下面是成功的现象
smbclient -U username -L \ipaddr
Enter SAMBAuser's password:

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    Work            Disk      GloryD's share work dir
    IPC$            IPC       IPC Service (Samba 4.10.4)
    gloryd          Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

    Server               Comment
    ---------            -------

可能的失败返回结果:
session setup failed: NT_STATUS_LOGON_FAILURE
确认当前用户是否已添加系统用户及samba用户:
cat /etc/passwd | grep user
pdbedit -L | grep user
指定用户可能非系统用户,useradd user添加该用户并指定登录密码
指定用户可能非Samba用户,smbpasswd -a user添加该用户并指定登录密码
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
共享目录有误,可能是目录不存在或者权限不对(http://www.cnitblog.com/201/archive/2010/09/26/69192.html
如果本地smbclient用户登录成功,便可以进一步实现win7对samba的访问。
然而,即便是在虚拟机中操作仍然不成功。不过好处是,错误有提示,如下:
session setup failed: SUCCESS - 0
由此,通过这个提示再进行网络资源搜索,最终找到了可参考的方案 https://www.iyunv.com/thread-70422-1-1.html
samba配置文件 /etc/samba/smb.conf 新增内容如下(简单配置,可以满足使用要求):
[work_dzh]            ;共享目录虚拟名
    comment = DZH share dircetory     ;共享目录描述
    path = /home/work                           ;真实共享目录
    browseable = yes                             ;目录可浏览
    writable = yes                                   ;目录内可写
    valid users = dzh                              ;登录用户为:dzh
此外,为了方便访问,可将虚拟机中的共享文件 work_dzh 配置为网络文件,
Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
不过这样一来,电脑开机启动过程异常缓慢(这是因为电脑启动过程需要加载驱动器Z,不过由于虚拟机未开启,故驱动器Z一直找不到,耗费了大量时间)。
 
【20200602 window10系统相关问题
虚拟机本地smbclient访问共享目录成功,但windows仍访问失败,尝试了如下方法并不ok
“我的电脑”--管理--服务和应用程序--服务 打开TCP/IP NetBIOSHelper  --无作用
控制面板-程序和功能-启用或关闭 Windows 功能,勾选 SMB 1.0/CIFS 文件共享支持中的 SMB 1.0/CIFS 客户端 & 服务器,重启  --无作用
可能与windows10家庭版有关系?(https://blog.csdn.net/snaking616/article/details/104282660 --尝试生成策略组gpedit.msc失败)
20200603
找到原因了...
目前使用的CentOS7系统,防火墙并非iptables而是firewalld
(寻找替代方案cuteFTP时,发现仍然连接不上虚机的ftp服务,进而发现了这个帖子https://bbs.csdn.net/topics/391927110
[root@centos7 gloryd]# systemctl stop iptables
Failed to stop iptables.service: Unit iptables.service not loaded.
[root@centos7 gloryd]# systemctl status iptables
Unit iptables.service could not be found.
(以上误以为已经关掉防火墙了,其实明显就提示问题了)
[root@centos7 gloryd]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 四 2020-06-04 00:13:43 CST; 2min 43s ago
     Docs: man:firewalld(1)
...
 
其他相关配置文章:
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝