网络上的Windows计算机可以按名称访问所有其他计算机,而Linux计算机只能通过IP地址访问其他计算机.
我可以在路由器Web管理界面的DHCP客户端状态列表中看到列出名称及其DHCP分配地址的所有计算机.
为什么Linux机器无法通过名称找到任何其他机器,而Windows在查找Linux机器时没有问题?
> Windows使用NetBIOS名称,这种协议作为广播协议,允许他们在没有任何中央服务器的情况下找到彼此.
>现代发行版中的Linux机器本身使用称为Avahi的协议,该协议也是与服务器无关的广播协议.本地网络机器具有后缀.local,因此您可以使用ping hostname.local从Linux ping到Linux,或使用avahi-discover软件包查看它们. Gnome中的一些应用程序使用avahi列出网络中的计算机(例如,远程桌面查看器)
>在Linux机器上安装SAMBA将为其分配NetBIOS名称(或者,从技术上讲,将使Linux机器在其NetBIOS名称(默认情况下为其主机名)的广播请求中进行广告宣传),并允许Windows机器查找Linux的.
> Gotcha:虽然带有Samba的Linux机器会回复NetBIOS协议请求,但是在Ubuntu这样的发行版中使用默认设置它不会使用NetBIOS作为解析名称的方法,这就是为什么Linux机器无法“看到”彼此或者Windows机器.为此,您需要编辑/etc/nsswitch.conf文件并将wins添加到此行的列表中:
hosts:files mdns4_minimal [NOTFOUND = return] dns wins mdns4
>您可能需要安装winbind(以及,如果没有自动安装,libnss-winbind)包以供上述工作.
>因此,对于可见性问题,您可以在所有Linux计算机上安装Samba(并编辑/etc/nsswitch.conf以启用NetBIOS名称解析),或者在Windows计算机上安装Avahi支持.
>至于文件共享,Samba为Windows提供Linux机器文件共享功能.没有必要为Linux机器编辑/etc/nsswitch.conf以在Nautilus的“网络”部分中查看彼此和Windows的共享文件夹(反之亦然)
我希望这有帮助! :d