使用Samba将Linux文件共享给Windows
以下操作用CentOS7做示范,其他发行版的命令和配置文件路径直接问AI就行
最好先临时关闭SELinux和防火墙,防止干扰,下列操作在重启后会被恢复
su
# 暂时关闭SELinux
setenforce 0
# 查看SELinux是否关闭,需要返回Permissive
getenforce
# 暂时关闭防火墙
systemctl stop firewalld
# 检查防火墙是否关闭,需要在返回的数据找到Active: inactive (dead)
systemctl status firewalld在Linux上安装和配置Smb服务器
1. 安装Samba服务器
su
yum update -y
yum install samba samba-client samba-common -y2. 创建smb用户
# 将root修改成你的用户名
$ su
$ smbpasswd -a root
# 设置密码
New SMB password:
Retype new SMB password:使用命令pdbedit -L查看samba中已经添加的用户
注意
这里有个坑,添加进smb的用户必须是Linux系统中已经存在的用户,比如Linux系统有root用户,那么就可以使用smbpasswd -a root命令给smb添加一个用户名为root的用户,但是你不能用smbpasswd -a abcd给smb添加abcd用户,因为Linux里没这个用户。还有个需要注意的点是两者的用户名虽然一样,但密码却可以设置不一样!
3. 配置
配置文件在/etc/samba/smb.conf,主要是配置共享目录和访问权限
可以使用mv命令备份原来的配置文件,然后用下面的配置替代
[global]
workgroup = WORKGROUP
security = user
[share]
# 改成想要共享的文件夹路径
path = /root
browseable = yes
writable = yes
read only = no警告
上面的配置文件中,path = /root这个配置后面千万不要加行尾注释!!否则会导致连接失败
4. 开启smb服务并设置开机自启
systemctl start smb
systemctl start nmb
# 设置开机自启
systemctl enable smb
systemctl enable nmb
# 每次修改配置文件都需要重启服务
systemctl restart smb
systemctl restart nmb
# 查看启动状态
systemctl status smb.service启动状态为running表示smb服务正在运行
5. 通过本地连接来检验配置是否正确
输入如下命令来连接本地的smb服务器,如果能进入smb: \>则表示配置成功
$ smbclient //localhost/share -U root
Password for [SAMBA\root]:
Try "help" to get a list of possible commands.
smb: \>
smb: \> ^C先进行本地测试是为了在出问题的时候可以快速定位是网络问题还是smb服务器本身的问题。
Windows远程连接Samba服务器
右键文件浏览器中的网络,点击映射网络驱动器
然后填写路径:\\<ip地址>\<配置文件中的配置项标题,就是用[]包裹的那个>,比如:\\192.168.1.2\share
这里的路径一定要填\share,不要填path当中的\root,一定要注意。
最后输入之前配置的smb用户名和密码即可
其他常用排错命令
每个人的系统环境都不一样,难免会出现各种奇怪的问题, 出错的话可以使用下面一些常用的排错命令:
查看日志:tail -f /var/log/samba/log.smbd
查看smb是否监听445端口:netstat -tulnp | grep 445
测试远程ip是否能访问:ping <ip地址>
测试远程端口是否能访问:telnet <ip地址> 445 ,按下Ctrl + ]然后输入quit可以退出telnet