lionheart 发表于 2022-12-4 10:16

请教个局域网hostname的问题

访问内网机器想直接用机器的缩写,不用输那一大串IP,最开始都是用dnsmasq为缩写手工设置dns解析,后来发现很多系统设置完hostname后,就自动能解析名称了,方便很多

windows系统下得在后面另外加个.才行,比如linux安卓ios用ssh root@pve ,windows就得ssh root@pve.

现在碰到问题是,hostname的自动解析偶尔会失效,配置上也没啥调整,昨天晚上还能用的,今天起来就得用ip了,这个一般会是啥原因,该去哪里修复?

YoumuChan 发表于 2022-12-4 10:58

局域网hostname解析靠的是netbios吧,要是局域网内没有WINS或者netbios服务器的话,下一步应该是netbios udp broadcast。
所以可以看看内网广播和netbios应答有没有问题

宵神乐 发表于 2022-12-4 11:23

路由器上DNS解释

kiritome 发表于 2022-12-4 12:51

LAN 内 hostname 解析分两套体系
一套 NetBIOS 的,Windows 的,Linux 路由器上要装 samba 起 nmb 服务(如果开 Samba 共享要额外起 smb 和 wsdd2 服务)
可解析:hostname
一套 mDNS 的,macOS 带头,Windows 10 以上原生支持,Linux 路由器上要装 avahi 起 avahi-daemon
可解析:hostname.local

ryanz 发表于 2022-12-4 13:05

wireshark抓包,过滤mdns的包,看看解析不到和解析得到时有啥区别

macos 发表于 2022-12-4 14:33

windows的几种类型底层绕不开服务器,对等网络中其实自动枚举了服务器角色来实现,而这种枚举不可靠,大量电脑中可能有多个服务器角色,彼此没互通

—— 来自 HUAWEI KKG-AN00, Android 10上的 S1Next-鹅版 v2.2.2

Archaeopteryx 发表于 2022-12-4 14:40

如果只用SSH访问的话,用SSH自带的alias不就行了?

$HOME/.ssh文件夹下创建config文件,添加

Host pve
HostName 192.168.1.10

lionheart 发表于 2022-12-5 08:50

现在局域网里的在线设备和系统现在主要是:
1、华硕路由,装了merlin,启用过dnsmasq后来关了
2、群晖的ds,
3、proxmox ve主机
4、jellyfin服务,用pve的lxc搭的,打底模板用的是Ubuntu2210
5、arch,pve的虚拟机搭的
6、openwrt,也是搭在pve的lxc里,但差不多一个多月没开机了

主要还是不知道这hostname解析到底是哪个系统的哪个项目提供的功能,也没特意设置过,以前都没有的,后来偶尔试了下突然可以,然后出了问题又没了,感觉就很神奇

lhw369 发表于 2022-12-5 17:34

可以起win的DHCP和DNS,然后DHCP启用自动注册到DNS,就完事了。

—— 来自 HONOR HPB-AN00, Android 12上的 S1Next-鹅版 v2.5.4

ryanz 发表于 2022-12-5 18:02

lionheart 发表于 2022-12-5 08:50
现在局域网里的在线设备和系统现在主要是:
1、华硕路由,装了merlin,启用过dnsmasq后来关了
2、群晖的ds ...

4楼说的很清楚了,这个功能并没有一个主服务器。我只讲我熟悉的linux,linux上是avahi服务向局域网广播mdns的包,然后局域网其他主机收到这个mdns包之后,缓存进自己系统里面,在linux上也是avahi服务,然后就可以解析了,关键是要在一个局域网才能收到其他主机的mdns的包。

5long 发表于 2022-12-5 18:59

如果不知道是哪里实现的, 就没法修复

既然路由器上已经能跑 dnsmasq 了
靠谱的实现是用 dnsmasq 提供 DHCP+DNS 服务
并且最好加上一个顶级域名, 避免顶楼提到的行为不一致性
https://wiki.archlinux.org/title/Dnsmasq#Adding_a_custom_domain
https://thekelleys.org.uk/dnsmasq/docs/FAQ -- 后面这个页面里搜 localnet
页: [1]
查看完整版本: 请教个局域网hostname的问题