怎样通过 hostname 访问局域网内的机器?

2021-07-26 02:54:12 +08:00
 3rdFaust
路由器应该是能发现 hostname 的, 比如 dhcp 就能发现? 怎么在路由器上配置, 使得路由器下面局域网的机器能够互相通过 hostname 访问?
4142 次点击
所在节点    宽带症候群
14 条回复
IgniteWhite
2021-07-26 03:03:37 +08:00
这个概念叫 mDNS 。和路由器没关系,和客户端是否有能解析 mDNS 的软件有关。

macOS 使用苹果的 Bonjour
Windows 以前也是(用户自己安装)使用苹果的 Bonjour 。Win 10 之后有了原声的 mDNS 服务
Linux 一般用 Avahi
3rdFaust
2021-07-26 04:00:21 +08:00
@IgniteWhite 那是只能在一个广播域里面么? 如果要跨广播域的话, 必须有个中继?
toaruScar
2021-07-26 04:47:20 +08:00
mDNS 不是广播(Broadcast),是多播(multicast),
IgniteWhite
2021-07-26 05:23:55 +08:00
@3rdFaust 我的感觉是需要在同一个 dhcp/固定 ip 的“域”里面?我也说不来那些名词
ladypxy
2021-07-26 07:02:49 +08:00
加入同一个组够就可以用 hostname 访问啊
guanyin8cnq12
2021-07-26 07:08:04 +08:00
临时的解决办法就是在 路由器的 dnsmasq 里把 hostname 对应的 ip 写入 /etc/hosts 里
如,
192.168.1.4 host1
,
同时 dhcp-host 绑定 mac 和 ip
siknet
2021-07-26 08:02:59 +08:00
不用加 hosts 啊,一个局域网内直接访问机器名就行了,//office,这样的
sNullp
2021-07-26 08:04:28 +08:00
Win10 现在已经抛弃了 netBios,楼主你需要 mdns 或者更加可靠的 dnsmasq
kokutou
2021-07-26 08:26:00 +08:00
openwrt 全默认,是可以直接 ping 通的。
darknoll
2021-07-26 10:22:38 +08:00
@sNullp win10 抛弃了 netbios ?我这用的好好的啊
raysonx
2021-07-26 10:32:57 +08:00
如果只有一个子网的,用 mDNS 比较方便,linux 系统需要手动安装 avahi 。缺点是可能某些系统或者应用软件不支持。
跨子网可以用 mdns-repeater 去中继,缺点是不支持 IPv6 ( link-local 地址无法跨子网)和 VPN 等点对点连接。

我个人只在有限的场景下用 mDNS,比如 AirPlay 和 Homekit 。其他场景还是用的传 DNS 。
nbsn
2021-07-26 17:37:46 +08:00
用 ADGuard Home 里面有个 DNS 重写的功能,只要主机的 DNS 指向它就可以。
qanniu
2021-07-27 10:21:19 +08:00
我也一直在找. 树莓派默认可以通过 hostname 被找到,但自己的 ubuntu 主机就不行.一直不明白原因.
tuwulin365
2021-07-27 11:25:35 +08:00
控制面板\所有控制面板项\网络和共享中心\高级共享设置
这里有个“网络发现”,是不是就是 mdns ?这个 win7 就有了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX