从 Ubuntu 22.04 升级到 24.04 后,我从本地网络中的任何机器收到“连接被拒绝”消息。这种情况仅在使用 DDNS 名称时发生,而 IP 可以正常工作。这种情况只发生在 Ubuntu 24.04 笔记本电脑上。我在网上找不到任何解决方案。我的路由器上的端口转发很好。笔记本电脑上没有防火墙。如果我在远程 ssh 服务器上运行 sshd -d,我看不到来自“故障”笔记本电脑的任何连接尝试。我使用以下命令将 ssh.socket 恢复为 sshd.service:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now sshd.service
nslookup asds.dynu.net 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: xxxx.dynu.net
Address: 94.999.99.99
更新:我错误地完成了这个问题,缺少许多细节。幸运的是,由于以下答案,我找到了正确的方向:我以为我的 DDNS 的 nslookup 输出是正确的,但事实并非如此。所以这不是 SSH 问题,我现在将研究与 DDNS 相关的问题。
与其他机器的连接总是使用 IP 地址,而不是主机名。如果您提供主机名,则必须将其转换为 IP 地址才能使用。
如果使用 IP 地址有效而使用主机名失败,则主机名将映射到不同的 IP 地址。(假设您没有收到主机未找到信息...)
nslookup 是否收到错误并不重要,重要的是它得到的答案!还请注意,nslookup 命令使用与其他命令不同的(更直接的)源来查找主机名,因此
host
它可能得到不同的答案。如果您从 nslookup 和主机获得不同的答案,则可能是主机正在从本地系统中提取缓存答案。(nslookup 也可能提取缓存答案,但缓存层较少。)