Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;
SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;
NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
一. 受首先linux主机安装samba共享程序(liunx里面自带)
0,查看系统当前是否安装了samba
rpm -qa|grep samba 查看是否安装samba, 没有任何输入信息说明当前系统没有安装samba
1.samba安装
yum install samba
2 samba启动
systemctl start smb 如果启动不成功尝试重启一下服务器
systemctl restart smb.service 重启服务 (推荐用这命令重启samba)
3 查看samba的服务启动情况
service smb status
添加samba用户(添加的账户必须linux已经存在的帐号),如下图是要将root用户添加为samba用户
查看samba服务器中已拥有哪些用户:
pdbedit -L
添加samba服务用户(此处添加root用户为samba服务用户)
smbpasswd -a root
删除samba服务中的某个用户
smbpasswd -x 用户名
这里要设置网站目录共享权限 samba设置
先备份系统原有的配置: cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
编辑配置文件 : vim /etc/samba/smb.conf
4 将服务加入到开机启动中
systemctl enable smb (查看是否设置成功,可能重启服务器验证)
把以下这段贴到文件最下端,括号内的文字删掉不贴(不会的话可以用linux面板管理直接编辑smb.cof,正常在/etc/samba)
[xxwindowsfilename]
path = /www/wwwroot/filepath
valid users = root
public = no
writable = yes
browseable = yes
printable = no
create mask = 7777
directory mask = 7777
Samba开启成功后,我们试着在win服务器里连接共享文件。调出“运行”窗口,快捷键:win+R。输入\\ip
例如我们的linux服务器的ip地址为198.165.1.1 (内网的IP),那么我们就输入:\\198.165.1.1(没必要加的文件目录,直接这样IP地址就可以)
二. win端登入共享目录并挂载为Z盘 (盘符你可自定)
开始菜单 - “运行”
运行
\\23.245.xxx.xxx
如果此时弹出窗口提示无法连接,请登录你的宝塔面板【安全】 看看是否开放了445,139端口,博主并未开放137,138端口也可以正常访问了,且也未到阿里云对应的ECS服务器的【安全组策略】中开放139,445端口,就单单在宝塔中操作开放139,445端口
(链接linux主机) 这里会弹出登入窗口,填你之前设置的
samba的用户名 root + 密码 XXXXXX
右键“我的电脑”-“映射”
映射
\\23.245.xxx.xxx\xiaoshuo
(这里填你之前设置的文件夹名)
三. 启动关关采集器
关关采集器的系统设置里面:
发布目录:手动选择挂载的Z盘里要发布的网站根目录
链接的数据库:Data Source填linux的ip
Data Source=23.245.xxx.xxx;Database=数据库名;User ID=账户assword=密码;port=3306;charset=gbk
补充:
先查看端口情况,如果 3306(Mysql 的端口) 端口被 DROP 掉,需要放开这个端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
关闭防火墙(关闭或者添加允许)
smbd应用进程主要监听139和445端口, nmbd应用进程主要监听137与138端口。
查看端口命令
[root@Linuxidc-Server ~]# netstat -tunlp | grep -E 'smbd|nmbd'
安装 samba为 samba 打开防火墙上的相应端口,运行以下命令
firewall-cmd --zone=public --add-port=137/tcp --permanent //不能访问时才尝试打开此端口
开放端口137、138、139、445。一般vps商家默认开放所有端口,但想阿里云,腾讯云这类商家会把防火墙做在后台,需要你手动开启对应端口。
注意:如果你安装了宝塔,不仅要在服务器后台开启端口,还需要在面板的安全里再放行这些端口!
其实不需要手动去开放某个端口,完全在有服务器后台及宝塔的控制界面去开放你要开放的端口即可,这里先贴出来手动开放端口的操作命令:
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent
firewall-cmd --reload
systemctl restart firewalld.service
注:samba开发tcp/139,445端口,udp/137,138端口。
现在的mysql数据库默认只允许本地ip访问,我们还需要更改权限为允许所有人访问。所有步骤完成后再测试一下数据库连接是否成功。一般没问题的话,保存并重启关关采集器,就可以开始远程采集了。