麒麟系统v10共享文件夹给win和统信
linux下应该应有一个类似windows下bat的批处理文件只要运行就能一键解决各种系统文件、打印共享问题。以下是sh原料一、麒麟系统默认自带samba二、配置服务器端samba的smb.conf文件输入sudo pluma /etc/samba/smb.conf在下边添加[share]comment kylin sharepath/data/sharecreate mask0777directory mask0777publicyeswriteableyesavailableyesserver min protocol LANMAN1然后保存。在Samba配置中server min protocol LANMAN1的含义是设置服务器支持的最小SMB协议版本为LANMAN1。SMBServer Message Block是一种用于局域网上共享文件和打印机的通信协议。不同版本的SMB协议具有不同的特性和安全性。较旧的客户端可能只支持较旧的SMB协议版本而现代的Samba服务器默认可能不支持这些较旧的协议版本。因此当较旧的客户端尝试连接到现代的Samba服务器时可能会出现协议协商失败的情况导致无法正常访问共享资源4。通过在Samba配置文件/etc/samba/smb.conf的[global]部分添加server min protocol LANMAN1可以指定服务器支持的最小SMB协议版本为LANMAN1从而允许较旧的客户端连接到服务器5。这有助于兼容不同版本的操作系统与现代Samba版本之间的通信差异解决客户端连接时报错NT_STATUS_INVALID_NETWORK_RESPONSE的问题4。需要注意的是启用较旧的SMB协议版本可能存在安全隐患因此如果可以升级客户端以支持更新的SMB协议版本建议尽量升级客户端如果SMB1感觉卡顿需要添加#注释掉这行按照下边的方法设置最小版本为SMB2.改动不会影响win客户端因为win环境SMB最小为SMB2。三、添加共享文件夹在数据盘新建个share文件夹。不要home下新建否则无法共享。创建共享文件夹sudo mkdir /data/share/sbgsudo chmod 777 /home/share/sbg以上步骤可以直接用鼠标新建文件夹点右键设置共享在高级共享里添加用户设置读写权限。四、重启电脑或者启动sambasudo /etc/init.d/smbd start五、在客户端打开共享方法1IP访问windows客户端浏览器中输入\\192.168.1.104\sharelinux客户端安装samba客户端一般默认安装有sudo apt-get install smbclient运行以下命令打开共享smb://192.168.1.104/sbgIP地址可以根据共享文件电脑ip实际情况调整,输入共享密码.方法2计算机名访问最好不要在客户端设置SAM1或NT1兼容性虽然好但卡顿问题多六、改进限制SMB版本、优化参数、开启CIFS1、在服务器端上验证确保Linux内核≥2.6.26uname -r # 输出示例5.4.0-135-generic2、服务器端打开文件二选一sudo nano /etc/samba/smb.confsudo vim /etc/samba/smb.conf3、64MB下写入传输块调整解决WIFI64MB带宽瓶颈rsize 65536 # 从1MB降至64KBwsize 65536veto oplock files /*.mdb/*.ldb/*.sqlite # 防止关键文件锁冲突min protocol SMB2 # 强制使用高效协议#1000MB提高单次读取块大小为1Mrsize 1048576wsize 1048576veto oplock files /*.mdb/*.ldb/*.sqlite # 防止关键文件锁冲突socket options TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF131072 SO_SNDBUF131072#设置文件权限为可读写、可执行会增加同步次数各类安全巡检会判定配置不合规不推荐。create mask 0766force create mode 0766#设置文件权限为可读写不可执行推荐。create mask 0666force create mode 06663、#强制smb版本为2server min protocol SMB24、在服务器端关闭oplocks 机会锁。oplocksno#服务器开启后大量小文件批量读取场景性能提升明显。重复读取文件速度更快。但是Linux CIFS 内核本身存在兼容性 bugSMB3 搭配 oplock 长期使用有偶发读写异常。因此关闭。kernel oplocks no#这是Linux 专属内核级机会锁让 Samba 把锁管理交给系统内核优化锁性能。它是 oplocks 的增强附属功能依赖 oplocks 主开关。必须配套设置 同时关闭或打开。否则SMB逻辑混乱七、客户端优化5\1、客户端一般无需设置。也可以打开文件sudo nano /etc/samba/smb.conf#sudo vim /etc/samba/smb.conf3、#强制smb版本为2删除此行client min protocol NT1client min protocol SMB24、# TCP客户端删除固定缓冲区只保留低延迟消除内核TCP告警socket options TCP_NODELAY IPTOS_LOWDELAY#注意case sensitive no不区分大小写有windows环境兼容性更好# 目录缓存不用反复请求服务器文件列表getwd cache yes# 无访问15分钟自动断连避免僵死连接卡住目录deadtime 15# 关闭WINS解析只走广播hosts杜绝域名解析卡住name resolve order bcast host lmhosts wins# 检查语法错误testparm# 随后重启服务生效sudo systemctl restart smbd nmbd5、下边分析挂载工具gvfs全称GNOME Virtual File SystemGNOME 虚拟文件系统是统信 UOS、Ubuntu、Deepin 这类基于 GNOME 生态的 Linux 桌面自带工具。给桌面文件管理器提供各类网络路径、外接设备的访问能力。CIFS Common Internet File System通用互联网文件系统。本质是SMB 协议在 Linux 系统下的内核实现。Windows 文件共享底层协议是 SMBLinux 要读写 Windows/Samba 共享靠内核模块cifs.ko实现挂载所以大家统称这种挂载方式为 CIFS 挂载。第一步杀掉当前 GVFS 残留卸载所有 GVFS-SMB 挂载# 卸载所有gvfs挂载的smb共享gio mount -u smb://qilin.local/sbg# 强制结束全部gvfs后台进程pkill -f gvfs# 校验无gvfs smb挂载mount | grep gvfs第二步用户级永久屏蔽 SMB 相关 GVFS 进程最关键统信标准方案GVFS 属于用户 systemd 服务必须加--user执行 mask彻底锁死无法自启、无法被桌面唤醒。逐条复制执行bash# 屏蔽SMB挂载、局域网网络扫描、mDNS解析元凶三进程systemctl --user mask gvfsd-smb.servicesystemctl --user mask gvfsd-network.servicesystemctl --user mask gvfsd-dnssd.service# 屏蔽多余网络监控组件防止连带拉起SMBsystemctl --user mask gvfs-goa-volume-monitor.servicesystemctl --user mask gvfs-smb-browse.service# 重启gvfs主进程让屏蔽生效systemctl --user restart gvfs-daemon可恢复命令后续需要放开 GVFS-SMB 时执行systemctl --user unmask gvfsd-smb.service gvfsd-network.service gvfsd-dnssd.service gvfs-goa-volume-monitor.service gvfs-smb-browse.servicesystemctl --user restart gvfs-daemon第三步文件管理器深度屏蔽网络 SMB 入口杜绝误点统信 DDE 文件管理器自带开关彻底隐藏 / 禁用网络 SMB 挂载入口分两种版本方式 A新版文件管理器 ≥6.0.56推荐普通用户终端执行关闭文件管理器 CIFS/GVFS 自动网络挂载dde-dconfig --set -a org.deepin.dde.file-manager -r org.deepin.dde.file-manager.mount -k enableCifsMount -v false第四步保证 CIFS 环境完整可用缺一不可1. 确认依赖安装sudo apt install cifs-utils samba-client avahi-daemon2. 保证域名解析服务正常计算机名 qilin.local 必备nmbd 负责 NetBIOS 计算机名avahi 负责.local mDNS绝对不能关sudo systemctl enable --now nmbd avahi-daemon# 不要mask这两个服务和GVFS无关3. 最终稳定 CIFS 挂载命令全程计算机名、两端锁匹配根治报错推荐两端全关锁方案全程只用/mnt/sbg访问彻底绕开 GVFS。开机自动挂载 fstab计算机名适配 DHCPsudo nano /etc/fstab在最后写入临时测试用里边的参数和最终版不同//qilin.local/sbg /mnt/sbg cifs usernamehuanghe,password密码,uid1000,gid1000,vers3.0,tcp,timeo20,retrans2,cachestrict,ropidcache,actimeo45,noserverino,nooplocks,hard,secntlmv2,_netdev,x-systemd.afternetwork-online.target 0 0解释_netdev识别为网络盘等 DHCP 拿到 IP 再挂载x-systemd.afternetwork-online.target确保网络、域名解析就绪。测试sudo mount -a。必须分清哪些服务不能动nmbd、avahi-daemon、cifs内核模块、smbd客户端不用开smbd服务端必须开屏蔽锁定gvfsd-smb、gvfsd-network、gvfsd-dnssd仅这几个不要全删 gvfs否则 U 盘、手机挂载失灵八、常见疑问汇总A、禁用 GVFS 后 CIFS 变慢吗不会。CIFS 走内核GVFS 是用户态两套完全独立CIFS 性能不受 GVFS 任何影响。Windows 访问 Samba 服务器受影响吗完全无影响。Windows 依靠服务端 smbd/nmbd 走标准 SMB和客户端统信的 GVFS 没有任何关联。还能访问 FTP、U 盘、手机吗可以。只屏蔽 SMB 相关 GVFSFTP、移动硬盘、MTP 手机依赖的 gvfs 组件正常运行。还会出现「对非套接字进行套接字操作」吗只要两端锁统一关闭 无 GVFS 双重挂载该报错基本彻底根除。liB、cifs重启后访问故障修复nux使用CIFS共享在文件管理器输入“/run/user/1000/gvfs/smbshare:serverqilin.local,sharesbg/”之后可以正常访问共享但是重启后再次输入则报错“无法创建目录[Errno2]No such file or directory:”。从文件管理器中点击左侧挂载的共享能够访问然后问题消失。是否是因为cifs开机未启动是的如果avahi-daemon服务未启动就启动cifs挂载则导致cifs开机启动不成功此时应按如下取消开机启动而是等待avahi-daemon服务启动后再启动。方法如下sudo nano /etc/fstab在最后写入//qilin.local/sbg /mnt/sbg cifs usernamehuanghe,password密码,uid1000,gid1000,noperm,vers3.0,_netdev,noauto,x-systemd.automount,x-systemd.requiresavahi-daemon.service 0 0#解释#在绝大多数 Linux 发行版包括统信UOS、麒麟、Ubuntu、Deepin中第一个创建的用户系统分配的 ID 号就是 1000。#uidUser ID代表用户身份。1000 通常就是你的登录用户名比如你脚本里的 huanghe。#gidGroup ID代表用户组身份。1000 通常是与你的用户名同名的私人组。#第一个0 代表不备份。因为 /mnt/sbg 是一个远程网络文件夹里面的数据本身就在服务器上没有必要让系统本地备份工具去处理它。填 0 是最佳实践。#第二个0是磁盘检查顺序 / fsck这个位置是给系统启动时的磁盘扫描工具 fsck文件系统检查用的。0 代表不对该分区进行磁盘检查。fsck 只能检查物理硬盘上的文件系统如 ext4、xfs而 cifs 是网络协$C、IP方式访问存在问题。1、试试在客户端、服务端的设置、网络安全中心中关闭防火墙限制。2、通常SAMBA包含smbsmbd 核心服务和nmbdNetBIOS 名称服务。如只能通过IP实现文件共享win客户端的打印机共享无法实现请检查服务器端的nmbd是否被限制。开启nmbd后win7可以通过服务器名qilin.local访问并添加打印机。解释IP和计算机名两种方式共享的特点如下方法一只靠 IP 访问共享nmbd 可以关闭仅保留 smbd 也能工作。方法二让 Windows “网上邻居” 能看到这台 Linux 主机打开nmbd解析主机名 -NetBIOS 名。

相关新闻

最新新闻

日新闻

周新闻

月新闻