正在起作用的是:
- 互联网
- 配置的静态 IP
- 对局域网内的其他机器进行 ping 操作(IP 和主机名)
我正在尝试解决的问题:
我无法使用主机名从其他客户端 ping/ssh 等 Ubuntu 服务器。IP 工作正常。
我有一个 AVM Fritz Box 路由器,用作 DHCP/DNS 服务器。我的 Windows 10 计算机花了几天时间才通过主机名可用,我以为服务器也会这样,但已经过去一周了,仍然没有任何动静。
路由器在 GUI 中显示主机名。
安装时我选择了 DHCP,我可以使用主机名访问服务器,当我切换到静态 IP 时它停止工作。
/etc/netplan/00-installer-config.yaml:
# This is the network config written by 'subiquity'
network:
renderer: networkd
ethernets:
enp2s0:
dhcp4: false
dhcp6: false
version: 2
bridges:
br0:
interfaces: [enp2s0]
addresses:
- 192.168.1.4/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 192.168.1.1
search:
- fritz.box
dhcp4: no
dhcp6: no
我正在使用 LXD 容器,这就是我需要桥接的原因。但在我添加 br0 之前它就无法工作。
我尝试过的:
- 乱搞systemd-已解决 我按照某个地方的建议禁用了它,但没有用。尝试强制将 192.168.1.1 设置为/etc/resolv.conf,也不起作用。
- 我最近在容器中安装了 PiHole,配置了路由器将所有 DNS 请求重定向到它,据我所知,它运行良好。我尝试通过 PiHole gui 添加手动 DNS 记录,仍然没有结果。尝试手动将服务器 IP 添加到/etc/hosts在 PiHole 容器中......什么都没有。
- 我在虚拟机中安装了另一个 Ubuntu Server 实例,在安装程序中配置了静态 IP,并比较了配置文件(至少是我知道的配置文件)。这就是我
search:
从 netplan yaml 文件中得到该行的地方,不幸的是,没有太多其他信息。
对我的 Windows 10 PC 执行 ping 操作时,该 PC 也配置了静态 IP ( ping pc-hostname
),结果显示192.168.1.2 pc-主机名.fritz.box。
很难获得这方面的信息。配置静态 IP 的方法在不同的版本之间有很大差异,甚至在同一版本的服务器和桌面之间也是如此。从我找到的几篇使用 20.04 netplan 方法的文章和博客文章来看,它们似乎都没有什么不同。
编辑:
IP地址:
fritz.box 192.168.1.1
ubuntuserver 192.168.1.4
Win10 192.168.1.2
PiHole 192.168.1.5
答案1
声誉不足以评论 Sergs 的回答。
使用 Fritzbox 7590 和具有静态 IP 的 ubuntu 服务器,编辑 /etc/systemd/resolved.conf作品:
[Resolve]
MulticastDNS=yes
LLMNR=yes
使用此配置,我可以使用其主机名 ping 机器。在 Fritzbox 的 Web 前端,机器的主机名是正确的,而不是 PC-192-168-178-XX。
答案2
这里有很多事情要做。首先,检查您的 DNS 配置。
$ nslookup
> server 182.168.1.1
Default server: 192.168.1.1
Address: 192.168.1.1#53
> 192.168.1.4
< Here you will probably get an error >
上面的代码示例看起来有点奇怪,但您需要输入 nslookup,然后输入“服务器 192.168.1.1”,然后输入要查询的主机的 IP。在此示例中,我选择了您使用的 IP。错误应该来自未配置 DNS 条目。
要配置您的 DNS,您可能需要做两件事。
- 使用 DHCP,这可能会导致您的路由器将您请求的名称与 LAN 上的 DNS 条目相关联。使用“hostnamectl set-hostname yourname”来设置您想要的主机名。
- 登录您的路由器并为 IP 地址创建一个静态条目。
我希望这能有所帮助!
答案3
好吧,我终于明白了,我必须在/etc/systemd/resolved.conf:
[Resolve]
MulticastDNS=yes
LLMNR=no # You may need to set this as well, not sure
说实话,我不知道什么组合具体来说为了做到这一点,我在后台设置了一个 Powershell 脚本,只要它能够 ping Ubuntu 服务器的主机名,它就会发出哔哔声。我摆弄了一下配置,resolvectl实用程序,更改与此配置中基本相同的设置,仅针对每个接口。在我设置 MulticastDNS 后,脚本几乎立即发出哔哔声。您可能需要执行sudo systemctl 重启 systemd-resolved在它开始工作之前。