Skip to content

Ubuntu Bionic - IP Adresse ändern

Angeheftet Verschoben Linux
  • Ich habe mich gestern Abend ziemlich darüber aufgeregt, wie man unter Ubuntu 18.04 die Interfaces einstellen muss. Mal von dem Zeitverlust abgesehen. Ich spiele zwar gerne an Headless Servern rum, aber so was sinnloses hatte ich schon lange nicht mehr. 😞

    Hardware

    ROCKPro64

    Software

     rock64@rockpro64:/$ uname -a
     Linux rockpro64 4.17.0-rc6-1019-ayufan-gfafc3e1c913f #1 SMP PREEMPT Tue Jun 12 19:06:59 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Wie man die IP-Adresse unter Linux einstellt werden die meisten von Euch sicherlich sehr gut kennen, da das zum täglichen Geschäft gehört wenn man mit den kleinen Platinen arbeitet.

    Warum man nicht dauerhaft das einfach auf DHCP lässt, denke ich brauche ich hier in dieser Runde nicht erklären.

    Unter Ubuntu 18.04 hat man jetzt was Neues eingeführt. Das Ganze nennt sich Netplan. Netplan findet man unter /etc/netplan Dort liegt ein File eth0.yaml zu der Dateiendung .yaml komme ich später noch zu sprechen.

     rock64@rockpro64:/$ ls -la /etc/netplan
     total 16
     drwxr-xr-x  2 root root 4096 Jun 17 05:39 .
     drwxr-xr-x 86 root root 4096 Jun 16 12:22 ..
     -rw-r--r--  1 root root  333 Jun 16 20:39 eth0.yaml
     -rw-r--r--  1 root root  329 Jun 16 20:38 eth0.yaml_bak
    

    Macht Euch vorher eine Kopie, man weiß ja nie 😉 Der Inhalt der Datei sieht ungefähr so aus, ich hatte vergessen vorher eine Kopie zu machen 🙂

     network: 
     	version: 2 
     	renderer: networkd
     	ethernets:
     		eth0: #object name
     			dhcp4: yes # dhcp v4 enable
     			dhcp6: yes # dhcp v6 enable (if you want)
    

    Die Schnittstelle eth0 zieht sich mittels DHCP die Daten vom DHCP-Server. Alle meine Server haben hier feste IP-Adressen, da der Mainline aktuell sehr stabil läuft, bekommt der jetzt ne feste IP. So weit mein Plan.

    YAML

    Nachdem ich eine Stunde rumgedockert hatte und nichts klappte, habe ich mal vorne angefangen. Was ist YAML? Dazu der WIKI-Link. Gut, eigentlich nicht zu schwer zu verstehen. Aber trotzdem bekam ich andauernd nur Fehlermeldungen. So was in der Art hier.

    Invalid YAML at //etc/netplan/01-netcfg.yaml line 9 column 5: did not find expected key
    

    Wieder suchen, suchen usw. Dann bekommt man raus, das es entscheidend wichtig ist, wie die Einrückung aufgebaut ist. WTF? Der dumme Parser erkennt das als einen Fehler an ob ich jetzt 2 Leerstellen vor dem Eintrag habe, er aber gerne 3 Leerstellen dort hätte!? Geht es noch komplizierter? Das ist in meinen Augen völlig benutzerunfreundlich! Macht Debian das auch? Später nachschauen...

    Also hatte ich vieles ausprobiert, aber nur dieses Beispiel habe ich dann zum Laufen bekommen.

    Beispiel Datei

    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
     network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
          addresses: [192.168.3.206/24]
          gateway4: 192.168.3.1
          nameservers:
            addresses: [192.168.3.1,1.1.1.1]
    

    Diese Datei kann man also ganz gewöhnlich mit einem Texteditor deiner Wahl bearbeiten, danach abspeichern. Dann kommt der YAML Parser zum Einsatz. Dieser checkt das File auf Fehler, was ja auch eigentlich eine gute Sache ist. Der Befehl dafür.

    sudo netplan apply
    

    Dabei sollte man folgendes beachten, das File wird geprüft, wenn erfolgreich werden die Netzwerkeinstellungen sofort aktiviert. Man verliert also eine evt. bestehende SSH-Verbindung sofort. Also Vorsicht, vorher kurz nachdenken 😉

    Ganz ehrlich, braucht man das so? Ich muss mich wohl dran gewöhnen....

    Noch ein Tipp, die Netzwerkmaske ändert man über /24

    Das sieht dann jetzt so aus

     rock64@rockpro64:/$ ip a
     1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
         link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
         inet 127.0.0.1/8 scope host lo
            valid_lft forever preferred_lft forever
         inet6 ::1/128 scope host 
            valid_lft forever preferred_lft forever
     2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
         link/ether e2:15:d9:4c:26:11 brd ff:ff:ff:ff:ff:ff
     3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
         link/ether aa:41:29:23:dc:d1 brd ff:ff:ff:ff:ff:ff
         inet 192.168.3.206/24 brd 192.168.3.255 scope global eth0
            valid_lft forever preferred_lft forever
         inet6 fe80::a841:29ff:fe23:dcd1/64 scope link 
            valid_lft forever preferred_lft forever
     4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
         link/sit 0.0.0.0 brd 0.0.0.0
    

    Was das mit dem dummy0 und sit@NONE auf sich hat muss ich mir mal in einer ruhigen Stunde ansehen.

    Das dummy0 und sit@NONE sind Interfaces die von Kernel-modulen erzeugt werden. Man kann beide Module aber nicht entladen, weil beide Module in den Kernel eingebaut sind!

    rock64@rockpro64v_2_1:~$ sudo modprobe -r sit
    [sudo] password for rock64: 
    modprobe: FATAL: Module sit is builtin.
    rock64@rockpro64v_2_1:~$ sudo modprobe -r dummy
    modprobe: FATAL: Module dummy is builtin.
    

    Das ist nur im Mainline so!

    rock64@rockpro64v_2_1:~$ uname -a
    Linux rockpro64v_2_1 4.18.0-rc8-1060-ayufan-g45828c4db727 #1 SMP PREEMPT Thu Aug 9 19:41:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Im 4.4x

    rock64@rockpro64v2_0:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
        link/ether aa:41:29:23:dc:d1 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.206/24 brd 192.168.3.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::a841:29ff:fe23:dcd1/64 scope link 
           valid_lft forever preferred_lft forever
    
  • Debian Bookworm 12.7 released

    Linux
    1
    0 Stimmen
    1 Beiträge
    138 Aufrufe
    Niemand hat geantwortet
  • Rest-Server v0.13.0 released

    Restic
    2
    0 Stimmen
    2 Beiträge
    333 Aufrufe
    FrankMF
    Download Rest-Server und installieren Im Github Repository den aktuellen Release suchen. Hier am Beispiel der aktuellen Version 0.13.0 (27.07.2024) Datei herunterladen wget https://github.com/restic/rest-server/releases/download/v0.13.0/rest-server_0.13.0_linux_amd64.tar.gz Die Datei entpacken tar -xf rest-server_0.13.0_linux_amd64.tar.gz Ins Verzeichnis wechseln cd rest-server_0.13.0_linux_amd64 Wenn der Rest-Server läuft, dann muss man diesen erst mal stoppen. systemctl stop rest-server Danach kopiert man das File nach bin. Wer mag sichert vorher das alte File. cp rest-server /usr/local/bin Danach kann man den Rest-Server wieder starten. systemctl start rest-server Versionskontrolle root@rest-server:~# rest-server -v rest-server version rest-server 0.13.0 compiled with go1.22.5 on linux/amd64 Die Hilfe vom Rest-Server root@rest-server:~# rest-server -h Run a REST server for use with restic Usage: rest-server [flags] Flags: --append-only enable append only mode --cpu-profile string write CPU profile to file --debug output debug messages -h, --help help for rest-server --htpasswd-file string location of .htpasswd file (default: "<data directory>/.htpasswd)" --listen string listen address (default ":8000") --log filename write HTTP requests in the combined log format to the specified filename (use "-" for logging to stdout) --max-size int the maximum size of the repository in bytes --no-auth disable .htpasswd authentication --no-verify-upload do not verify the integrity of uploaded data. DO NOT enable unless the rest-server runs on a very low-power device --path string data directory (default "/tmp/restic") --private-repos users can only access their private repo --prometheus enable Prometheus metrics --prometheus-no-auth disable auth for Prometheus /metrics endpoint --tls turn on TLS support --tls-cert string TLS certificate path --tls-key string TLS key path -v, --version version for rest-server Systemd Wer noch ein passendes systemd File benötigt. [Unit] Description=Rest Server After=syslog.target After=network.target [Service] Type=simple User=rest-server Group=rest-server ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /mnt/rest-server/<DOMAIN>/fullchain.pem --tls-key /mnt/rest-server/<DOMAIN>/key.pem --path /mnt/rest-server Restart=always RestartSec=5 # Optional security enhancements NoNewPrivileges=yes PrivateTmp=yes ProtectSystem=strict ProtectHome=yes ReadWritePaths=/mnt/rest-server [Install] WantedBy=multi-user.target
  • NodeBB - v3.7.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    110 Aufrufe
    Niemand hat geantwortet
  • Linux Mint Cinnamon 21.3 Virginia

    Linux
    1
    2
    0 Stimmen
    1 Beiträge
    455 Aufrufe
    Niemand hat geantwortet
  • NodeBB - Upgrade v1.19.2

    NodeBB
    2
    1
    0 Stimmen
    2 Beiträge
    177 Aufrufe
    FrankMF
    Es gab da noch ein lästiges Problem -> https://github.com/NodeBB/nodebb-plugin-emoji/issues/52 npm install nodebb-plugin-emoji@3.5.13 Die Version v3.5.13 behebt das Problem.
  • checkmk - Apache2 vs. NGINX

    checkmk
    2
    0 Stimmen
    2 Beiträge
    593 Aufrufe
    FrankMF
    Ich musste am Ende wieder den Apachen installieren, da checkmk zu viele Abhängigkeiten hat. So was wie omd-apache2(?), wurde mir dann als Fehler angezeigt. Die Server waren auf einmal offline usw. Schade, aber letztendlich für den Container auch egal. Oben im Apachen die SSL Sicherheit erhöht. [image: 1632559940229-4ba2853c-d5a3-422d-b787-b9f66256b511-grafik.png]
  • Restic & Rclone & Nextcloud

    Linux
    3
    0 Stimmen
    3 Beiträge
    775 Aufrufe
    FrankMF
    Hier mal eine Ausgabe vom ersten Durchgang root@frank-MS-7C37:~# restic --password-file /root/passwd -r rclone:Nextcloud:HOME_UBUNTU backup --files-from /root/includes.txt repository 99xxxxa0 opened successfully, password is correct created new cache in /root/.cache/restic rclone: 2020/05/08 17:47:57 ERROR : locks: error listing: directory not found rclone: 2020/05/08 17:47:58 ERROR : index: error listing: directory not found rclone: 2020/05/08 17:47:58 ERROR : snapshots: error listing: directory not found Files: 3503 new, 0 changed, 0 unmodified Dirs: 2 new, 0 changed, 0 unmodified Added to the repo: 16.872 GiB processed 3503 files, 21.134 GiB in 1:02:56 snapshot fdxxxxec saved Der erste Durchgang hat also etwa eine Stunde benötigt. Durch die Deduplikation der Daten, ist der Vorgang beim zweiten Durchgang viel schneller weil nur neue oder geänderte Daten gesichert werden. Und außerdem sind alle Daten AES-256 verschlüsselt. Also perfekt zur Ablage in irgendeiner Cloud root@frank-MS-7C37:~# restic --password-file /root/passwd -r rclone:Nextcloud:HOME_UBUNTU backup --files-from /root/includes.txt repository 99xxxxa0 opened successfully, password is correct Files: 57 new, 41 changed, 3449 unmodified Dirs: 0 new, 2 changed, 0 unmodified Added to the repo: 22.941 MiB processed 3547 files, 21.137 GiB in 0:13 snapshot c6xxxxe4 saved Wie ihr seht, hat der zweite Durchgang nur ein paar neue und geänderte Daten gesichert. Der Rest ist ja schon vorhanden. Und das kann man dann auch problemlos täglich, wöchentlich oder was auch immer mal eben schnell durchführen. Eines meiner absoluten Lieblingstool
  • VS Code - entferntes Verzeichnis einbinden

    Linux
    2
    0 Stimmen
    2 Beiträge
    427 Aufrufe
    FrankMF
    Mein kleines Projekt liegt auch noch auf gitlab.com. Man kann prima die beiden Dienste (VSCode & gitlab.com) verknüpfen. Eine Änderung, ein commit und dann git push origin master Und die Änderungen sind oben. Aber, ich stecke da noch ganz am Anfang der Lernkurve