前言
- 如果我们现在两个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
的替代方案。