我目前正在尝试使运行在Redhat 5上的旧的独立Samba共享服务器恢复正常! 它以前运行的版本3.0,由于很多问题,我决定升级到与官方包的版本3.6。 现在,我正确运行Radhat 5上的Samba 3.6
Red Hat Enterprise Linux Server release 5.11 (Tikanga) Samba version 3.6.23-12.el5_11
这是我的testparm输出:
Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[diro]" Processing section "[dirt]" Processing section "[dire]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] workgroup = DUMMY server string = Samba %v interfaces = 127.0.0.1, eth0 bind interfaces only = Yes client ipc signing = auto printcap name = cups idmap config * : backend = tdb cups options = raw [diro] path = /home/diro valid users = usero read only = No create mask = 0664 directory mask = 0775 [dirt] path = /home/diro/t valid users = usero read only = No create mask = 0777 directory mask = 0777 [dire] path = /home/diro/e valid users = usert read only = No create mask = 0777 directory mask = 0777
完整的smb.conf:
[global] workgroup = DUMMY server string = Samba %v interfaces = 127.0.0.1 eth0 bind interfaces only = true printing = cups printcap name = cups load printers = yes client ipc signing = auto client signing = auto log level = 3 min protocol = core map to guest = Bad User security = user passdb backend = tdbsam load printers = yes cups options = raw [diro] path = /home/diro valid users = usero read only = No create mask = 0664 directory mask = 0775 [dirt] path = /home/diro/t valid users = usero read only = No create mask = 0777 directory mask = 0777 [dire] path = /home/diro/e valid users = usert read only = No create mask = 0777 directory mask = 0777
我能够从本地主机连接到其中一个共享:
>$ smbclient //DUMMYMO/diro -U usero usero Domain=[DUMMY] OS=[Unix] Server=[Samba 3.6.23-12.el5_11] smb: \>
这是好的,但我仍然想知道为什么它不适用于Windows 7机器:
>$ net use x: \\DUMMYMO\diro /user:usero usero System error 58 has occurred. The specified server cannot perform the requested operation.
通过将日志级别设置为3,我可以在Windows连接尝试期间看到这些日志行:
[2017/11/06 15:12:46.107877, 3] lib/access.c:338(allow_access) Allowed connection from XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) [2017/11/06 15:12:46.108026, 3] smbd/oplock.c:922(init_oplocks) init_oplocks: initializing messages. [2017/11/06 15:12:46.108087, 3] smbd/oplock_linux.c:246(linux_init_kernel_oplocks) Linux kernel oplocks enabled [2017/11/06 15:12:46.108167, 3] smbd/process.c:1609(process_smb) Transaction 0 of length 109 (0 toread) [2017/11/06 15:12:46.108198, 3] smbd/process.c:1414(switch_message) switch message SMBnegprot (pid 13707) conn 0x0 [2017/11/06 15:12:46.108463, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108496, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108517, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108537, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108556, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108576, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [NotSmb] [2017/11/06 15:12:46.108595, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [SMB 2.002] [2017/11/06 15:12:46.108615, 3] smbd/negprot.c:598(reply_negprot) Requested protocol [SMB 2.???] [2017/11/06 15:12:46.108669, 0] smbd/negprot.c:706(reply_negprot) No protocol supported ! [2017/11/06 15:12:46.110716, 1] smbd/process.c:457(receive_smb_talloc) receive_smb_raw_talloc failed for client XXX.XXX.XXX.XXX read error = NT_STATUS_CONNECTION_RESET. [2017/11/06 15:12:46.110790, 3] smbd/server_exit.c:181(exit_server_common) Server exit (failed to receive smb request)
这是networking跟踪:
>$ sudo tcpdump -i eth0 -nn "tcp port 445" tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 15:21:05.292627 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: S 946161236:946161236(0) win 8192 <mss 1380,nop,wscale 8,nop,nop,sackOK> 15:21:05.292732 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: S 2489729164:2489729164(0) ack 946161237 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7> 15:21:05.294416 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: . ack 1 win 258 15:21:05.294748 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: P 1:110(109) ack 1 win 258 15:21:05.294772 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: . ack 110 win 46 15:21:05.298603 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: P 1:42(41) ack 110 win 46 15:21:05.300286 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: R 110:110(0) ack 42 win 0
如日志所述,客户端在服务器回答后直接发送RST标志,我不知道为什么。 我已经尝试了许多解决scheme,如分钟协议,服务器签名没有成功。
我用完了解决scheme..你有什么build议吗?
请注意,我没有在我的桌面上的pipe理员权限,我想很多参数是强加的域。
感谢MadHatter的提示,我能够解决这个问题:客户只需要SMB2而不是SMB3。 这个技巧可以很容易地应用在Global部分下的configuration中:
最大协议= SMB2