Samba常见故障排除

  1 SMB 服务器上的操作

  1).使用下面的命令来查看是否有错误的配置。/usr/bin/testparm /etc/smb.conf

  2). 在服务器上以及客户机上用ping 命令检查tcp/ip 是否正常工作。

  3). 在SMB 服务器上用/usr/bin/smbclient -L SMBserver命令将得到一个共享的列表。

  如果出现失败信息,则要检查与服务器相关的"hosts allow"、"hosts deny"、"valid users"、"invlid users"等参数的设置。如果出现"connection refused",则检查Samba 服务器进程是否启动;若Samba 以守护进程形式运行的话用"netstat -a"命令检查端口是否处于监听状态。

  4). 运行了命令"/usr/bin/nmblookup SMBserver",将返回SMB 服务器的IP 地址。否则nmbd 没有正确的运行。

  5). 运行"/usr/bin/nmblookup -d 2 '*' "命令,在子网中运行NetBIOS/TCPIP 的主机将会响应。否则说明nmblookup 不能正确的得到广播地址,可以尝试在smb.conf 文件中用interfaces 参数人工设置IP 地址、广播地址和子网掩码。

  6). 运行"/usr/bin/smbclient \\SMBserver\homes"命令,需要输入客户在SMB 服务器上的用户口令,然后会出现类似"smb>"的提示符。这时可以使用dir 命令浏览客户在SMB 服务器帐户目录下的文件,用help 命令可以得到其他命令的帮助。如果不能出现类似"smb>"的提示符,并且有"invalidnetwork name"的错误信息,则有可能homes 共享没有正确的设置;或者有"Bad password",则要检
查"shadow password"、"password encryption"以及参数"valid users"和"path"的设置。

  2、SMB 客户机上的操作

  1). 运行"net view \\SMBserver"命令,应该能够列出SMB 服务器上的共享。

  如果出现类似"network name not found"的错误,则要检查客户机上DNS 或WINS 的设置。如果出现"Invalid network name"或"bad password error"的错误,则参照与上面"smbclient -L"命令中同样的错误结果的解决方法。要注意客户机将要用客户注册客户机时所用的用户名/口令去与SMB 服务器连接,所以在SMB 服务器上,用户最好有同样的用户名/口令。

  2). 使用"net use x;\\SMBserver\homes"命令,可以把SMB 服务器上客户home 目录映射到客户机"x:"盘,"x:"应该是一个客户机上未用的盘号。这样,共享的目录可以在客户机上以"x:"盘来看待。正常的信息为"command complete successfully"。

  如果要停止使用"x:"盘,可以使用"net use x:/delete"命令。如果不能正常的把客户的home 目录映射到"x:"盘,则要检查SMB 服务器上"hosts allow"等参数的配置。如果客户机上的用户名不能与
服务器上的用户名匹配,尝试使用"username map"选项。

  3). 如果在SMB 服务器上没有使用"encrypted passwords",则在客户机上要在注册表中允许使quot;普通文本"格式的口令。