最近、デスクトップがフリーズしたため、Kali Linux ラップトップの電源を強制的にオフにしなければなりませんでした。今では、再起動するたびに、 や などのツールやブラウザーの DNS 解決が壊れてしまいますapt-get
が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
次に、前述のシンボリックリンクの 1 つが指そうとしている、不足しているディレクトリを作成する必要があります。
$ 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 つのコマンドを使用すると、不足しているディレクトリを手動で再作成するよりも少し簡単であり、起動スクリプトの作成が簡単になる可能性もあります。
答え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 がログインする前に Web に接続して脆弱になってしまうからです。それとも、そうなるのでしょうか? ジョブとして追加しますかcron
? それともサービスとして追加しますかsystemd
? それとも、~/.profile
?に追加しますか?