关于LMHOSTS.SAM

本文详细介绍了LMHOSTS文件的用途、格式及特殊命令。包括如何启用LMHOSTS文件查询,以及如何通过特定命令实现预加载、指定域控制器等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 LMHOSTS 文件是个纯文本文件,微软提供了一个示例程序 LMHOSTS.SAM,位于 C:/WinNT/System32/Drivers/Etc 目录下(跟以前的示例说明一样,我们这里的路径是“蓝网实验室”所采用的,朋友们可自行参照自己的实际安装情况而灵活改变)。如果我们需要启用 LMHOSTS 文件查询(至于什么时候会用到这种解析方式,我们在下面会讲到),则应该将其改名为 LMHOSTS,当然推荐的方法是制作副本(即另存为 LMHOSTS),这样可免除将原文件失手改错而不得不从安装光盘里解压还原出来的麻烦。下面是“蓝网实验室”NT服务器中 LMHOSTS 文件的部分内容:
#
# 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 文件跟我们在前面已经接触过的 HOSTS 文件的格式一样,当然其规则也一样,比如:
#字符是用来注释的;
IP 地址必须放在一行的第一栏,地址和主机名之间必须有空格;
计算机名称最长为 16 个字符,但是只能输入 15 个(为什么?回去看看《关于 WINS(二)》吧^_^)。

但是与 HOSTS 不同的是,LMHOSTS 文件中可以指定执行某种特殊功能的特定的命令。它们也是用 # 标记的,但如果看到有下面的特殊字符串,则表明其为命令字:

#PRE——这个命令放在 IP 地址和名称后面,表示当系统启动时,先将这个地址预先载入(Preload)到 Cache(内存高速缓存)中。查询时,系统先从 Cache 中开始,如果失败,再利用广播,再失败,才到本 LMHOSTS 文件中顺序读取。

#DOM:domain_name——这个命令放在计算机 NetBIOS 名字之后,表明它是一个域控制器(Domain Controller),这里 domani_name 是域名,表明该控制器属于哪一个域。

#INCLUDE <Filename>——这个命令表明将 filename 所指向的另一个 LMHOSTS 文件加入到本文件中,系统从该文件中读取 IP 地址和 NetBIOS 名字。Heatch 记得当年应付等级考试啃 C 时就遇到过相同的格式,当然在两年前风行一时的 config.sys 多重启动配置时也有相似的例子[Include],即使现在我们用 DreamWaver 做网页不是也还是有 Server-Side Include 吗,说这么多只是想证明它的好处——集中管理 LMHOSTS 文件,即可以将所有用户共享的 LMHOSTS 文件放到服务器上,每个用户再利用 #INCLUDE 命令把它添加到自己的 LMHOSTS 文件中。

#BEGIN_ALTERNATE 和 #END_ALTERNATE 命令必须配套使用,它们的作用是可以在一个 LMHOSTS 文件中指定多个 #INCLUDE 命令,即是说,如果我们有两个以上的域控制器,那么我们就可以 INCLUDE 其上的的 LMHOSTS 文件,一旦某个控制器“牺牲”,可立即用别的域控制器来替代。

/0xnn——这里的 /0xnn 命令是用来在 LMHOSTS 文件中指定包含非打印字符(Non-Printable)的 NetBIOS 名字,它们必须用引号括起来。正如前面的《关于 WINS(二)》所讲,这些非打印字符只用于特殊的设备名称,并且只能放在计算机名称后面第16个字符的位置(我的计算机名称没有15个字符那么长啊——按空格键嘛),如示例中的102.54.94.102 "appname /0x14"

关于 Preload 的特别说明:
1、一个 LMHOSTS 文件中最多只允许 Preload 100 个 IP 地址和计算机名称(我偏要输入 101 个怎么着!——怎么着?多的一个忽略不计!);
2、#INCLUDE 命令所指向的文件中的所有项都必须加上 #PRE 命令(我偏不加又怎么着!——怎么着?忽略不计);
3、修改注册表增加预载数目:主键 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Netbt/Parameters,新建字符串值 MaxPreLoads,输入自己想要的数目。

