一、安装samba
1、安装samba
sudo apt install samba
2、创建共享目录
sudo mkdir /home/ls/share
# ls是home下一个文件夹,对应虚拟机的名字。
sudo chmod -R 777 /home/ls/share
3、创建samba配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo vim /etc/samba/smb.conf
然后在smb.conf最后添加几行,如下图所示:
[share]
path = /home/ls/share
available = yes
browseable = yes
valid users = ls
public = yes
writable = yes
备注:
#public = yes 不需要密码访问
or
#public = true 不需要密码访问
输入:testparm 检查配置是否正确
如果提示用布尔,就将public = yes 改成 true,去掉valid users = ls 那一行。
![](https://i-blog.csdnimg.cn/blog_migrate/50335a40acbc052584db45364651f3d4.png)
4、创建samba账户
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a ls //ls为samba的账号 密码简单点可以设置为1
![](https://i-blog.csdnimg.cn/blog_migrate/0a09508566178c5bdc3e1c5f322d24f0.png)
5、重启samba服务器
sudo /etc/init.d/smbd restart 或 sudo service smbd restart
6、使用
ifconfig查看ip:192.168.150.138
windows下打开文件夹,输入
\\ip地址\share
7、将共享文件夹映射成本地磁盘
这样的文件夹不是磁盘,不能当C盘使用
比如它不能直接拖入PHPstorm编辑器(Sublime可以),所以可以将其映射成本地磁盘
步骤:windows下网络->右键->映射网络驱动器
输入 文件夹框 \\ip地址\ShareFiles,按提示输入用户名密码即可。(比如,\\192.168.150.144\share)。
二、卸载Samba
sudo apt-get autoremove samba samba-common
sudo apt-get purge samba samba-common
三、Windows连接不上的问题
ping 虚拟机是通的,ssh连接也没问题,samba服务正常,那就是防火墙捣的鬼
1、确保防火墙的关闭,或者将samba设置为白名单,一般本地选择关闭即可
sudo ufw status //查看防火墙状态
sudo ufw enable //开启防火墙
sudo ufw disable //关闭防火墙
如上所示,Status: inactive即为关闭状态
但是我依然连不上,然后我又执行:systemctl status firewalld,如下所示:running
具体查看 firewalld和ufw的区别,还有iptables的规则。
不甘心,继续执行:
sudo systemctl disable firewalld //永久关闭
sudo service smbd restart //重启samba
再次连接:ok,成功了。只是需要输入密码,如果不行就重启虚拟机。
附录:
临时关闭防火墙,重启会自动打开
systemctl stop firewalld
永久防火墙开机自关闭
systemctl disable firewalld
临时打开防火墙
systemctl start firewalld
防火墙开机启动
systemctl enable firewalld
查看防火墙状态
systemctl status firewalld