无法解析 WSL 中的主机名

5 windows-subsystem-for-linux

在我在 Windows 子系统 Linux 中执行的几乎所有操作中,我都会收到一条通知“如何解析主机名”。为什么每次全新安装都会发生这种情况以及如何解决?

小智 13

  1. 检查是否存在 resolv.conf 符号链接和文件:
cd /etc
ls -lha
stat resolv.conf
Run Code Online (Sandbox Code Playgroud)

你应该看到一个符号链接指向:

  File: resolv.conf -> ../run/resolvconf/resolv.conf
  Size: 29              Blocks: 0          IO Block: 4096   symbolic link
Run Code Online (Sandbox Code Playgroud)

../run/resolvconf/resolv.conf 中的原始文件将在启动 WSL Ubuntu 时新创建,并具有以下内容:

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:>
# [network]
# generateResolvConf = false
nameserver 172.23.0.1
Run Code Online (Sandbox Code Playgroud)

名称服务器地址可能与您的情况不同

  1. 在根等文件夹中创建一个 wsl.conf 文件(您可能需要 sudo):

sudo nano /etc/wsl.conf

  1. 将以下行粘贴到文件中并退出保存 (Ctrl+X):
[network]
generateResolvConf = false
Run Code Online (Sandbox Code Playgroud)
  1. 删除 resolv.conf 文件的符号链接
cd /etc
sudo rm resolv.conf
Run Code Online (Sandbox Code Playgroud)
  1. 在 /etc 中创建一个新的 resolv.conf 文件
sudo nano resolv.conf
Run Code Online (Sandbox Code Playgroud)

并将以下内容粘贴到其中并使用(Ctrl+O 和 Ctrl+X)保存:

# This file was automatically generated by WSL. To stop automatic generation of this file, 
# add the following entry to /etc/wsl.conf:>
# [network]
# generateResolvConf = false
# nameserver 172.23.0.1
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

  • 这应该标记为答案 (2认同)

小智 7

我不知道为什么会发生这种情况(请通过解释改进答案),这是此问题的有效解决方案:

1.执行:

nano /etc/hostname
Run Code Online (Sandbox Code Playgroud)

用大写字母输入您的计算机名称(类似于 DESKTOP-SOMETHING)。删除除计算机名称之外的任何内容。

保存并退出。

2.然后,执行:

nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)

然后,确保文件的前两行如下所示:

  127.0.0.1 localhost.localdomain localhost
  127.0.1.1 DESKTOP-SOMETHING
Run Code Online (Sandbox Code Playgroud)

保存并退出。


归档时间:

查看次数:

13203 次

最近记录:

5 年,9 月 前