背景

背景

背景

大家好,我正在使用旧机器等以 0 美元的预算开展一项动物福利计划,所以如果你能提供帮助,你会得到狗狗们的热情亲吻以表感谢(我们的组织叫做“狗友好协会”)...我们是非常草根的,并且正在建立一个网站并运行,所以我正在尝试建立我们的内部网络以用于各种目的,包括协作、开发和其他实验...这既是为了动物福利团体,也是为了相关的商业项目,希望这些项目能够产生支持该团体的愿景和活动所需的资金...所以任何帮助都将不胜感激。

我想要做的是首先让 samba 在有密码和无密码的 Windows 工作组中工作...然后让它在域中工作,一旦一些虚拟机(Windows 服务器 - 在两台 Linux 机器上运行)启动并运行。

问题

  • Win7 机器可以在工作组中看到 Ubuntu 机器并访问其共享(用户通过 samba 进行身份验证)
  • 其他 Win7 计算机可以看到第一个(反之亦然),并且它们都可以访问彼此的共享
  • 然而,Ubuntu 机器可以在 WORKGROUP 中看到自己,可以在 WORKGROUP 中看到第二台 win7 机器
  • 但是 ubuntu 无法看到第一台 win7 机器,它被设置为共享给谁

环境目标

  • 不知道这是否相关,但如果有帮助的话
  • 2 台 win7 笔记本电脑(如果可能的话,保留在简单的 windows 工作组/家庭组中)
  • 1 台旧电脑将成为裸机 Ubuntu 打印机和(可能的)扫描仪服务器
  • 另外 2 台计算机设置为 ubuntu 服务器,托管 Windows 服务器机器的虚拟机(使用 VMWare Player)和 samba 文件共享(一些文件共享用于 Windows 工作组,而其他共享用于 Linux 开发/实验、MS SQL 服务器和尚未设置域中的 Sharepoint 服务器)
  • 因此,一个 ubuntu 服务器将托管一个 win 服务器 Active Directory 域服务/域控制器虚拟机,另一个将托管一个 win 服务器 SQL 和 Sharepoint 服务器虚拟机
  • 底层 ubuntu 服务器需要为工作组提供一些逻辑卷共享,并为 SQL 服务器提供 Sharepoint 数据库使用其他逻辑卷共享

请注意

  • 我并不是在寻求有关 Windows Server 方面的帮助,我在其他地方得到了这方面的帮助...只是想让 Ubuntu 做好准备,并想抢先回答任何关于我为什么这样做的问题,因此建议另一种方式,只是认为这些背景信息可以帮助你理解我的最终目标,也许有助于更好地回答这个问题——谢谢 :-)
  • 我正在使用由房东支持的子网,因为我们还负担不起自己的互联网连接预算……所以我还不能进行端口转发等……这一切都只是为了在我们有预算时做好准备,从而实现我们的最终目标

以下是目前的情况(在 3 台 Linux 机器中的第一台上):

Ubuntu 设置

  • 我设置了 Ubuntu 13.04 服务器 x64
  • 执行了 sudo apt-get update & upgrade
  • 安装了 ubuntu-desktop(因为我是命令行管理的新手)
  • 安装了所需的软件包:samba 和 system-config-samba(UI)
  • 为 Samba 共享创建卷组和逻辑卷
  • 将其挂载到 /shares/share-u64(这样名称可以帮助我识别它与其他可能的共享)
  • 修改 fstab 以自动挂载该共享位置(成功)
  • 修改 /etc/NetworkManager/NetworkManager.conf > managed=true
  • 修改 /etc/network/interfaces > 注释掉:auto eth0 & iface eth0 inet dhcp
  • 创建了我自己的具有静态 IP 地址的网络连接,主 DNS 设置为即将创建的 DNS 虚拟机(也用于所述的活动目录/域控制器),辅助 DNS 设置为我们子网的路由器/网络扩展器
  • 已修改 /etc/default/avahi-daemon > AVAHI_DAEMON_DETECT_LOCAL=0

