本文参考:1.于宙同学的微信公众号-嵌入式杂谈之Samba服务 (欢迎大家多多关注!)

前言

  • 如果我们现在两个Windows主机之间实现文件共享,可以使用windows自带的网络邻居功能
  • 如果我们想在两个Linux主机之间实现文件共享可以使用NFS(网络文件系统)这个服务
  • 那么如果想在Linux主机与Windows主机之间共享文件,自然就引出了Samba服务
    此处我的演示在Ubuntu 18.04下截图进行,也是我搜了一圈… 最终看于宙大哥的文章写过 hhhh 然后就成功了

效果

如果使用过虚拟机的同学应该知道虚拟机可以开启复制共享 也可以 使用一个共享文件夹进行文件之间的共享,所以这个服务就是相当于那个:使用鼠标复制粘贴完成文件传输,相当于Ubuntu作为一个U盘接入到了我们的主机
在这里插入图片描述

samba服务产生历史

而windows与Linux是通过Samba协议进行目录共享,也是参考了网上邻居的功能

微软的网上邻居通过一种SMB协议(Server Message Block)(服务消息块)来实现文件共享。但是微软不公布这个协议,所以Linux社区组织了一个SAMBA工程,也就是在SMB的S和B字母后面分别加入一个字母A,通过抓取网上邻居的数据包反向推导出数据协议,所以SAMBA工程后来也慢慢变成一种服务,称为SAMBA服务。简单来说就是Linux主机在运行Samba服务的时候相当于一台假Windows来完成与Windows的通信

samba服务器安装 - Linux

开启一个服务基本就是安装,配置,重启

安装samba

# 安装
apt-get install samba

配置

打开配置文件

直接使用配置文件设置共享文件夹
sudo gedit /etc/samba/smb.conf

图片中我做了一定的注释,如果需要更多权限请 自行查询
在这里插入图片描述

图形化的设置共享文件夹

在这里我又用图形化 就是点击一个文件夹 -> 右键:属性 -> 第三个 本地网络分享【详情见下图】
在这里插入图片描述

添加用户及设置密码

这里有个小坑,就是这个用户应该首先被系统添加过 也就是我们经常看到的user or guest,所以为了方便我直接添加的我的root账户【也就是终端打开后显示在@前面的,例如上图是udi@udi-kin

sudo smbpasswd -a udi

在这里插入图片描述

重启服务

每一次对配置文件进行了修改都要记得重启服务!

# 重启samba服务
# 下面也可以看到d表示服务,而samba来源于smb,所以是如下名称
sudo /etc/init.d/smbd restart
# sabma有两个服务,重启另一个
sudo /etc/init.d/nmbd restart

查看ubuntu-IP地址

sudo apt-get install net-tools
ifconfig

在这里插入图片描述
拿小本本记下 红色框框的 一会就要用了
到此为止 我们已经设置好了Ubuntu这方面的 一系列配置及共享的文件夹

Window访问

客户端与服务器端

windows作为客户端来访问Linux主机 Linux作为主机共享自己的指定目录

Window访问设置方法:

直接按搜索:运行
在这里插入图片描述
或是:win+R打开运行框
在这里插入图片描述
如果忘记了在哪一步设置的情点击 对应的文字即可跳转步骤
第一步:看到的IP地址
第二步:回车出现文件夹
第三步:输入设置好的用户名与密码
然后就可以访问啦!
在这里插入图片描述
然后添加到快速访问栏 - 就可以快速访问(或者是映射驱动至此电脑)
打开我的电脑 -> 右键 -> 添加一个网络位置 -> 看到下图
在这里插入图片描述
按照这样的格式输入 就可以看到右图出现了文件夹

来自于宙同学的总结

使用samba服务器的好处就是可以将Linux下的目录共享到Windows下,这样打开Linux下的文件就相当于Windows本地打开文件一样。

之前我也试过好几种在windows上编写代码,然后再Linux上进行编译的尝试,总体来说vscode的remote-ssh功能还是相当稳定的,但是这并不妨碍我们再开阔一种眼界,只要在学习,就一直在进步,不是嘛(/狗头)

这样就可以解决我们的虚拟机使用vscode查看代码不方便的问题,从某种程度上来说,也可以算作为vscode的remote-ssh的替代方案。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