Ubuntu には、デフォルトでポート 53 でリッスンする systemd-resolved があります。独自の DNS サーバーを実行したい場合、ポート 53 が既に使用されているため実行できません。そのため、次のようなエラー メッセージが表示されます。「listen tcp 0.0.0.0:53:bind:address already in use」 /P>
この記事では、systemd-resolved が Ubuntu でポート 53 を使用しないようにする方法について説明します。手順は Ubuntu 20.04 でテストされていますが、他の Ubuntu バージョンでも機能するはずです。 Ubuntu 18.04、近日公開予定の Ubuntu 20.10、および Pop! などの Ubuntu ベースの Linux ディストリビューション。 _OS、Zorin OS、Elementary OS、Linux Mint など。 基本的に、これは systemd バージョン 232 以降のすべてのシステムで機能します。
システムでポート 53 が使用されているかどうかを確認するには:
sudo lsof -i :53
systemd-resolved が標準の Ubuntu 20.04 システムでポート 53 を使用していることを示す出力の例:
$ sudo lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 610 systemd-resolve 12u IPv4 19377 0t0 UDP localhost:domain
systemd-r 610 systemd-resolve 13u IPv4 19378 0t0 TCP localhost:domain (LISTEN)
出力が得られない場合は、ポート 53 が使用されていないことを意味します。
Ubuntu で systemd-resolved がポート 53 を使用しないようにする方法
DNSStubListener
のコメントを外すだけで、ポート 53 を共有できることに注意してください。 no
に設定します /etc/systemd/resolved.conf
で .その他の手順は、DNS サーバーを有効にすることです。DNS サーバーがないと、システムがドメイン名を解決できないため、Web ブラウザーなどで Web サイトにアクセスできません。
1. /etc/systemd/resolved.conf
を編集するには テキストエディタで(ルートとして)開きます。 Nano Console テキスト エディターを使用:
sudo nano /etc/systemd/resolved.conf
コメントを外します (#
を削除します) 前から) DNS=
行と DNSStubListener=
管理。次に、 DNS=
を変更します このファイルの値を、使用する DNS サーバーに指定し (例:ローカル プロキシを使用するには 127.0.0.1、Cloudflare DNS を使用するには 1.1.1.1 など)、DNSStubListener=
も変更します。 yes
の値 no
へ .
これらの変更を行った後のファイルは次のようになります (DNS サーバーとして 1.1.1.1、Cloudflare DNS を使用しています):
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
nano テキスト エディターを使用してファイルを保存するには、Ctrl + x
を押します。 、次に y
と入力します Enter
を押します .
2. /run/systemd/resolve/resolv.conf
のシンボリック リンクを作成する /etc/resolv.conf
で 目標として:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
ここでは、-s
ハードリンクではなくシンボリックリンクを作成するために使用され、 -f
既存のターゲット ファイルを削除するために使用されます (したがって、/etc/resolv.conf
を削除します) 可能な場合)
3. システムを再起動してください。
Ubuntu システムでポート 53 が解放され、「listen tcp 127.0.0.1:53:bind:address already in use」などのエラーが表示されなくなります。
sudo lsof -i :53
を実行すると、ポート 53 が使用されているかどうかを確認できます。 – ポート 53 が使用されていない場合、このコマンドは出力を表示しません。
あなたは好きかもしれません:
- Linux で DNS キャッシュをクリアする方法 (systemd-resolved、BIND、Dnsmasq、または nscd の場合)
- Linux で MAC アドレスを恒久的に変更する方法
変更を元に戻す方法
この記事の指示に従って行った変更を元に戻しますか?これはあなたがしなければならないことです。
1. /etc/systemd/resolved.conf
の編集を開始 テキストエディタで(ルートとして)開きます。 Nano Console テキスト エディターを使用:
sudo nano /etc/systemd/resolved.conf
コメントアウト (#
を追加) 行の前) DNS=
と DNSStubListener=no
次に、ファイルを保存します。 nano テキスト エディターを使用してファイルを保存するには、Ctrl + x
を押します。 、次に y
と入力します Enter
を押します .
2 .その /etc/resolv.conf
を削除します シンボリックリンク:
sudo rm /etc/resolv.conf
3 .システムを再起動してください。