两台机器连接到交换机:WLADIMIR(XP Home SP3)和DAGO(Win7 Pro)。
WLADIMIR 通过 DHCP 收到 192.168.33.130,DAGO 收到 192.168.33.156。它们可以通过 IP 地址互相 ping 通。
现在,我想让 NetBIOS 名称也能正常工作。但是,两种方式都显示“未找到主机”。
好的,我可以通过在 WLADIMIR 上发出以下命令来暂时修复此问题:
nbtstat -A 192.168.33.156
REM This fetches DAGO's names and puts them into the cache.
ping dago
REM Successful ping!
nbtstat -c
REM Shows names in the cache. They'll stay for ten minutes.
以下是 WLADIMIR (XP) 的 netstat 输出:
:: netstat -ano | findstr 130:13
TCP 192.168.33.130:139 0.0.0.0:0 ABHÖREN 4
UDP 192.168.33.130:137 *:* 4
UDP 192.168.33.130:138 *:* 4
对于 DAGO (Win7):
TCP 192.168.33.156:139 0.0.0.0:0 ABHÖREN 4
UDP 192.168.33.156:137 *:* 4
UDP 192.168.33.156:138 *:* 4
服务文件摘录:
netbios-ns 137/tcp nbname #NETBIOS Name Service
netbios-ns 137/udp nbname #NETBIOS Name Service
netbios-dgm 138/udp nbdatagram #NETBIOS Datagram Service
netbios-ssn 139/tcp nbsession #NETBIOS Session Service
嗯,137/tcp 未打开。可能的原因是什么?
在我的 LAN 连接的 WINS 选项卡上,选中了 LMHOSTS 框,并且两台机器上的 NetBIOS 设置均设为“标准”。
这是一个2003 年的好文章关于 NetBIOS 名称解析。
问题:
(1) 我猜 NetBIOS 名称被设计为自动工作,无需我干预调用 nbtstat。如何启用此功能?该功能依赖于哪些服务?是否有防火墙干扰?
(2) 反过来就不行了,即 Win7 按名称 ping XP。nbtstat -A 似乎只有在从 XP 发出相同命令后才会成功;如果失败,似乎会传输一个空表。(有点像:除非我看到了你的,否则不会显示我的。)即使传输了实际的表,ping WLADIMIR 仍然不起作用。
谢谢。
答案1
NetBIOS 名称服务 (netbios-ns) 通常使用 UDP 而不是 TCP。我从未见过它使用 TCP。使 NetBIOS 名称解析正常工作的唯一可靠方法是填充每台主机上的 lmhosts 文件或实施 WINS 或 NBNS 服务器。