<think>好的,用户想了解lmhosts文件的用途和配置方法。首先,我得回忆一下之前看过的参考资料。根据引用[4],lmhosts主要用于将NetBIOS名解析为IP地址,类似于DNS的作用,但针对的是NetBIOS名称。这在局域网中没有WINS服务器或多网段的情况下特别有用,如引用[1]提到的,作为HOSTS和DNS的补充。 接下来,用户可能想知道具体如何配置这个文件。引用[4]提到,lmhosts文件的每一行是IP地址和NetBIOS名的对应,中间用空格分隔。比如,192.168.1.100 server01这样的格式。另外,需要注意必须包含Samba服务器自身的记录,否则可能无法正确识别。 然后,配置方法方面,引用[3]和[4]指出,lmhosts通常位于/etc/samba目录下。用户可能需要编辑该文件,添加需要的映射。此外,Samba服务启动时会自动捕捉网络中的NetBIOS名,所以有时候不需要手动配置,但如果网络中有静态IP的主机,手动添加会更可靠。 用户可能还想知道这个文件和hosts文件的区别。hosts用于DNS解析,而lmhosts专用于NetBIOS,尤其在Samba环境中,处理Windows网络共享时更关键。此外,引用[5]提到SMB协议的使用场景,这可能帮助用户理解为何需要NetBIOS解析。 最后,需要提醒用户配置完成后重启Samba服务使更改生效,如systemctl restart smb。另外,检查配置是否正确,可以用smbclient或nmblookup测试NetBIOS解析是否正常。 可能用户的问题还包括如何验证配置是否生效,或者遇到问题时如何排查,比如检查文件权限、语法错误等。这时候需要建议他们查看日志或使用诊断工具。此外,是否所有情况下都需要配置lmhosts,或者是否有替代方案,比如使用WINS服务器,这也是引用[1]提到的内容,用户可能有兴趣了解不同方案的优缺点。</think>### LMHOSTS文件用途及配置方法 #### 1. LMHOSTS文件的核心作用 LMHOSTS文件是用于**局域网内NetBIOS名称与IP地址的静态映射**,类似于DNS的本地解析功能,但专门针对Windows网络环境中的NetBIOS协议。其主要用途包括: - **补充DNS解析**:在未部署WINS服务器的局域网中,解决跨网段主机名解析问题[^1]; - **支持Samba服务**:帮助Linux系统的Samba服务器识别Windows主机的NetBIOS名称[^4]; - **提高可靠性**:在网络服务不稳定时提供静态解析保障。 #### 2. 文件位置与格式 - **路径**:在Linux系统中通常位于`/etc/samba/lmhosts` - **语法规则**: ```plaintext # 注释行以#开头 192.168.1.100 server01 # 主机IP + NetBIOS名称 192.168.1.101 printer01 PRE # 支持特殊参数 ``` - 每行包含IP地址、NetBIOS名称(最多15字符) - 可选参数如`PRE`表示预加载到名称缓存 #### 3. 配置步骤(以CentOS/Samba为例) 1. **编辑配置文件**: ```bash sudo vim /etc/samba/lmhosts ``` 2. **添加映射记录**: ```plaintext 192.168.1.200 fileserver 192.168.1.5 win-pc ``` 3. **配置Samba主文件**: 在`smb.conf`的`[global]`段添加: ```ini name resolve order = lmhosts host wins bcast ``` 4. **重启服务生效**: ```bash sudo systemctl restart smb nmb ``` #### 4. 验证配置 - 使用`nmblookup`测试解析: ```bash nmblookup -U 192.168.1.200 fileserver ``` - 检查Samba日志: ```bash tail -f /var/log/samba/log.smbd ``` #### 5. 注意事项 - **自动更新机制**:Samba服务启动时会自动扫描网络并更新部分记录 - **优先级顺序**:名称解析顺序由`smb.conf`中的`name resolve order`参数控制 - **兼容性问题**:Windows系统对应的文件为`%SystemRoot%\System32\drivers\etc\lmhosts`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值