N1刷飞牛os 修复smb问题
部分内容引用自 值友 。N1刷完飞牛后 开启smb提示错误,系统修复也失败,尝试记录处理过程,如有错误请跳过,其他设备不适用
1、登录ssh,登录root账号 执行
#检查smb运行状况
sudo systemctl status smbd nmbd
2、如果报错“smbd.service: Failed to locate executable /usr/sbin/smbd: No such file or directory”
#安装smb
sudo apt update && sudo apt install -y samba
重启smb
sudo systemctl restart smbd nmbd
重新查看状态
sudo systemctl status smbd nmbd
再也不会出现 No such file or directory
----------------------------接下来是值友提供的开启smb3的内容------------
先查病因:你的SMB协议是不是NT1?
SSH连上你的飞牛,敲这行:
cat /etc/samba/smb.conf | grep "min protocol"
如果看到NT1,恭喜你,找到罪魁祸首了。这是1990年代的SMB 1.0协议,Windows 10/11默认不待见它,ARM平台处理起来更是直接摆烂卡死。
再看看网卡正不正常:
ethtool end0 | grep Speed
# 显示1000Mb/s就是正常的,硬件没坏
直接修改smb.conf(推荐,效果立竿见影)
先备份:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
然后直接覆盖:
nano /etc/samba/smb.conf
整份配置我帮你写好了,直接全选粘贴进去:
[global]
workgroup = WORKGROUP
server string = %h server (Samba TRIM)
security = user
# ========== 协议升级:扔掉NT1,上SMB3 ==========
client min protocol = SMB2
client max protocol = SMB3
server min protocol = SMB2
server max protocol = SMB3
# ========== 网络优化:缓冲区给足 ==========
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=262144 SO_SNDBUF=262144
# ========== 关键:传输单元不能小 ==========
max xmit = 65536
# ========== 异步IO和零拷贝 ==========
aio read size = 16384
aio write size = 16384
use sendfile = yes
min receivefile size = 16384
# ========== 原始读写加速 ==========
read raw = yes
write raw = yes
large readwrite = yes
# ========== 多通道支持(网卡Bonding时用) ==========
server multi channel support = yes
# ========== VFS精简:去掉审计日志,减少IO ==========
vfs objects = trim_perms recycle
# ========== 回收站设置 ==========
recycle:keeptree = yes
recycle:versions = yes
# ========== Apple兼容(有Mac就留着) ==========
fruit:model = TimeCapsule
fruit:encoding = native
# ========== 宽链接支持 ==========
follow symlinks = yes
wide links = yes
unix extensions = no
# ========== 日志调低,别写太多 ==========
log level = 0
log file = /var/log/samba/log.%m
max log size = 1000
logging = syslog
# ========== 认证相关(保持默认) ==========
server role = standalone server
obey pam restrictions = yes
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = Entersnewsspassword:* %nn Retypesnewsspassword:* %nn passwordsupdatedssuccessfully .
pam password change = yes
usershare allow guests = no
# ========== 包含用户自定义(这行别删) ==========
include = /etc/samba/smb.custom.conf
include = /etc/samba/users/%Y.share.conf
include = /etc/samba/users/%Y.timas.conf
ARM版本飞牛SMB传输问题修复
粘贴完保存,重启Samba:
systemctl restart smbd nmbd
# 或者
smbd restart
nmbd restart
好了,到此应该就大功告成了。实测无线信号弱的地方不低于15MB/s,信号好的地方百兆文件包秒传!有线的话稳定50MB/s+没问题。
ARM版本飞牛SMB传输问题修复觉得麻烦的,后面就不用看了~~
验证改好了没敲这几行看看:
testparm -sv | grep -E "max xmit|protocol|socket|aio"
应该看到:
server max protocol = SMB3(不是NT1了)
max xmit = 65536(不是16644那个小可怜了)
socket options里有SO_RCVBUF=262144
再查当前连接:
sudo smbstatus -v | grep -E "Protocol|Dialect"
显示SMB3或者3.1.1就对了。
升级安全机制
飞牛大版本升级可能会重置系统分区,/etc/samba/smb.conf会被覆盖。创建检查脚本,升级后一键验证。
创建升级后检查脚本/root/check_smb.sh:
#!/bin/bash
echo "=== 飞牛SMB配置检查 ==="
echo "协议版本:"
testparm -sv 2>/dev/null | grep -E "min protocol|max protocol" | head -4
echo ""
echo "传输单元:"
testparm -sv 2>/dev/null | grep "max xmit"
echo ""
echo "当前活动连接:"
sudo smbstatus -v 2>/dev/null | grep -E "Protocol|Dialect" | head -3
echo ""
echo "提示:如protocol为NT1或SMB1,需重新应用优化配置"
每次FnOS升级后执行:
sudo bash /root/check_smb.sh
如果看到NT1或16644,说明配置被重置了,把上面那份配置重新贴一遍,重启Samba即可。
总结:三步搞定
查协议:grep NT1看到就改
贴配置:上面那份全文覆盖smb.conf
重启验证:systemctl restart smbd,速度起飞
------------------总结-----------
总体来说2个问题:
1、很多arm包括N1的smb没有安装,所有后台无法打开smb,安装后重新配置就好;
2、smb速度慢,按以上内容修改配置后重启smb服务
