Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| linux:netzwerke [2019/02/26 17:21] – [Nameserver] st | linux:netzwerke [2024/12/26 13:41] (aktuell) – [netplan] st | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Netzwerk unter Linux ====== | ||
| + | Auf dieser Seite geht es um die Netzwerkkonfiguration von Linux-Rechnern, | ||
| + | |||
| + | * [[server: | ||
| + | * [[Networkmanager]] | ||
| + | * [[Ethernet Bonding Konfiguration IEEE 802.3ad (LACP)]] | ||
| + | * [[https:// | ||
| + | * [[software: | ||
| + | |||
| + | ===== Dateien im Netzwerk freigeben ===== | ||
| + | |||
| + | Zur Dateifreigabe/ | ||
| + | - [[netzwerke: | ||
| + | - [[Samba: | ||
| + | - [[wpde> | ||
| + | - [[netzwerke: | ||
| + | |||
| + | |||
| + | Die Option mit [[Security: | ||
| + | |||
| + | |||
| + | ===== Netzwerkkonfiguration ===== | ||
| + | |||
| + | Grundsätzlich erfolgte die Konfiguration über '' | ||
| + | |||
| + | Mit dem Befehl '' | ||
| + | |||
| + | **[[http:// | ||
| + | |||
| + | ==== relevante Befehle ==== | ||
| + | |||
| + | ^ Einstellung ^ Befehl(e) ^ | ||
| + | | **IP-Adresse, | ||
| + | | IP-Adresse hinzufügen | zweite IP: <code bash>ip addr add $IP/ | ||
| + | | IP-Adresse entfernen | <code bash>ip addr del $IP/ | ||
| + | / | ||
| + | done</ | ||
| + | | **ARP-Eintrag hinzufügen** | <code bash>ip neigh add $IP lladdr $MAC nud permanent dev $device</ | ||
| + | | **Netzwerkkarten (de)aktivieren** | <code bash>ip link down $device</ | ||
| + | | **Hostname** | hostname | | ||
| + | | **Standard/ | ||
| + | | **Route hinzufügen** | <code bash>ip route add $IP/ | ||
| + | | **Nameserver, | ||
| + | | **Netzwerkschnittstellen** | Ausgabe: <code bash>ip link</ | ||
| + | | **Netzwerkschnittstellenkonfiguration** | < | ||
| + | | **Bekannte Dienste (Ports**) | Ausgabe: < | ||
| + | | **[[Wlan]]** | ||
| + | |||
| + | __Anmerkung__: | ||
| + | |||
| + | ==== Benennung der Netzwerkschnittstellen ===== | ||
| + | |||
| + | Je nach Reihenfolge in der die Treiber geladen werden, werden die Netzwerkschnittstellen hochnummeriert: | ||
| + | |||
| + | Vlan-Funktionen sind im Namen durch einen Punkt abgetrennt, Aliase durch einen Doppelpunkt. | ||
| + | |||
| + | Diese Namen könnten sich nach größeren kernel-upgrades ändern, deshalb ist möglicherweise ein festes Schema sinnvoller. Beispiel anhand eingebauter MAC-Adressen: | ||
| + | < | ||
| + | # / | ||
| + | [Match] | ||
| + | OriginalName=* | ||
| + | |||
| + | [Link] | ||
| + | NamePolicy=mac | ||
| + | MACAddressPolicy=persistent | ||
| + | </ | ||
| + | |||
| + | Beispiel: Eine konkrete Netzwerkkarte mit MAC-Adresse // | ||
| + | < | ||
| + | [Match] | ||
| + | MACAddress=aa: | ||
| + | [Link] | ||
| + | Name=eth1p1 | ||
| + | </ | ||
| + | === eth0 beibehalten === | ||
| + | |||
| + | Kernel-Boot-Parameter: | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | # debian: | ||
| + | sed -i ' | ||
| + | # ubuntu: | ||
| + | sed -i ' | ||
| + | update-grub | ||
| + | </ | ||
| + | |||
| + | ==== Parsen von Schnittstelleninformationen ===== | ||
| + | |||
| + | Im Debian-Paket [[https:// | ||
| + | < | ||
| + | Usage: ifdata [options] iface | ||
| + | | ||
| + | | ||
| + | -pe Print out yes or no according to existence | ||
| + | -pa Print out the address | ||
| + | -pn Print netmask | ||
| + | -pN Print network address | ||
| + | -pb Print broadcast | ||
| + | -pm Print mtu | ||
| + | -ph Print out the hardware address | ||
| + | -pf Print flags | ||
| + | -si Print all statistics on input | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | -so Print all statistics on output | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | -bips Print # of incoming bytes per second | ||
| + | -bops Print # of outgoing bytes per second | ||
| + | </ | ||
| + | ==== Wlan ==== | ||
| + | |||
| + | siehe Seite zu [[wlan]]. | ||
| + | |||
| + | |||
| + | |||
| + | ===== Einstellungen ===== | ||
| + | |||
| + | ==== DHCP (IP-Adresse dynamisch beziehen) ==== | ||
| + | |||
| + | Konfiguration mit [[netzwerke: | ||
| + | |||
| + | === ifupdown2 / ifupdown2 === | ||
| + | |||
| + | [[netzwerke: | ||
| + | |||
| + | < | ||
| + | allow-hotplug eth0 | ||
| + | iface eth0 inet dhcp | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | allow-hotplug eth0 | ||
| + | iface eth0 inet6 dhcp | ||
| + | </ | ||
| + | |||
| + | Wenn man seine IP mit [[netzwerke: | ||
| + | sudo dhcpd eth0 | ||
| + | oder die Clientversion, | ||
| + | sudo dhclient eth0 | ||
| + | |||
| + | Eine komplette Videovorführung findet sich dazu auch bei [[http:// | ||
| + | |||
| + | Alternativ geht machmal auch: | ||
| + | ifconfig eth0 dhcp start | ||
| + | |||
| + | Status des [[netzwerke: | ||
| + | ifconfig eth0 dhcp status | ||
| + | IP freigeben: | ||
| + | ifconfig eth0 dhcp release | ||
| + | |||
| + | [[debian: | ||
| + | ifconfig eth0 dynamic | ||
| + | |||
| + | oder der Aufruf von '' | ||
| + | |||
| + | === netplan | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | == de-installieren von netplan == | ||
| + | |||
| + | sudo apt install ifupdown2 | ||
| + | sudo apt purge netplan.io | ||
| + | |||
| + | / | ||
| + | |||
| + | GRUB_CMDLINE_LINUX=" | ||
| + | |||
| + | sudo update-grub | ||
| + | |||
| + | Die Datei / | ||
| + | === Networkmanager | ||
| + | |||
| + | Benutzt u.a. bei RedHat / CentOS. | ||
| + | Bei Desktop-PCs werden auch oft grafische Oberflächen (wie der [[Networkmanager]]) benutzt, die dann eigene Konfigurationen haben. | ||
| + | |||
| + | === systemd-networkd | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | ==== Feste IP-Adressen ==== | ||
| + | |||
| + | Konfiguration mit einer festen IP-Adresse (unter [[windows: | ||
| + | |||
| + | === ifupdown2 / ifupdown2 === | ||
| + | |||
| + | Alter Befehl mit ifconfig: | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Im obigen Bespiel wird für die erste Ethernet-Karte eth0 die IP 192.168.0.1 gesetzt, Netzmaske ist bei einem [[http:// | ||
| + | |||
| + | Bei [[netzwerke: | ||
| + | ifup eth0</ | ||
| + | ifconfig eth0 up</ | ||
| + | |||
| + | Mit up werden die Netzwerkkartentreiber geladen, man kann sie auch später mit '' | ||
| + | |||
| + | |||
| + | **Dauerhafte Einstellungen in der Datei ''/ | ||
| + | |||
| + | Beispiel 1: Feste IP (192.168.0.123) aus dem 192.168.0.0-Netz: | ||
| + | < | ||
| + | allow-hotplug eth0 | ||
| + | iface eth1 inet static | ||
| + | address 192.168.0.123 | ||
| + | netmask 255.255.255.0 | ||
| + | network 192.168.0.0 | ||
| + | broadcast 192.168.0.255 | ||
| + | gateway 192.168.0.1 | ||
| + | # dns-* options are implemented by the resolvconf package, if installed | ||
| + | dns-nameservers 192.168.0.1 | ||
| + | dns-search local | ||
| + | </ | ||
| + | |||
| + | Bei [[netzwerke: | ||
| + | |||
| + | < | ||
| + | iface eth0 inet6 static | ||
| + | # Haupt-IPv6-Adresse des Servers | ||
| + | address 2a01: | ||
| + | netmask 64 | ||
| + | gateway fe80::1 | ||
| + | </ | ||
| + | |||
| + | |||
| + | Auf Servern kann auch anstatt '' | ||
| + | |||
| + | === netplan === | ||
| + | |||
| + | Ab [[ubuntu: | ||
| + | Der [[ubuntu: | ||
| + | |||
| + | < | ||
| + | network: | ||
| + | ethernets: | ||
| + | enp0s3: | ||
| + | addresses: [192.168.0.2/ | ||
| + | gateway4: 192.168.0.1 | ||
| + | gateway6: 2a02: | ||
| + | dhcp4: no | ||
| + | dhcp6: no | ||
| + | nameservers: | ||
| + | addresses: [8.8.8.8, " | ||
| + | version: 2 | ||
| + | renderer: networkd | ||
| + | </ | ||
| + | |||
| + | === Networkmanager | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | === systemd-networkd | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ==== zusätzliche feste IP-Adressen auf einer Karte ==== | ||
| + | |||
| + | === ifupdown2 / ifupdown2 === | ||
| + | |||
| + | Zusätzliche IP-Adressen können auf einer Karte durch anhängen von ": | ||
| + | |||
| + | ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up | ||
| + | |||
| + | Bei [[netzwerke: | ||
| + | |||
| + | |||
| + | **Dauerhafte Konfiguration**: | ||
| + | < | ||
| + | # 1. IP | ||
| + | auto eth0 | ||
| + | iface eth0 inet static | ||
| + | address 192.168.0.1 | ||
| + | netmask 255.255.255.0 | ||
| + | network 192.168.0.0 | ||
| + | broadcast 192.168.0.255 | ||
| + | gateway 192.168.0.254 | ||
| + | # dns-* options are implemented by the resolvconf package, if installed | ||
| + | dns-nameservers 192.168.0.2 | ||
| + | dns-nameservers 192.168.0.3 | ||
| + | |||
| + | # 2. IP | ||
| + | auto eth0:1 | ||
| + | iface eth0:1 inet static | ||
| + | address 192.168.1.1 | ||
| + | netmask 255.255.255.0 | ||
| + | network 192.168.1.0 | ||
| + | broadcast 192.168.1.255 | ||
| + | </ | ||
| + | |||
| + | === netplan | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | === Networkmanager | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | === systemd-networkd | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | ==== de-installieren von netplan ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt purge netplan.io</ | ||
| + | |||
| + | / | ||
| + | < | ||
| + | <code bash> | ||
| + | |||
| + | Die Datei ''/ | ||
| + | |||
| + | |||
| + | ==== DNS von systemd (systemd-resolved) ==== | ||
| + | |||
| + | Aktuellen Status anzeigen: '' | ||
| + | |||
| + | === DNS-caching von systemd-resolved deaktivieren === | ||
| + | |||
| + | DNS-Cache löschen (temporär): | ||
| + | Caching-Statistiken: | ||
| + | |||
| + | **Caching permanent deaktiveren**: | ||
| + | < | ||
| + | '' | ||
| + | |||
| + | |||
| + | === manuell DNS-Server für ein Interface setzen === | ||
| + | |||
| + | Beispiel: eth0 mit DNS-Server 192.168.88.22: | ||
| + | |||
| + | '' | ||
| + | |||
| + | === systemd-resolved deaktivieren === | ||
| + | |||
| + | Bei Serversystemen kann die Abstraktion durch systemd nicht gewünscht oder störend wirken. | ||
| + | So kann der systemd-resolved-service deaktiviert werden: | ||
| + | |||
| + | <code bash> | ||
| + | systemctl disable systemd-resolved.service | ||
| + | rm / | ||
| + | </ | ||
| + | |||
| + | Neue / | ||
| + | < | ||
| + | nameserver 8.8.4.4 | ||
| + | nameserver ... | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== nscd ==== | ||
| + | |||
| + | nscd "Name service caching daemon" | ||
| + | |||
| + | Config: / | ||
| + | |||
| + | |||
| + | ==== Standardroute ==== | ||
| + | **Standardroute** vergeben: | ||
| + | |||
| + | <code bash> | ||
| + | Hier als Beispiel ein Router (ins Internet) mit der IP 192.168.0.254 angegeben. | ||
| + | |||
| + | Bei [[netzwerke: | ||
| + | |||
| + | |||
| + | ==== Route für ein Subnetz ==== | ||
| + | |||
| + | In manchen Fällen kennt das Standard-Gateway die passende Route nicht, man möchte diese dort hinterlegen oder gezielt übergehen. | ||
| + | |||
| + | Beispiel: Das Netz 192.168.3.0 (Netzmaske 255.255.255.0) ist hinter dem Router 192.168.2.2 zu erreichen: | ||
| + | <code bash> | ||
| + | |||
| + | Equivalent in ipv6 (Netz 2001: | ||
| + | <code bash>ip -6 route add 2001: | ||
| + | |||
| + | ==== Nameserver / DNS (glibc) ==== | ||
| + | |||
| + | Den **Nameserver** trägt man in der Datei ''/ | ||
| + | < | ||
| + | ein. Hier muss natürlich die richtige IP-Adresse eingetragen werden. | ||
| + | |||
| + | Bei neueren (eher desktop)-Systemen findet sich dort ein Verweis auf 127.0.0.53, was auf das lokal laufende '' | ||
| + | |||
| + | ==== IP für ausgehende Verbindungen ändern ==== | ||
| + | |||
| + | IP für ausgehende Verbindungen ändern (wenn mehrere IPs konfiguriert sind) | ||
| + | |||
| + | Vorher: | ||
| + | |||
| + | ip route | ||
| + | |||
| + | < | ||
| + | 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2 | ||
| + | default via 10.0.0.1 dev eth0 | ||
| + | </ | ||
| + | |||
| + | Default Route erweitern: | ||
| + | |||
| + | ip route change default via 10.0.0.1 dev eth0 src 10.0.0.3 | ||
| + | |||
| + | Nacher: | ||
| + | |||
| + | ip route | ||
| + | |||
| + | < | ||
| + | 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2 | ||
| + | default via 10.0.0.1 dev eth0 src 10.0.0.3 | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Internetverbindungsfreigabe ==== | ||
| + | |||
| + | Für die Freigabe von Internetverbindungen für private Adressen aus einem angeschlossenen Netzwerk. | ||
| + | |||
| + | Als Beispiel wird in der ersten Zeile die Weiterleitung von Paketen aktiviert und in der zweiten mit der [[security: | ||
| + | |||
| + | Jeweils mit root-Rechten ausführen: | ||
| + | |||
| + | * für IPv4:< | ||
| + | echo " | ||
| + | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
| + | </ | ||
| + | * für [[netzwerke: | ||
| + | echo " | ||
| + | ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
| + | </ | ||
| + | |||
| + | Diese Einstellungen lassen sich auch dauerhaft in der Datei ''/ | ||
| + | |||
| + | * IPv4: '' | ||
| + | * [[netzwerke: | ||
| + | |||
| + | Oder die obigen Zeilen in einem Skript unter ''/ | ||
| + | |||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ==== MAC-Adresse ändern ==== | ||
| + | |||
| + | ifconfig eth0 down | ||
| + | ifconfig eth0 hw ether 00: | ||
| + | hier besser eine bekannte (z.B. von einer rumliegenden Netzwerkkarte) und eine sinnvolle MAC-Adresse eingeben, bei Gleichheiten im Netz gibt es Probleme. | ||
| + | |||
| + | :!: Das Programm macchanger (auch mit grafischer Oberfläche verfügbar) hilft ebenfalls bei der Änderung: | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | Unter [[ubuntu: | ||
| + | |||
| + | Bei Atheros-Chipsätzen: | ||
| + | |||
| + | ==== Traffic shaping ==== | ||
| + | |||
| + | Unter " | ||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | |||
| + | * Für einen einzelnen Rechner geht es einfach: Mit **wondershaper** hängt man der Datei ''/ | ||
| + | down / | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | ==== Vlan ==== | ||
| + | |||
| + | Um auf der Netzwerkkarte eth0 die vlans 100 und 101 zu aktivieren reichen diese Befehle: | ||
| + | |||
| + | <code bash> | ||
| + | ip link add link eth0 name eth0.100 type vlan id 100 | ||
| + | ip link set dev eth0.100 up | ||
| + | ip addr add a.b.c.1/24 brd 1.b.c.255 dev eth0.100 | ||
| + | </ | ||
| + | |||
| + | **vconfig ist veraltet** (wird in aktuellen Systemen nicht mehr unterstützt) | ||
| + | <code bash> | ||
| + | modprobe 8021q | ||
| + | vconfig add eth0 100 | ||
| + | vconfig add eth0 101 | ||
| + | </ | ||
| + | |||
| + | Anschließend sind die logischen interfaces '' | ||
| + | |||
| + | |||
| + | ===== Diagnose-Tools ===== | ||
| + | |||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | [[http:// | ||
| + | |||
| + | <box 100% red round left | **wichtige Diagnosetools**> | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | </ | ||
| + | |||
| + | ==== traceroute ==== | ||
| + | [[http:// | ||
| + | |||
| + | ^ Fehlercodes von traceroute | ||
| + | ^ Code ^ engl. Bedeutung ^ Deutsch^ | ||
| + | | !H | host unreachable| Rechner nicht erreichbar | | ||
| + | | !N | network unreachable | Netzwerk nicht verfügbar | | ||
| + | | !P | protocol unreachable | Protokoll nicht erreichbar | | ||
| + | | !S | source route failed | FIXME | | ||
| + | | !F | fragmentation needed | Packet müsste fragementiert werden | | ||
| + | | !X | communication administratively prohibited | ICMP-Antwort ist auf dem (Ziel-)Rechner verboten | | ||
| + | | !V | host precedence violation | FIXME | | ||
| + | | !C | precedence cutoff | ||
| + | | !< | ||
| + | |||
| + | ==== Nast ==== | ||
| + | [[http:// | ||
| + | * Scannt Topologien via ARP: '' | ||
| + | * Überwacht auf ARP-Poisioning: | ||
| + | * sucht Gateway: '' | ||
| + | |||
| + | ===== andere Tools ===== | ||
| + | |||
| + | ==== Rsync ==== | ||
| + | [[linux: | ||
| + | |||
| + | ==== Webseitenspiegelung (httrack) ==== | ||
| + | zum spiegeln einer kompletten Seite gibt man httrack mit z.b. folgenden Parametern an: | ||
| + | httrack -K0 -%q0 --keep-alive --urlhack -D http:// | ||
| + | |||
| + | Der Ordner kann danach sehr schnell auf den aktuellen Stand gebracht werden (update) | ||
| + | httrack -u --continue | ||
| + | |||
| + | ==== wget ==== | ||
| + | |||
| + | <code bash> | ||
| + | wget URL # (auch ganze Verzeichnisse wenn wie bei FTP Verzeichnislisting funktioniert) | ||
| + | wget -c datei fortsetzen | ||
| + | wget --spider --force-html -i bookmarks.html : Prüfen ob Links noch funktionieren | ||
| + | wget -r -l 1 -nd --convert-links -e robots=off URL # Datei incl. 1 Linkebene herunterladen, | ||
| + | </ | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== GPRS/ | ||
| + | Zuerst sollte man einen Zugang zum Handy mit [[linux: | ||
| + | |||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||