深入解析Linux与Windows集成中的SMB协议
1. Windows 98与Samba性能问题
在使用Windows 98的资源管理器(可能还有其他程序)向网络共享进行写入请求时,会错误地设置“sync”位。这会导致严重的性能下降,因为Samba在每次写入后都会正确地对文件执行fsync()操作。再加上Windows 98资源管理器使用的写入大小非常小(约1.5k),最终结果会非常糟糕。
不过,在Samba 1.9.18p10及更高版本中,对Samba进行了修改,默认情况下会忽略这些错误的同步请求。这使得使用Windows 98资源管理器时性能大幅提升。如果需要恢复旧的(较慢的)行为,可以使用“strict sync”选项。
2. “your server software is being unfriendly”错误解析
当使用smbclient尝试连接服务器时,如果收到“your server software is being unfriendly”错误,这意味着smbclient已成功建立到服务器的TCP连接,但在打开的套接字上尝试进行NBT“会话请求”时,得到的是乱码(或没有响应)。“不友好”的原因是客户端期望得到规范(如RFC1001/1002)中定义的多种可能的错误代码之一,但实际得到的却是完全不同的内容。
通常,这意味着根本没有成功与SMB服务器进行通信,套接字连接到了其他东西。如果Samba是服务器,常见原因是smbd未能正确启动,并在响应会话请求之前退出。错误或缺失的配置文件可