我正在通过 SMB 将 Linux 机器备份到 NAS。我在本地安装 NAS,然后同步大量数据(100GB 左右)。我相信这需要很长时间才能完成:超过 12 个小时。一旦所有内容都被复制,我预计会快得多,因为几乎每天都没有任何变化。
有没有办法加快这个速度?
我在想,也许 rsync 认为它可以使用本地硬盘并使用校验和而不是时间/大小比较?但我没有找到强制时间和日期比较的方法。还有什么我可以检查的吗?
通过 Internet 访问 samba 服务器的一种好的、安全的(ish)方式是什么?
我的第一个想法是将路由器上的必要端口转发到 samba 服务器,但我不确定这有多安全。
我的第二个想法是以某种方式通过 ssh 隧道。
我想这对我的第二个想法,但似乎并没有工作。
Linux 发行版的“文件和打印机共享”功能主要是 Samba。Samba 是对微软网络文件系统的一种解释。
跨操作系统兼容性当然很重要,但为什么 Linux 系统默认采用这种 Microsoft 技术?
微软的网络文件系统有那么好吗?Samba 显然效果很好,我并没有“贬低”它。
或者,重新表述这个问题,“在网络上共享文件和打印机的 Linux 原生方式是什么?”
我正在运行一个基于 linux 的小型家庭网络服务器,它充当互联网路由器、torrent 客户端和文件服务器。我在将 Windows 客户端连接到服务器 Samba 共享时遇到问题(“用户名或密码无效”)。如何启用 Samba 身份验证/授权过程的所有阶段的日志记录,例如“客户端连接”、“客户端提供的用户名......和密码......”等,以便我可以找出到底是什么错误,因为我确定我提供了正确的用户名和密码?
在正常操作中,当在 Samba 服务器上启用 unix 扩展时,允许服务器遵循共享路径之外的符号链接的选项宽链接会自动禁用。这样做是出于安全目的,以防止 UNIX 客户端创建指向管理员不希望导出的服务器文件系统区域的符号链接。
将 allow insecure wide links 设置为 true 会禁用这两个参数之间的链接,删除此保护并允许站点配置服务器以遵循符号链接(通过将宽链接设置为“true”),即使打开了 unix 扩展。
根据手动设置allow insecure wide links = yes应该足以允许共享路径之外的符号链接但是它对我不起作用,除非我设置unix extensions = no.
testparm 甚至没有显示这个变量?!
# testparm -s
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
[global]
workgroup = test
server string = SambaBox
syslog = 0
log file = /var/log/samba/smb.log
max log …Run Code Online (Sandbox Code Playgroud) 如果这是一个重复的帖子,我很抱歉,看来我的第一次尝试失败了...
首先介绍一下上下文。
首先,我继承了地狱的经典网络之一。在许多其他事情中,我发现大多数客户端数据,包括一堆合规性数据,当前存储在一个 USB 驱动器上,通过 Samba 与其他客户端共享(并且没有备份)。
为了帮助我晚上入睡,我将一个带有两个 raid 5 阵列的 linux 文件服务器放在一起来放置这些数据,并避免重新映射所有客户端计算机,认为卸载 USB 磁盘应该没问题,之后rsyncing 数据到文件服务,nfs 将新的挂载点挂载到它们的位置。
通过一些快速测试,这似乎可以正常工作,但是,今天我发现我的用户在通过这种安排打开文件时遇到了极大的麻烦,文件传输速率非常非常慢。
我没有看到直接 nfs 安装磁盘(从我的 linux 盒子)有任何问题,但是通过 samba 共享它完全无法使用。
我确实在导出和挂载点中使用了默认设置,今晚不会使用我在谷歌上找到的一些选项,但我想我至少明天必须回滚。
我应该能够做到这一点吗?我不明白为什么不,因为我猜这无论如何都会为 NAS 系统做的事情。
有什么建议吗?请?
我正在努力在 CentOS 6.4(64 位)服务器上安装 Windows 2008 共享
当我使用 smbclient 时,它可以工作:
smbclient //esb.local/dfs -U ESBSertal -W ESB -P MyPassword
Run Code Online (Sandbox Code Playgroud)
但使用 mount 则不然。我在命令行上尝试过:
mount.cifs //esb.local/dfs -o username=ESBSertal,password=MyPassword,domain=ESB /mnt/win
Run Code Online (Sandbox Code Playgroud)
并向 /etc/fstab 添加一行
//esb.local/dfs /mnt/win cifs username=ESBSertal,password=MyPassword,domain=ESB 0 0
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都会遇到相同的错误:
mount.cifs //esb.local/dfs -o username=ESBSertal,password=MyPassword,domain=ESB /mnt/win
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
和 fstab
mount -a
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
我很感激你的支持。
只是一个更新:这是作为 root 执行的。既不是 root 也不是 sudo 工作
米查
我在使用 Samba 3 服务器作为域控制器以及许多(但不是全部)Windows 7 Pro PC 继承的网络上遇到问题。这里和这里描述的问题不能解决我的问题。
在启动时,在某些 PC 上,我收到一条错误消息,指出该工作站与域控制器之间的信任关系已失败。我的谷歌搜索解释了从域中删除/重新添加机器,这需要手动干预,有时不起作用。我一直在做的事情,因为这是间歇性的,即使系统当前登录正常,也是从每台 PC 上的提升命令提示符运行以下命令:echo 192.168.0.3 smb > c:\windows\system32\drivers\etc\lmhosts. 然后我重新启动,然后错误就消失了。
奇怪的是,它偶尔会假设我的服务器位于不同的 IP 地址。计算机有时认为 SMB 服务器192.168.0.1不是192.168.0.3. 我可以验证这一点,因为当我这样做时net use \\smb,我会得到一个Network name not found,但我可以 ping 它并获得正确的地址。当我执行 a 时new view \\smb,它会转到旧服务器(现在是 192.168.0.1,但从未有过此名称)。执行 anet view \\192.168.0.3将显示正确的服务器,然后让我一次登录到 Windows,直到重新启动。
我的问题是我需要弄清楚为什么会发生这种情况,所以我不需要触摸每台 PC。一旦一切加载完毕,这是一个快速修复,但并不理想。以下是我testparm在主域控制器上的命令输出:
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section …Run Code Online (Sandbox Code Playgroud) 使用 Kerberos 配置文件...
Run Code Online (Sandbox Code Playgroud)[realms] DOMAIN.COM = { kdc = dc1.domain.com admin_server = dc1.domain.com }
... Linux 可以与 Active Directory 对话以进行密码验证,而不必是 AD 域成员:
Run Code Online (Sandbox Code Playgroud)$ kinit jdoe Password for jdoe@DOMAIN.COM: $ klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: jdoe@DOMAIN.COM Valid starting Expires Service principal 01/12/15 15:36:16 01/13/15 01:36:25 krbtgt/DOMAIN.COM@DOMAIN.COM renew until 01/19/15 15:36:16
此时,您可以使用 PAM 在 /etc/passwd 中定义本地 Linux 用户,但通过 Active Directory 对他们的 TTY 会话进行身份验证。通过 krb5 进行身份验证是作为每个登录上下文完成的:
Run Code Online (Sandbox Code Playgroud)auth sufficient pam_krb5.so use_first_pass
但是,如果 krb5 已经作为 PAM 全局默认值的一部分实现了,为什么 Samba 不也选择它呢?我看到 /etc/pam.d/samba 包含了 Kerberized password-auth 文件,但在访问 …
我在 Debian Jessie 上启动时启动 samba 时遇到问题。我不明白该怎么做,因为似乎samba故意使脚本包装器不起作用。
我尝试发出 aupdate-rc.d samba defaults但它不会修改系统配置以在启动时启动。