我想知道是否有办法通过 Fedora 中的命令行列出本地网络上的所有 smb 服务器(例如查看 Windows 中的网络邻居)。
我正在为一个小型网络服务器场规划我的新共享存储基础设施。因此,我对许多 NAS 文件系统进行了大量测试。通过这样做,我得到了一些意想不到的结果,想知道这里是否有人可以证实这一点。
简而言之:对于小文件写入,Samba 比 NFS 和 GlusterFS 快得多。
这是我所做的:我运行了一个包含大量文件的简单“rsync 基准测试”,以比较小文件的写入性能。为了更容易复制,我刚刚用当前 wordpress tar.gz 的内容重新运行了它。
我绝对不是 samba 大师(我想我最后一次接触的是 samba 2.x),所以我没有在这里优化任何东西——只是开箱即用的配置(debian/squeeze 包)。我添加的唯一一件事是“同步始终 = 是”,它应该在写入后强制执行同步(但看到这些结果......)。没有它,测试会快 1-2 秒。
所有测试都在同一台机器上运行(自安装它的 NAS 导出),因此没有网络延迟 …
昨天我将我的 Fedora box 升级到最新版本,然后我也升级了 samba,现在使用的是 samba 4。我曾经在没有用户/密码的情况下从家里的任何计算机访问这些共享,但现在似乎有问题配置。
这是我的 smb.conf
[global]
workgroup = mygroup
server string = Samba Server Version %v
netbios name = HOME-WS
log file = /var/log/samba/log.%m
max log size = 50
guest ok = yes
security = share
[Media]
path = /mnt/Media
read only = yes
browseable = yes
guest ok = yes
guest only = yes
[Music]
path = /mnt/Music
read only = yes
browseable = yes
guest ok = yes
guest only = yes
Run Code Online (Sandbox Code Playgroud)
查看日志,有一个与安全参数相关的警告
WARNING: …
Run Code Online (Sandbox Code Playgroud) 注意:我已经阅读了大约 50 个不同的页面,这些页面描述了如何在2 年的时间内设置公共 Samba 共享,但没有任何内容对我有用。我不知道设置这些东西需要多少 RTFM。
我需要/想要在我的家庭服务器上为两个工作站设置一个完全开放的公共文件共享。
设置如下:
服务器:
sudo smbd --version
给我Version 3.6.6
。客户:
蒸馏后我的 smb.conf 如下所示(逐字逐句,没有其他内容):
[global]
workgroup = WORKGROUP
security = user
map to guest = Bad User
[disk1]
comment = Disk 1 on 400GB HDD
path = /media/disk1
browsable = yes
guest ok = yes
read only …
Run Code Online (Sandbox Code Playgroud) 我目前正在复制 CentOS 机器的设置,并在尝试安装驻留在 NAS 上的 samba 共享时遇到一个奇怪的错误。我得到的错误是:
mount error 127 = Key has expired
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
设置与旧机相同,密码也绝对正确。我当然已经用谷歌搜索了这个问题,并查看了每个引用这个问题的页面(不是很多),但仍然没有找到答案。
较旧的 CentOS 机器使用的是 Samba 的 3.0.28-0.el4.9 版本,而我现在尝试设置的版本是 3.0.33-3.7.el5_3.1。我不知道这是否与此有关,但这肯定是 2 种设置之间唯一的区别之一。
当我尝试 mount 命令时,这会出现在系统日志中:
Sep 8 10:51:54 helvetica2 kernel: Status code returned 0xc0000072 NT_STATUS_ACCOUNT_DISABLED
Sep 8 10:51:54 helvetica2 kernel: CIFS VFS: Send error in SessSetup = -127
Sep 8 10:51:54 helvetica2 kernel: CIFS VFS: cifs_mount failed w/return code = -127
Run Code Online (Sandbox Code Playgroud)
该帐户没有被禁用,因为它使用相同的凭据在旧机器上工作。
有没有其他人看到过这个问题?
在我设置的配置中,我希望允许 samba 和 apache 访问 /var/www 我能够设置上下文以允许 samba 访问,但是 httpd 没有访问权限。使用 setenforce 到 0 可以消除问题,所以我知道它是 SELinux。
另外:如何查看文件夹的上下文,一个文件夹可以有多个上下文吗?
(CentOS)
当通过 Samba 提供文件名中包含特殊字符(例如“()?:”)的文件时,名称会转换为无法识别的格式。例如,一个文件
my_file:_(important).txt
Run Code Online (Sandbox Code Playgroud)
显示为
M43J1E~0.TXT
Run Code Online (Sandbox Code Playgroud)
有没有办法避免这种行为(显然不重命名文件)?我假设字符编码不是罪魁祸首,因为几个 UTF-8 字符似乎工作正常。
我设置了这样的共享:
[global]
security = user
map to guest = Bad Password
usershare allow guests = yes
[vms]
comment = VirtualBox Virtual Machines
path = /home/neil/VirtualBox/HardDisks
guest ok = yes
read only = yes
Run Code Online (Sandbox Code Playgroud)
当我以自己的身份访问共享并输入我的密码时,它工作正常:
$ smbclient //neil-ubuntu/vms -U neil
Enter neil's password:
Domain=[SHUTTERSTOCK] OS=[Unix] Server=[Samba 3.4.0]
smb: \>
Run Code Online (Sandbox Code Playgroud)
但是当我以访客身份访问它时,它不起作用:
$ smbclient //neil-ubuntu/vms -U guest
Enter guest's password:
Domain=[SHUTTERSTOCK] OS=[Unix] Server=[Samba 3.4.0]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Run Code Online (Sandbox Code Playgroud)
不管我输入什么密码。
有谁知道为什么?
另外,为什么 smbclient 会打印这些无用的错误消息?
我有一个在 Ubuntu 14.04 上运行的 Samba 服务器版本 4.1.11。我无法从 Windows 10 连接(但我可以从 Windows 7 连接)。
服务器和客户端不在同一个 LAN 上。
Windows 给出的错误信息是服务器在线但没有响应。但是,Samba 日志另有说明。
我附上了来自 Windows 10 的失败连接尝试的日志,以及来自 Windows 7 的成功尝试的日志(用于比较)。
简而言之,与成功的尝试不同,失败的尝试开始于:
switch message SMBnegprot (pid 2855) conn 0x0
Run Code Online (Sandbox Code Playgroud)
然后它在选择之前请求许多不同的协议SMB2_FF
。然后,经过一些安全协商后,它切换到协议SMB 2.???
,然后SMB3_00
是:
Server exit (NT_STATUS_END_OF_FILE).
Run Code Online (Sandbox Code Playgroud)
成功尝试SMB2_10
从一开始就选择协议,但 Windows 10 甚至没有请求此协议。
以下是日志:
尝试失败(来自 Windows 10)
http://pastebin.com/M0xmBuY3
成功尝试(来自 Windows 7)
http://pastebin.com/jF8VzaiA
我在评论中添加了我的 smb.conf 文件(不能有超过 2 个具有 <10 声誉的链接)