我收到错误,但看不到发生了什么,请看看您是否能发现问题所在。
每当我使用“host”命令时,我都会收到此错误:
xavi@cobalto:~$ host www.guparty.com
host: parse of /etc/resolv.conf failed
我认为语法是正确的:
xavi@cobalto:~$ cat /etc/resolv.conf
search dsitelecom.com
nameserver 8.8.8.8 8.8.4.4
每个人都可以读取权限:
xavi@cobalto:~$ ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 49 2011-10-30 12:02 /etc/resolv.conf
这可能是一件愚蠢的事情,但我无法理解。看到这里有什么不对吗?
谢谢!
检查你的语法,你需要在
/etc/resolv.conf
中每行定义一个名称服务器
search dsitelecom.com
nameserver 8.8.8.8
nameserver 8.8.4.4
我在错误地*nix EOLs(“ ") 被替换为 windows 的 (" ”)。解决方案:
dos2unix filename
我有类似的问题,但这样做并开始工作:
# mv resolv.conf resolv.conf.old
# cat resolv.conf.old
search example.com
domain example.com
nameserver 11.22.33.44
nameserver 2000::1
# echo "search example.com" >>resolv.conf
# echo "domain example.com" >>resolv.conf
# echo "nameserver 11.22.33.44" >>resolv.conf
# echo "nameserver 2000::1" >>resolv.conf
地址只是示例,但结果是有效的。为什么复制resolv.conf是因为你得到了原始的副本。然后,当您打印出来时,您不必记住 resolv.conf 中的所有内容。当您使用回显创建文件时,您可以确定没有多余的字符带来麻烦。因此,将所有名称服务器行回显到那里。
我在 WSL2 中遇到了这个问题,但我的 resolv.conf 的格式肯定是正确的。我什至对它进行了十六进制转储以验证行结尾是否正确。按照以下方法修复它:
使用 ipconfig.exe 通过 windows powershell 查找名称服务器
使用
sudo nano /etc/wsl.conf
添加:
[network]
generateResolvConf = false
使用
wsl --shutdown
重新启动 wsl(Windows powershell)
打开 WSL 并备份
/etc/resolv.conf
。然后通过 rm -f /etc/resolv.conf
将其删除
添加新文件
sudo nano /etc/resolv.conf
:
nameserver X.X.X.X
使用
wsl --shutdown
重新启动 wsl(Windows powershell)
打开 WSL 并使用
wget google.com
删除并测试一些您的公司域。
改编自https://github.com/microsoft/WSL/issues/1350#issuecomment-1187571290
我发现了问题:
nslookup nslookup: parse of /etc/resolv.conf failed
出现这种情况,是因为该文件的权限是
-rw------- 1 root root 93 Apr 22 20:22 /etc/resolv.conf
我所要做的就是
sudo chmod 644 /etc/resolv.conf
问题就解决了