主机文件准备

  • 将上述我想在此服务器上设置的 Windows 服务器虚拟机和另一台 ubuntu 服务器上的虚拟机信息添加到 /etc/hosts 文件中(尽管虚拟机尚未创建),包括每个虚拟机的 FQDN 和别名(以及我打算为每台机器设置的静态 IP 地址) > 格式:IP 地址 计算机名称.域名 Alias_1 ... Alias_n
  • 还为即将创建的第二台 ubuntu 服务器添加了 IP 地址、FQDN 和别名
  • 我认为提前将这些信息添加到 hosts 文件中(在这些虚拟机和其他 ubuntu 服务器准备好之前)没什么关系,因为如果这些机器尚不存在,它只会忽略它或使对这些机器的任何调用超时
  • 后来在 hosts 文件中添加了 win7 机器的条目(我在 windows 工作组中无法从 ubuntu 看到该机器),行格式为:192.168.1.x 计算机名称(但不包括其 FQDN,因为尚未设置域控制器) - 试图解决无法从工作组中的 ubuntu 看到该机器的问题(此解决方案似乎没有效果)

SAMBA 配置

  • 配置 /etc/samba/smb.conf 文件(通过 GUI 和命令行 - 仔细检查和添加 GUI 不允许的内容),格式如下:

全球的

  • 工作组 =
  • netbios 名称 =
  • 仅限用户共享所有者 = false
  • 服务器字符串 = %h 服务器(Samba,Ubuntu)
  • 赢得支持 = 是
  • 名称解析顺序 = wins lmhosts hosts bcast
  • dns 代理 = 无
  • 安全 = 用户
  • 遵守 pam 限制 = 是
  • 无效用户 = root
  • passwd 程序 = /etc/bin/passwd %u
  • 密码聊天 =输入\snew\sUNIX\s密码:%n\n blah blah blah(我觉得你不需要知道这一行的其余部分)
  • 用户名映射 = /etc/samba/smbusers

共享-u64

  • 路径 = /shares/share-u64
  • 可写 = 是
  • 可浏览 = 是
  • 有效用户 = trevor(并且此用户已设置并映射到 win7 用户名)

我注意到没有 lmhosts 文件存在(我尝试使用 sudolocate 查找它,但它只在手册页中,而没有实际的工作文件),所以我运行了一个我找到的命令行指令(抱歉,不幸的是没有记下来),它显然告诉 nmbd 服务在哪里寻找 lmhosts 文件或在其使用的文件中添加一个新的 lmhosts 文件(?)...然后在该位置创建一个 lmhosts 文件,其条目格式为:-192.168.1.X NETBIOS_NAME

...对于我看不到的机器...然后尝试重新启动 nmbd 服务并重新启动整个机器(和 win7 机器)...但无济于事

尝试过的其他方法

  • 发现一个论坛建议更改 win7 本地安全策略:网络安全:LAN 管理器身份验证级别,并禁用所需的 128 位加密...但这些都不能使我的 win7 机器对 ubuntu 机器可见,而且我怀疑它们并不是让 samba 共享运行的原因,因为我看过很多关于 samba 的教程,从来没有提到过也不需要这个步骤

最后

  • 我也尝试过其他的事情,但忘记了那些事情是什么(抱歉,在我开始这个 ubuntu 和 samba 东西之前,我已经连续几天没睡觉处理硬件问题和 Windows 服务器准备工作了……但无论如何,这就是它的主要内容,还有许多其他我可能忘记提及的事情,希望它们与我所做的 sudo remove & purge 无关
  • 我尝试为此添加“可见性”标签,我认为这会有所帮助...但据说我需要 300 点声誉才能添加新标签...因此,如果有 300+ 点的人阅读了此内容,并且您同意这是一个很好的标签,那么也许可以添加它(其他人可以向我的帖子添加标签吗?)

谢谢

  • 在此先感谢您的帮助 :-)

更新 - Windows 网络设置

受影响的 win7 机器上的 ipconfig(可能相关的行):

Windows IP 配置:

  • 主 DNS 后缀 = 空白
  • 节点类型 = 混合
  • IP 路由已启用 = 否
  • WINS 代理已启用 = 否

