Linux 系统无法解析主机地址(或未知的名称或服务)

多半是由于没有配置 DNS 服务器导致的

一、配置本地 主机名 <-----> 域名映射

编辑 /etc/hosts 文件,添加 ip 主机名/域名 主机/域名别称
格式为:

# ip地址		  主机名		别称
127.0.0.1	localhost localhost
180.101.49.11	www.baidu.com	baidu

别称配不配都可以,但是 ip、主机名/域名 得有
这样,当你访问公网时,比如百度,首先会从你本地 hosts 文件中查找对应的 ip 地址,然后进行访问,增加了效率,缺点也显而易见,应该不太可能会有人把所有的公网 ip 都配到这吧,不太现实

二、配置 DNS 服务器地址

编辑 /etc/resolv.conf 文件,添加 nameserver dns地址:
格式为:

# 这个是国内移动、电信和联通通用的DNS
nameserver	114.114.114.114

# 这个是 google 公司提供的DNS,全球通用
nameserver	8.8.8.8

这样配置好后,如果你要访问公网某个地址,会首先去你本地 hosts 文件中查找对应的 ip 域名映射,如果没有找到,就会访问该文件中配置的域名服务器中去解析,找到对应的 ip 地址,然后进行访问,只要不是国内防火墙限制访问的网页,其它基本都可以正常访问

### Ubuntu 无法解析主机地址的解决方案 在处理 Ubuntu 系统无法解析主机地址的问题时,通常涉及 DNS 配置错误名称解析服务未正常工作的情况。以下是针对该问题的具体分析和解决方法。 #### 1. 名称解析失败的原因 名称解析失败通常是由于系统未能正确配置 DNS 缺少必要的网络服务支持。例如,在某些情况下,仅能通过 IP 地址访问资源而无法使用主机名,这可能是因为 DNS 设置不完整者 mDNS(多播 DNS)功能不可用[^1]。 #### 2. WSL2 下 Ubuntu 的 DNS 配置修复 如果是在 Windows Subsystem for Linux (WSL2) 上运行 Ubuntu,则可能会遇到默认 DNS 配置失效的问题。可以按照以下步骤来修复: - **删除旧的 `resolv.conf` 文件** 使用命令 `sudo rm /etc/resolv.conf` 来移除现有的 DNS 配置文件。 - **创建新的 DNS 配置文件** 执行以下命令设置 Google Public DNS (`8.8.8.8`) 作为首选服务器: ```bash sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' ``` - **禁用自动生成 `/etc/resolv.conf`** 编辑新建 `/etc/wsl.conf` 文件并添加如下内容以防止 WSL 自动覆盖 DNS 配置: ```bash [network] generateResolvConf = false ``` - **重启 WSL 实例** 完成上述更改后,关闭当前终端窗口并通过 PowerShell 命令 `wsl --shutdown` 重启动态实例后再尝试连接网络[^2]。 #### 3. 永久修改 Ubuntu 的 DNS 配置 对于标准安装而非基于 WSL 的环境,可通过编辑 NetworkManager 其他网络管理工具中的 DNS 参数实现持久化调整;另外也可以直接手动指定静态条目到 `/etc/systemd/resolved.conf` 并启用 systemd-resolved 服务完成类似效果: - 修改 `/etc/systemd/resolved.conf` 添加自定义 nameservers 如下所示: ```ini [Resolve] DNS=8.8.8.8 8.8.4.4 FallbackDNS= Domains=~. Cache=yes DNSSEC=no ``` - 更新 resolvconf 脚本链接至 system-resolve 提供的内容路径上确保一致性: ```bash ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf systemctl restart systemd-resolved.service ``` 此外, 如果发现 nsswitch.conf 文件里存在 mdns4_minimal 记录项则表明启用了零配置网络浏览特性即 Bonjour 技术的一部分用于局域网内的设备查找与通信[^3]. 综上所述,无论是常规桌面版还是嵌入式平台下的 ubuntu 发生此类状况均需重点核查以上提及的各项参数设定情况直至恢复正常运作状态为止. ```python print("已完成 DNS名称解析的相关说明") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很简单_

点个赞在走呗 ~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值