我一直试图将 Linux 机器连接到远程 Samba 共享,但没有成功。Samba 共享是一个 NAS,映射为可从 Internet 访问,并用作辅助备份机器。
布局已由我的客户决定。
Samba 共享可以工作(因为我已设法从我的 Windows 7 计算机连接到它),但几乎所有的 Linux 机器都无法连接到它。
尝试使用 3 个 Centos 盒子连接 Samba 共享,但无法正常工作;使用 Windows 或 Ubuntu 盒子则可正常工作。我还暂时关闭了 Centos 盒子上的防火墙,但没有任何变化。
这是我得到的输出:
smbclient -U 管理员 \\xxx.xxx.xxx.xxx\hd_bkp 连接到 xxx.xxx.xxx.xxx 超时:445 连接到 xxx.xxx.xxx.xxx 超时:139 连接到 xxx.xxx.xxx.xxx 时出错 (操作已在进行中) 连接到 xxx.xxx.xxx.xxx 失败 (错误 NT_STATUS_ACCESS_DENIED
故障排除:
我已经尝试过针对 IP 使用 nmap -P0。它没有显示端口 139 和 445 处于打开状态。从 Ubuntu 机器运行 nmap 时,端口显示为打开状态。
Centos 盒子可以连接到 Samba 共享 - 但它们无法连接到互联网中的 Samba 共享。
似乎没有任何 Centos 机器能够通过互联网安装 samba 共享,但它们可以从同一网络中的计算机安装 samba 共享(这可能是关键点?)
我也尝试过 tcpdump,但不确定结果是否有意义。192.168.1.150 是尝试连接到 Samba 共享的机器的 ip,共享于 ip xxx.xxx.xxx.xxx
tcpdump -ln -vv host xxx.xxx.xxx.xxx | tee tcpdump.txt
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:12:49.777047 IP (tos 0x0, ttl 64, id 42420, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.60798 > xxx.xxx.xxx.xxx.microsoft-ds: S, cksum 0x1b2e (correct), 2698738746:2698738746(0) win 5840 <mss 1460,sackOK,timestamp 5036430 0,nop,wscale 7>
16:12:52.777591 IP (tos 0x0, ttl 64, id 42421, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.60798 > xxx.xxx.xxx.xxx.microsoft-ds: S, cksum 0x0f76 (correct), 2698738746:2698738746(0) win 5840 <mss 1460,sackOK,timestamp 5039430 0,nop,wscale 7>
16:12:58.776620 IP (tos 0x0, ttl 64, id 42422, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.60798 > xxx.xxx.xxx.xxx.microsoft-ds: S, cksum 0xf805 (correct), 2698738746:2698738746(0) win 5840 <mss 1460,sackOK,timestamp 5045430 0,nop,wscale 7>
16:13:07.246806 IP (tos 0x0, ttl 64, id 31289, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.56120 > xxx.xxx.xxx.xxx.netbios-ssn: S, cksum 0xfd21 (correct), 2724620277:2724620277(0) win 5840 <mss 1460,sackOK,timestamp 5053900 0,nop,wscale 7>
16:13:10.246675 IP (tos 0x0, ttl 64, id 31290, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.56120 > xxx.xxx.xxx.xxx.netbios-ssn: S, cksum 0xf169 (correct), 2724620277:2724620277(0) win 5840 <mss 1460,sackOK,timestamp 5056900 0,nop,wscale 7>
16:13:16.246704 IP (tos 0x0, ttl 64, id 31291, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.150.56120 > xxx.xxx.xxx.xxx.netbios-ssn: S, cksum 0xd9f9 (correct), 2724620277:2724620277(0) win 5840 <mss 1460,sackOK,timestamp 5062900 0,nop,wscale 7>
有什么建议么?
提前致谢,
Andres
答案1
一些托管公司会阻止 SMB 端口进入其网络(因为基于 Windows 的 SMB 非常不安全)。您的主机是否允许这样做(或者您的网络是否允许这样做?)
答案2
您应该尝试从网络外部对您的连接进行端口扫描,看看端口是否真的开放。如果端口开放,则阻塞不是问题。
您的 NAS 是否有日志可以查看,以了解您的 CentOS 主机是否尝试过连接?
您的 CentOS 主机上的日志显示什么?查看是否由于 SAMBA 客户端的版本问题而被拒绝,您可能需要安装新客户端或进行更新。
你能设置你的 NAS 来提供 NFS 共享吗?对于你的设置来说,这将是比使用 Samba 更好的解决方案。