我已经安装了 Samba4,并且 smb.conf 文件如下:
[global]
workgroup = WORKGROUP
server string = Samba Server
realm = REXIALO.COM
netbios name = REXIALO.COM
security = user
map to guest = Bad Password
bind interfaces only = no
interfaces = lo venet0
log file = /var/log/samba/samba.log
max log size = 1000
[webroot]
path = /usr/local/apache/htdocs
comment = Example.com webroot directory
read only = No
我可以使用 smbclient 从同一台服务器进行连接。
本地主机:
# smbclient -L 本地主机 -U root
域=[工作组] 操作系统=[Unix] 服务器=[Samba 4.1.11]
Sharename Type Comment --------- ---- ------- webroot Disk RexiAlo webroot directory IPC$ IPC IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Server Comment --------- ------- Workgroup Master --------- -------Enter root's password:
网络:
# smbclient -L rexialo.com -U
域=[工作组] 操作系统=[Unix] 服务器=[Samba 4.1.11]
Sharename Type Comment --------- ---- ------- webroot Disk RexiAlo webroot directory IPC$ IPC IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Server Comment --------- ------- Workgroup Master --------- -------
问题是当我尝试从 Windows 7 映射到 smb webroot 时,它会要求输入用户/密码,但会超时,然后提示输入凭据。samba.log 文件除了启动 smbd 进程外,没有显示任何其他活动。
任何帮助,将不胜感激。
tcpdump 输出(服务器端)
# tcpdump|grep neal-pc
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
08:45:43.945262 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 4145385672:4145385880, ack 188947689, win 502, length 208
08:45:44.190147 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 208, win 53124, length 0
08:46:10.622737 IP neal-pc > rexialo.com: ICMP echo request, id 1, seq 216, length 40
08:46:10.622787 IP rexialo.com > neal-pc: ICMP echo reply, id 1, seq 216, length 40
08:46:27.901123 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 208:640, ack 1, win 502, length 432
08:46:28.144050 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 640, win 53016, length 0
08:46:29.528999 IP neal-pc.60497 > rexialo.com.http: Flags [S], seq 434975840, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
08:46:29.529058 IP rexialo.com.http > neal-pc.60497: Flags [S.], seq 1268998490, ack 434975841, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
08:46:29.574194 IP neal-pc.60497 > rexialo.com.http: Flags [.], ack 1, win 16425, length 0
08:46:29.581169 IP neal-pc.60497 > rexialo.com.http: Flags [P.], seq 1:133, ack 1, win 16425, length 132
08:46:29.581225 IP rexialo.com.http > neal-pc.60497: Flags [.], ack 133, win 245, length 0
08:46:29.907133 IP rexialo.com.ssh > neal-pc.60224: Flags [P.], seq 640:1488, ack 1, win 502, length 848
08:46:30.152728 IP neal-pc.60224 > rexialo.com.ssh: Flags [.], ack 1488, win 53248, length 0
08:46:31.077482 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 1:1461, ack 133, win 245, length 1460
08:46:31.077508 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 1461:2921, ack 133, win 245, length 1460
08:46:31.077520 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 2921:4381, ack 133, win 245, length 1460
08:46:31.077530 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 4381:5841, ack 133, win 245, length 1460
08:46:31.077541 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 5841:7301, ack 133, win 245, length 1460
08:46:31.077552 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 7301:8761, ack 133, win 245, length 1460
08:46:31.077572 IP rexialo.com.http > neal-pc.60497: Flags [.], seq 8761:10221, ack 133, win 245, length 1460
答案1
您应该在 Samba 和 Windows 机器中配置相同的工作组。
如果有“工作组 = WORKGROUP”
那么您也应该在 Windows 机器上将其更改为 WORKGROUP。
仔细检查 Windows 机器上的防火墙和其他设置,在 samba 服务器端运行 tcpdump 以验证流量是否确实进入您的服务器。
答案2
我不确定这里到底发生了什么,但话又说回来,信息量确实不大。我不确定您的网络捕获是否正确,因为没有任何协议解析。所以我在这里只是随口说说。以下是一些断言(阅读猜测)
由于系统提示您输入用户名/密码,因此基本连接正常。因为已经进行了名称解析(如果需要)或者您提供了要挂载的 IP。此外,如果我没记错的话,Windows 首先尝试了登录凭据
这意味着我们可能已经通过了 SMB 连接的协议协商阶段,但会话设置或树连接阶段失败了。
我也不确定您是否根据您的描述正确定义了您的用户。这里有几个适当添加用户的解决方案(也许 - 除非我生疏了)
smbpasswd -a <username>
(如果你想的话,你可以使用 root 权限)它会要求输入密码才能进入- 当您通过 Windows 登录时,请指定您的 samba netbios 名称\用户名以及
NETBIOS\username
您定义的密码
顺便问一下,“.”在 netBIOS 中是合法字符吗?也许可以将您的 NB 名称更改为 REXIALOCOM?
或者将访客映射到已知帐户...例如将所有人映射到 root 您可以这样做
map to guest = Bad User
guest account = root
这意味着当 samba 无法识别你的用户时——将其映射到 root(除非你知道自己在做什么,否则不要为测试以外的任何事情执行此操作)
然后我认为您需要在您的共享部分中有一个客人......