lmhosts

编辑:见识网互动百科 时间:2019-11-24 19:29:42
编辑 锁定
lmhosts是用来进行NETBIOS名静态解析的。将NETBIOS名和IP地址对应起来,功能类似于DNS,只不过DNS是将域名/主机名和IP对应。 LMHOSTS 文件是个纯文本文件,微软提供了一个示例程序 LMHOSTS.SAM,位于 C:\WinNT\System32\Drivers\Etc 目录下。
外文名
lmhosts
简    介
进行NETBIOS名静态解析
功    能
类似于DNS
采    用
路径是“蓝网实验室”所采用的

lmhosts示例

编辑
这里的路径是“蓝网实验室”所采用的,
DNS示意 DNS示意
可自行参照实际安装情况而灵活改变。如果我们需要启用 LMHOSTS 文件查询(至于什么时候会用到这种解析方式,我们在下面会讲到),则应该将其改名为 LMHOSTS,当然推荐的方法是制作副本(即另存为LMHOSTS),这样可免除将原文件失手改错而不得不从安装光盘里解压还原出来的麻烦。

lmhosts应用

编辑
安装过 Windows NT 4.0 Server 的网友很清楚,就是如果安装了 TCP/IP 协议,
Windows NT 4.0 Server Windows NT 4.0 Server
则我们依次选取“开始”/“设置”/“控制面板”/“网络”/“协议”/“TCP/IP通信协议”/“属性”/“WINS 属性”,则可以在当前页框里看见,系统默认的是“启用 LMHOSTS 查询”,同时还可以启用的是“启用 DNS ”。按照我们前面讲到的,如果想要使用保存在其他目录中甚或其他计算机中的 LMHOSTS 文件,则可以单击旁边的“导入 LMHOSTS”按钮来获取。

lmhosts工作进程

编辑
由我们前面的《关于 WINS 》及《关于 NetBIOS》等专辑大家已经知道,LMHOSTS 文件的应用场合是没有 WINS 服务器的网络环境,引入 LMHOSTS 文件的目的是用来解决广播方式无法跨越路由器的局限的,LMHOSTS 文件与广播方式相辅相行实现网段内外的全通信。这里我们再来看一下它们的的工作进程:
1、系统启动时将 LMHOSTS 文件中被设为#PRE的地址和机器名预载到内存中;
2、客户端发出查询请求时,先在 Cache 中检查是否已存在目的 IP 地址;
3、找到了自不用说,如果在 Cache 中没有找到,系统改用广播方式再次查找;
4、这次找到了也自不用说,如果广播查询还是没有找到,就得用到 LMHOSTS 文件了;
5、找到啦,好!把它也添加到 Cache 中保存起来(看你下次还往哪跑^_^);还是没有找到?!对不起,俺只得报错了,你就在客户端去等着看错误信息吧。

lmhosts跨域操作

编辑
那么 LMHOSTS 文件的跨域操作又是如何实现的呢?还记得三天前的第一讲吗?我们说到了一个 #DOM:Domain_Name 命令。假定我们这里有两个域:Lanhome01和Lanhome02,其 IP 地址分别为 192.168.0.1 和 192.168.1.10,计算机名分别为 Heatch01 和 Heatch02,现在有一台域 Lanhome01 的工作站 cxy01 想要登录到域 Lanhome02,但我们在网络上没有运行 WINS 服务。如果仅通过广播方式,cxy01无法被 Lanhome02域控制器审核并验证身份。这里只需在 LMHOSTS 文件添加如下一行即可:
192.168.1.10  Heatch02 #PRE #DOM:Lanhome02

lmhosts运行

编辑
LMHOSTS文件最适合网络上没有WINS服务器的环境,因为此时只好使用广播的方式。但是由于大部分的路由器不会将广播信息发送到其他网络,因此利用广播方式可能无法与其他网段内的主机通信美因茨就可以利用LNHOSTS文件来解决问题。
以下说明LMHOSTS文件如何与广播方式互操作(架设网络上没有WINS服务器)
1、如果LMHOSTS文件内有项信息被设为#PE,则计算机启动时,此项信息就会预先被加载到NetBIOS名称缓存内。
2、当计算机要查询其他计算机的IP地址时,它会先检查NetBIOS名称缓存内是否已经存在此计算机的IP地址。
3、如果从NetBIOS名称缓存内找不到对方的IP地址,则改用广播的方式。
4、如果广播的方式也失败的话,则改用LMHOSTS文件查询。
5、如果在LMHOSTS文件内仍然找不到对方的IP地址,则将看到警告信息。
6、若从LMHOSTS文件中找到对方的IP地址,则此信息会被存储在NetBIOS名称缓存中一段时间,以供下次使用。
可以利用nbstat -R命令将NetBIOS名称缓存内的信息清除,此命令同时会重新由LMHOSTS文件内加载内含#PRE的信息。

lmhosts管理

编辑
这里提到的 LMHOSTS 文件的管理实际也是上一讲内容的强化,即跟上面的 #DO
LMHOSTS文件管理 LMHOSTS文件管理
M 命令一样,我们这一节着重的是 #INCLUDE 命令。因为 LMHOSTS 文件是独立存放在每台机器上的,如果整个网络发生了数据变动,则必须为每台机器的 LMHOSTS 文件进行修改,虽然它们都存放于 C:\WinNT\System32\Drivers\Etc目录中很好定位,但动起手来还是很麻烦。如果通过 #INCLUDE 命令就可以一劳永逸。我们这里将它再次拿出来讲,是提醒大家注意其文件路径的表示方法。
以上一讲中的例子再次说明如下:
# The following example illustrates all of these extensions:
# 102.54.94.97  rhino  #PRE #DOM:networking  #net group's DC
# 102.54.94.102 "appname \0x14"  #special app server
# 102.54.94.123  popular  #PRE #source server
# 102.54.94.117  localsrv #PRE #needed for the include
#BEGIN_ALTERNATE
#INCLUDE \\localsrv\public\lmhosts
#INCLUDE \\rhino\public\lmhosts
#END_ALTERNATE
# end of this file.
如果共享的 LMHOSTS 文件位于域名为 Lanhome01 的 Heatch01 的机器中,其路径为 C:\WinNT\System32\Drivers\Etc,现在我们对这个 LMHOSTS 文件已经进行了多处修改,因为同属一个网络,所以我们还要对 Lanhome02 中 Heatch02 机器的 LMHOSTS 文件做相应修改,但我们不希望在今后仍要进行重复的工作,因此,我们可以做如下操作:
1、将 Heatch01 机器的 C:\WinNT\System32\Drivers\Etc 目录共享为 Share;
2、对 Heatch02 机器的 LMHOSTS 文件做如下修改:
192.168.0.1 Heatch01 #PRE #DOM:Lanhome01
#INCLUDE \\Heatch01\Share\LMHOSTS
对于 LMHOSTS 本身的管理来说,就是尽可能的优化其结构,利用系统的搜索,比如减少注释、将常用的IP地址及其计算机名称都通过 #PRE 命令预载到 Cache 中并把它们放在文件的最后(为什么?——因为它们在系统启动时就已经加载到 Cache 中了,如果在广播失败后查询 LMHOSTS 文件又先从它们开始,岂不浪费时间?!)。
如果觉得有必要,可以使用 NBTSTAT -R 命令来清除 Cache 中的数据并重新从 LMHOSTS 文件中 Preload。
词条标签:
计算机学 科技术语 科学 互联网