统信uos通过smb协议向windows传输文件速度慢的主因是smb1协议协商降级,需禁用smb1、强制启用smb3并调优tcp参数和samba配置,方可将速率提升至60~90mb/s。

统信UOS通过SMB协议向Windows传输文件时速度卡在几MB/s,远低于千兆局域网理论上限(约110MB/s),说明Samba服务未启用高性能传输模式、TCP窗口未调优或存在协议协商降级问题。
确认当前SMB协议版本与协商结果
先验证Windows是否强制使用老旧低效的SMB1协议——这是导致速度骤降至3~5MB/s的最常见原因。打开UOS终端,执行:
smbclient -L //192.168.1.100 -U username%password | grep -i "smb"
若输出中出现“SMB1”或“NT1”,说明连接被降级;若显示“SMB3_11”或“SMB3_02”,则协议版本正常。Windows 10/11默认禁用SMB1,但部分旧版UOS Samba配置仍会主动协商该协议,必须手动禁用。
禁用SMB1并强制启用SMB3
编辑Samba主配置文件:
sudo nano /etc/samba/smb.conf
在[global]段落开头添加以下三行(位置不能错,必须在所有共享段之前):
min protocol = SMB3
max protocol = SMB3
server min protocol = SMB3
这一步强制Samba只响应SMB3及以上请求,彻底切断SMB1回退路径。不加这三行,即使Windows端已关闭SMB1,UOS的smbd仍可能因兼容性试探而触发协商降级,导致吞吐量腰斩。
启用SMB3关键性能特性
继续在[global]段落中追加以下参数:
server signing = auto
server encryption = required
kernel oplocks = yes
use sendfile = yes
posix locking = no
aio read size = 16384
aio write size = 16384
一款AI工具,主要用于使用 OpenAI Codex CLI 处理编码任务。触发词:codex、code review、fix CI、refactor code、implement feature、coding agent、gpt-5-codex。Clawdbot 可将编码工作委托给 Codex CLI 作为子代理或直接工具,适合需要提升相关任务效率的用户。
其中use sendfile = yes启用内核零拷贝传输,避免用户态内存复制开销;aio read/write size设为16KB可匹配千兆网卡MTU与Windows SMB3默认IO大小,比默认值(0)提升3倍以上连续读写效率。跳过此步,大文件传输将频繁陷入小包阻塞状态。
调整TCP网络栈参数
创建临时生效的TCP优化脚本:
echo 'net.core.rmem_max = 4194304' | sudo tee -a /etc/sysctl.conf
echo 'net.core.wmem_max = 4194304' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_rmem = 4096 262144 4194304' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_wmem = 4096 262144 4194304' | sudo tee -a /etc/sysctl.conf
立即应用:
sudo sysctl -p
这些参数将TCP接收/发送缓冲区上限从默认256KB提升至4MB,使SMB3能充分利用千兆带宽。未调整前,缓冲区溢出会导致大量TCP重传,实测传输速度被压制在6MB/s以下。
重启Samba服务并验证效果
执行:
sudo systemctl restart smbd nmbd
在Windows资源管理器地址栏输入:
\192.168.1.20shared
输入UOS用户名和Samba密码后进入共享目录,拖入一个500MB测试文件,观察传输速率是否跃升至60~90MB/s。若仍低于50MB/s,检查Windows端是否启用了“快速启动”——该功能会锁定NTFS卷,导致Samba写入时频繁等待卷解锁,必须在Windows电源选项中关闭。