LAN 适配器网络连接:

  • DHCP 已启用 = 否
  • 自动配置已启用 = 是
  • DNS 服务器 = 尚不存在的 Windows 服务器的 IP 地址,该服务器将作为 AD DS/域控制器和 DNS;辅助 DNS 设置为 192.168.1.1(路由器)
  • 主 WINS 服务器 = 192.168.1.30(我无法从该 Ubuntu 机器上看到它的地址)
  • 辅助 WINS 服务器 = 尚未创建的 VM 和第二台 Ubuntu 计算机(也尚未创建)的 IP 地址
  • Tcpip 上的 NetBIOS = 已启用

...所以我看不出有什么问题,与其他 win7 机器唯一的区别是:

  • 它只有 1 个 DNS 服务器(路由器)
  • 没有设置 WINS 服务器

gvfsd 网络崩溃

  • 如果有帮助的话,只是想补充一下信息……重新启动并尝试访问 Windows 工作组后,gvfsd 网络崩溃了
  • 在我遵循另一条建议并重新启动两台机器后...当我登录并尝试通过文件查看器 UI 查看 Windows 网络时,同一服务再次崩溃...显然那里出了问题

WINDOWS 家庭组更新

  • 只是出于好奇,将我的 Windows 家庭组留在了那台 Win7 机器上,但无法创建新的家庭组(显示错误消息):“Windows 无法在此计算机上设置家庭组”......这可能与这个问题有关,也可能无关(?)

访问工作组-可见 WIN7 机器错误

  • 当我尝试实际访问第二台 win7 计算机上的公共共享时(我可以从工作组中的 Ubuntu 看到)(通过文件查看器 UI),首先会出现一个消息窗口,内容为:

“正在打开 COMPURER-NAME:您可以通过单击“取消”来停止此操作”

...最终我收到一条错误消息:

“无法访问位置:无法从服务器检索共享列表:连接超时”

  • 所以也许这表明 hosts 文件中的某些内容使 Samba/Ubuntu 感到困惑(对于不存在的主机)... 我将尝试注释掉这些行以查看它在重启后如何响应(并使用另一个点来报告此更新)
  • 结果:在 /etc/hosts 文件中注释掉尚未创建的服务器没有任何作用

WINDOWS 注册表更改 - 由 Samba.org 论坛帖子建议

  • 不幸的是,针对 win7 建议的 Samba.org 注册表更改如下:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\参数]

DWORD DomainCompatibilityMode 1 DWORD DNSNameResolutionRequired 0

...也没有解决问题

nmap 192.168.1.*-没有显示 win7 机器

  • 但是可以 ping 到 win7 机器的 netbios/计算机名称和 IP 地址
  • 可能的结论是 win7 上的网络适配设置存在干扰(虽然这不能解释无法在其他可见的 win7 机器上看到 win7 共享)
  • 再次检查两台 win7 机器的共享设置,看看是否有任何突出的问题,并将从存在可见性的 win7 机器中删除 WINS 服务器设置

删除不存在的主机条目和 Windows 网络故障排除

...然后重新启动,我终于可以在 Windows 网络 > 工作组中从 Ubuntu 看到我的 Win7 机器,尽管仍然不在这两个(在文件查看器 UI 中)“浏览网络”的父区域中(尽管路由器/网关和其他 Win7 机器都出现在这里)。

  • 然而,我仍然无法访问上面的文件……尽管至少离目标更近了一步

答案1

问题解决了

...这让我找到了那个链接,对 /etc/samba/smb.conf 文件进行微小更改(将 bcast 放在第一位)解决了这个问题,并解决了两台 win7 机器的问题,所以我现在不仅可以看到它们两个,还可以浏览它们的共享

学过的知识

  • 所以很明显,我在这里学到的教训是,我不能跳过这一步,实现最终目标的过程需要一些时间,而且我必须确保这些虚拟机确实存在,然后才能在任何地方引用它们

  • 感谢那些试图提供帮助的人

答案2

尝试寻求解决方案,无法从 Windows 7 访问 Ubuntu 的共享文件夹

另外,通过在终端中输入以下内容来确保已安装 SambaFS:

sudo apt-get install smbfs

相关内容