Linux教程

wsl 2 设置静态 DNS 服务地址及 Linux 和 Windows 主机网络互相访问设置

本文主要是介绍wsl 2 设置静态 DNS 服务地址及 Linux 和 Windows 主机网络互相访问设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

来源:https://blog.niekun.net/archives/1801.html

 

在升级到 wsl 2 后发现一些网络问题和之前的 wsl 不一样了,主要是 DNS 解析和 wsl 和 Windows 网络互访问题,这里介绍如何处理。

DNS 解析

wsl 2 使用的 DNS 解析服务器设置在文件:/etc/resolv.conf 内设置,这是一个 link 文件,真正的文件路径是:/run/resolvconf/resolv.conf,这个文件是每次 wsl 启动时自动生成的,内容如下:

# 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.24.144.1

nameserver 后面的就是指定的 DNS 服务器地址。我发现有时候分配的服务器地址是无效的,如:127.0.0.53,使用 ping 来测试发现提示无法解析地址。需要设置一个固定的 DNS 地址,方法如下:

  • 新建文件:/etc/wsl.conf,内容如下:

    [network]
    generateResolvConf = false

以上配置好就不会自动创建 /run/resolvconf/resolv.conf 文件了。

退出 wsl,关机然后重新启动:

exit
wsl --shutdown
wsl

删除 link 文件:/etc/resolv.conf:

rm /etc/resolv.conf

然后新建 /etc/resolv.conf 文件,内容如下,可自定义 nameserver 地址:

nameserver 114.114.114.114

再次退出 wsl,关机然后重新启动:

exit
wsl --shutdown
wsl

查看 /etc/resolv.conf 文件是否是之前自定义的地址:

cat /etc/resolv.conf

测试网络服务:

ping niekun.net

参考链接:https://github.com/microsoft/WSL/issues/5256#issuecomment-666545999

 

这篇关于wsl 2 设置静态 DNS 服务地址及 Linux 和 Windows 主机网络互相访问设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!