Ubuntu má standardně naslouchání na portu 53 vyřešené systémem. Pokud chcete provozovat svůj vlastní server DNS, nemůžete, protože port 53 je již používán, takže se zobrazí chybová zpráva podobná této:„poslouchejte tcp 0.0.0.0:53:bind:adresa je již používána “.
Tento článek vysvětluje, jak zabránit systemd-resolved v používání portu 53 na Ubuntu. Návod byl testován na Ubuntu 20.04, ale měl by fungovat i na jiných verzích Ubuntu, např. Ubuntu 18.04, nadcházející Ubuntu 20.10, stejně jako distribuce Linuxu založené na Ubuntu, jako je Pop! _OS, Zorin OS, Elementary OS, Linux Mint a brzy. V zásadě to funguje na jakémkoli systému se systemd verze 232 nebo novější.
Chcete-li zjistit, zda je ve vašem systému použit port 53, použijte:
sudo lsof -i :53 Příklad s výstupem ukazujícím systemd-resolved používá port 53 na standardním systému Ubuntu 20.04:
$ 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) Pokud nemáte žádný výstup, znamená to, že port 53 není používán.
Jak zastavit systemd-resolved v používání portu 53 na Ubuntu
Stojí za zmínku, že port 53 můžete sdílet pouhým zrušením komentáře DNSStubListener a nastavte jej no v /etc/systemd/resolved.conf . Dalšími kroky je povolení serveru DNS – bez něj váš systém nedokáže rozlišit názvy domén, takže nemůžete navštěvovat webové stránky ve webovém prohlížeči atd.
1. Chcete-li upravit /etc/systemd/resolved.conf otevřít pomocí textového editoru (jako root), např. pomocí textového editoru Nano Console:
sudo nano /etc/systemd/resolved.conf
A zrušte komentář (odstraňte # zepředu) DNS= Řádek a DNSStubListener= Řízení. Dále změňte DNS= Hodnota v tomto souboru pro server DNS, který chcete použít (např. 127.0.0.1 pro použití místního proxy, 1.1.1.1 pro použití Cloudflare DNS atd.) a také změňte DNSStubListener= hodnotu yes na no .
Takto by měl soubor vypadat po provedení těchto změn (jako DNS server používám 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
Chcete-li soubor uložit pomocí textového editoru nano, stiskněte Ctrl + x a poté zadejte y a stiskněte Enter .
2. Vytvořte symbolický odkaz pro /run/systemd/resolve/resolv.conf s /etc/resolv.conf jako cíl:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Zde -s se používá k vytvoření symbolického a nikoli pevného odkazu a -f se používá k odstranění existujících cílových souborů (takže odstraní /etc/resolv.conf je-li k dispozici).
3. Restartujte systém.
Port 53 by nyní měl být na vašem systému Ubuntu volný a již byste neměli dostávat chyby jako „poslouchejte tcp 127.0.0.1:53:bind:adresa se již používá“.
Zda je port 53 používán nebo ne, můžete zkontrolovat spuštěním sudo lsof -i :53 – Pokud není použit port 53, tento příkaz by neměl zobrazovat žádný výstup.
Mohlo by se vám líbit:
- Jak vymazat mezipaměť DNS v systému Linux (pro systemd-resolved, BIND, Dnsmasq nebo nscd)
- Jak trvale změnit adresu MAC v systému Linux
Jak vrátit změny zpět
Chcete vrátit zpět provedené změny podle pokynů v tomto článku? To je to, co musíte udělat.
1. Začněte upravovat /etc/systemd/resolved.conf otevřít pomocí textového editoru (jako root), např. pomocí textového editoru Nano Console:
sudo nano /etc/systemd/resolved.conf
A okomentujte (přidejte # před řádkem) DNS= a DNSStubListener=no pak soubor uložte. Chcete-li soubor uložit pomocí textového editoru nano, stiskněte Ctrl + x a poté zadejte y a stiskněte Enter .
2 . Odstraňte /etc/resolv.conf symbolický odkaz:
sudo rm /etc/resolv.conf 3 . Restartujte systém.