(LXC) Automatisches Updaten der DNS Server nach einem Reboot / Automatic DNS update after reboot

  1. Skript erstellen

Erstelle ein neues Skript mit dem Namen change_dns.sh.

#!/bin/bash

# DNS-Server in /etc/resolv.conf ändern
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
  1. Skript ausführbar machen

Gib dem Skript Ausführungsberechtigungen:

chmod +x change_dns.sh

  1. Skript automatisch nach dem Neustart ausführen
    Methode 1: Crontab

Füge das Skript zur Crontab des Root-Benutzers hinzu, damit es nach jedem Neustart ausgeführt wird.

Öffne die Crontab für den Root-Benutzer:

sudo crontab -e

Füge die folgende Zeile hinzu:

@reboot /pfad/zu/deinem/change_dns.sh

Ersetze /pfad/zu/deinem/change_dns.sh durch den tatsächlichen Pfad zu deinem Skript.
Methode 2: Systemd-Dienst

Erstelle eine neue Systemd-Diensteinheit für dein Skript.

Erstelle eine neue Dienstdatei:

sudo nano /etc/systemd/system/change_dns.service

Füge den folgenden Inhalt ein:

[Unit]
Description=Change DNS on Startup

[Service]
ExecStart=/pfad/zu/deinem/change_dns.sh

[Install]
WantedBy=multi-user.target

Ersetze /pfad/zu/deinem/change_dns.sh durch den tatsächlichen Pfad zu deinem Skript.

Lade die Systemd-Dienste neu, aktiviere und starte den neuen Dienst:

sudo systemctl daemon-reload
sudo systemctl enable change_dns.service
sudo systemctl start change_dns.service

Zusammenfassung

Du hast jetzt ein Skript erstellt, das die DNS-Server in der /etc/resolv.conf Datei auf 1.1.1.1 und 8.8.8.8 setzt und dafür gesorgt, dass es nach jedem Neustart ausgeführt wird. Wähle entweder die Crontab-Methode oder die Systemd-Dienst-Methode, je nachdem, welche dir besser gefällt oder für dein System besser geeignet ist.

  1. Creating Script

Create a new script named change_dns.sh.

#!/bin/bash

# Modify DNS server in /etc/resolv.conf
echo -e "nameserver 1.1.1.1\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
  1. Granting Execution Permissions to the Script

Grant execution permissions to the script:

chmod +x change_dns.sh

  1. Automatically Executing the Script after Reboot
    Method 1: Crontab

Add the script to the root user’s crontab to execute it after every reboot.

Open the crontab for the root user:

sudo crontab -e

Add the following line:

@reboot /path/to/your/change_dns.sh

Replace /path/to/your/change_dns.sh with the actual path to your script.
Method 2: Systemd Service

Create a new systemd service unit for your script.

Create a new service file:

sudo nano /etc/systemd/system/change_dns.service

Insert the following content:

[Unit]
Description=Change DNS on Startup

[Service]
ExecStart=/path/to/your/change_dns.sh

[Install]
WantedBy=multi-user.target

Replace /path/to/your/change_dns.sh with the actual path to your script.

Reload systemd services, enable, and start the new service:

sudo systemctl daemon-reload
sudo systemctl enable change_dns.service
sudo systemctl start change_dns.service

Summary

You have now created a script that sets the DNS servers in the /etc/resolv.conf file to 1.1.1.1 and 8.8.8.8, and ensured that it is executed after every reboot. Choose either the Crontab method or the Systemd service method, depending on your preference or what is more suitable for your system.

Hallo,

Das ist wirklich hilfreich, danke für das Teilen. Ich habe versucht, die Crontab-Methode zu verwenden, und sie funktioniert perfekt.