我在虚拟机 (Virtualbox) 上安装了 Ubuntu 12.04。网络适配器使用桥接适配器连接。
我可以通过 IP ping 客户操作系统,但无法通过主机名 ping 它。
我已经安装了 Samba 和 winbind。我还将 /etc/nsswitch.conf 编辑为“wins”。
设置是否需要时间才能生效?我还可以尝试哪些其他方法才能通过主机名 ping Ubuntu 操作系统?
谢谢!
答案1
不确定为什么 Ubuntu 不同,但这适用于 Debian:
使用桥接网络安装 Debian
安装 Samba
一旦安装并运行 Samba,就可以通过主机名 ping 客户机。我使用的是 Windows 7 主机和 Debian 7 LXDE 客户机。
答案2
您需要名称解析。无论是静态(lmhosts、hosts)还是动态(wins、dns)。请参阅我多年前写的这篇简短的古老文章lmhosts 和 hosts 文件快速概览。
您没有提到您正在运行哪个版本的 Windows,但请注意,“家庭组”不是工作组(或域)。而且“家庭组”仅在 Windows 7(我猜是 8)系统之间有效,因此它非常有限,应该避免。
Winbind 允许 Samba 通过外部 PDC 或 AD 进行身份验证,不要将其与 WINS 混淆。要使用 WINS,您需要一个 WINS 服务器 (!)。要使 Samba 充当 WINS 服务器,smb.conf 全局部分需要一个wins support = yes
条目,并且不要使用wins server =
条目(此条目用于指示 Samba 使用另一个 WINS 服务器,而不是自己成为一个 WINS 服务器)。
其他系统需要在 WINS 数据库中注册才能使其有效,可以通过 DHCP 轻松完成,但也可以手动配置。
您可以通过检查以下信息轻松检查您的系统是否在 WINS 数据库中注册:数据表文件。位置可能取决于发行版,但我的位于/var/lib/samba/wins.dat
。
答案3
如果您有任何苹果设备,并且因此在 Windows PC 上安装了 iTunes,那么您就会在 Windows 上安装一个称为 mDNS 响应器的小东西。Ubuntu 也有一个 (Avahi),它是免费的、开源的、lennartful,更重要的是:默认安装。然后,如果您的 Ubuntu 主机名以 结尾,您的 Windows 应该能够解析它.local
,例如ubuntu.local
如果您的主机名为ubuntu
。名称解析使用多播 DNS 进行,它在端口 5353 和组 224.0.0.251 上使用 UDP。
Ubuntu 也应该能够通过这种方式看到你的 Windows(尝试avahi-browse -a
或avahi-discover
)
答案4
我正在研究使用 Avahi 的解决方案,但 Avahi 只能通过网络发现服务。也许还允许 Apple 和 Linux 设备发现 Linux 主机。但 Windows 是一个不同的解决方案。Windows 使用 TCP/IP 上的 NetBios,希望如此,对于 Linux 主机,要将主机名公开给 Windows 主机,我们必须启动 nmbd 和 smbd,我的意思是 samba。在最新的 Arch 发行版中,这很简单:
sudo pacman -S samba
然后
cp /etc/samba/smb.conf.default smb.conf
或者类似的东西
sudo systemctl enable smbd
sudo systemctl start smbd
sudo systemctl enable nmbd
sudo systemctl start nmbd
确保设置您想要的主机名:
hostnamectl set-hostname myhostname
这样就大功告成了。在 Windows 中只需输入
ping myhostname
瞧!