最近,由于桌面冻结,我不得不强制关闭我的 kali Linux 笔记本电脑。现在,每次重新启动后,浏览器和apt-get
和等工具的 DNS 解析都会被破坏ping
,尽管此类工具dig
仍可用于手动解析。每次重新启动后我都会像这样修复它:
首先,我验证大多数符号链接是否按预期存在:
$ ls -altrh /etc/resolv.conf
lrwxrwxrwx 1 root root 31 Apr 17 23:40 /etc/resolv.conf -> /etc/resolvconf/run/resolv.conf
$ ls -altrh /etc/resolvconf/run
lrwxrwxrwx 1 root root 15 Apr 17 23:40 /etc/resolvconf/run -> /run/resolvconf
然后我验证之前的配置仍然可用:
$ cat /etc/resolvconf/resolv.conf.d/base
# Generated by NetworkManager
nameserver 8.8.8.8
然后我必须创建一个丢失的目录,上述符号链接之一试图指向该目录:
$ sudo mkdir /run/resolvconf/
最后,我必须resolv.conf
在我创建的目录中创建丢失的文件,并使用我之前检查的文件中保留的名称服务器信息填充该文件:
$ sudo touch /run/resolvconf/resolv.conf
$ sudo cp /etc/resolvconf/resolv.conf.d/base /run/resolvconf/resolv.conf
现在 DNS 解析适用于所有程序。
问题:在我编写启动脚本来自动执行此解决方法之前,有谁知道我如何才能不再需要这样做?我不明白为什么会发生这种情况。谢谢。
系统信息:
$ cat /etc/debian_version
Kali Linux Rolling
$ uname -a
Linux foobar 4.9.0-kali3-amd64 #1 SMP Debian 4.9.18-1kali1 (2017-04-04) x86_64 GNU/Linux
答案1
我的 Kali 安装也有同样的问题,最初我以为是我安装的 VPN 软件的问题,但经过一番研究后发现似乎是 Kali 的问题。
对于我一直使用的问题,一个更简单的解决方案是:sudo apt-get purge resolvconf
然后直接运行之后sudo apt-get install resolvconf
不幸的是,到目前为止我必须在每次启动时执行此操作,但我和您有同样的想法,即制作一个启动脚本来自动清除并重新安装 resolvconf 文件。使用这两个命令比手动重新创建丢失的目录要容易一些,并且可能使编写启动脚本变得更容易。
答案2
我解决了手动启用和启动 resolvconf
sudo systemctl enable resolvconf
sudo systemctl start resolvconf
现在,名称解析在启动后即可工作。也许 Kali 禁用了 resolvconf 作为服务......
答案3
我刚刚在我的根文件夹中制作了一个简单的 bash 脚本...
touch netresolv.sh
vim netresolv.sh
//替换最喜欢的编辑器vim
代码:
#!/bin/bash
echo "nameserver 8.8.8.8" > /etc/resolv.conf && echo "nameserver 1.1.1.1" >> /etc/resolv.conf && service
NetworkManager restart && exit
//保存并退出文本编辑器
chmod +x netresolv.conf
现在我只是在每次登录后手动执行它,因为我正在研究如何以及在哪里添加脚本以在每次登录后重新启动后自动运行...
谁能告诉我如何完成这个脚本的其余部分?我不希望它在登录之前运行,因为这会在 root 登录之前连接网络,从而使其容易受到攻击,或者会吗?我是否将其添加为cron
工作?或作为systemd
服务?或添加到~/.profile
?