Schlagwort-Archive: GNU/Linux

Unixähnliche Mehrbenutzer-Betriebssysteme, die auf dem Linux-Kernel und wesentlich auf GNU-Software basieren. Wie CentOS, Debian, Ubuntu Fedora.

Ubuntu Network Manager systemd-resolved

Ubuntu nutzt das resolvconf-Programm zur Konfiguration der lokalen DNS Auflösung. Das resolvconf-Paket umfasst eine einfache Datenbank und eine Laufzeit zur dynamischen Änderung von Nameserver-Informationen.

Ubuntu Network Manager resolvconf

Normalerweise wird das Programm resolvconf über eine Netzwerkschnittstelle ausgeführt, um Routinen wie ifup, ifdown, NetworkManager, dhclient und pppd, oder lokale Nameserver wie dnsmasq zu pushen um die Nameserver-Informationen zu updaten.

Kommen auf einem Host statische IP Adressen und DNS Einträge zur Anwendung, sollte unter Ubuntu das resolvconf-Paket deaktiviert werden, damit nicht automatisch die DNS Konfiguration aus dem dnsmasq daemon vorgenommen wird, die Konfiguration die man in /etc/resolv.conf und /etc/network/interfaces editiert hat, werden sonst durch das resolvconf-Programm wieder überschrieben.

Ubuntu resolvconf deaktivieren

$ resolvconf --disable-updates

resolvconf im Autostart deaktivieren und das Programm beenden.

$ systemctl disable systemd-resolved.service
$ service systemd-resolved stop

Den Network Manager auf default DNS ändern.

$ vi /etc/NetworkManager/NetworkManager.conf
..
dns=default
..

Den Symlink resolv.conf unter /etc entfernen.

$ rm /etc/resolv.conf

und eine neue resolv.conf Datei mit Nameserver erstellen. In diesem Beispiel sind es die Google Public DNS.

  In einem lokalen Netzwerk, oder einer ADS sollten die internen Nameserver genutzt werden.

$ vi /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

Die resolv.conf Datei des systemd Konfigurationsprogramm löschen.

$ rm /etc/systemd/resolved.conf

Änderung der Konfiguration ausführen.

$ service network-manager restart

Die Nameserver können auch in der Interface Konfiguration eingetragen werden.

$ vi /etc/network/interfaces

auto lo
iface lo inet loopback

auto ens160
iface ens160 inet static
  address 10.10.0.8
  gateway 10.10.0.1
  netmask 255.255.255.0
  network 10.10.0.0
  broadcast 10.10.0.255
  dns-nameservers 8.8.8.8 8.8.4.4
  dns-search my.local

  Die Interface Bezeichnung (ens160) kann abweichen und muss der des jeweiligen Host entsprechen.

  Die Datei /etc/resolv.conf sollte keineswegs fehlen.

Um die geänderte Netzwerk Konfiguration zu aktivieren muss diese in den Stack eingelesen werden.

$ /etc/init.d/networking restart

Troubleshooting DNS

Viele Netzwerk Probleme beruhen auf fehlerhaften DNS oder falscher Konfiguration der resolver. In einem Heimnetzwerk gibt es oft keine internen DNS, dabei kann der Router oder die Firewall als Nameserver genutzt werden, wie beispielsweise die FRITZ!Box. Grundsätzlich sollte sichergestellt werden, das die eingesetzte Firewall über ein DNS Cache verfügt, bei semiprofessionellen Firewalls wie die FortiGate verfügt nicht jedes Modell über einen solchen Cache. Bei Open Source basierten Firewalls hingegen bieten die meisten über DNS forwarder oder dnsmasq für den DNS Cache.

Nach Änderungen der Nameserver bei Windows sollte der DNS Cache zurückgesetzt werden, dazu eine Eingabeaufforderung öffnen mit Win+Rcmd

C:\> ipconfig /flushdns

Bei Linux kann der DNS Cache in einem Terminal zurückgesetzt werden, mit eines der folgenden Kommandos, je nachdem welcher Dienst installiert ist.

$ sudo /etc/init.d/nscd restart
$ service nscd restart
$ service nscd reload
$ sudo /etc/init.d/dnsmasq restart
$ service dnsmasq restart
$ rndc reload

Im Mac OS X   Terminal als root.

$ lookupd -flushcache

Ist kein interner DNS vorhanden, können die Nameserver des jeweiligen Internet Provider eingesetzt werden, oder die Cloudflare public DNS.

1.1.1.1 1.0.0.1

Beispiel einer Nameserver abfrage seines Providers unter Windows.

C:\> nslookup -type=ns green.ch
Server:  dns1.agrinet.ch
Address:  81.221.250.11

Nicht autorisierende Antwort:
green.ch        nameserver = dns2.agrinet.ch
green.ch        nameserver = dns1.agrinet.ch

dns1.agrinet.ch internet address = 81.221.250.11

Beispiel Nameserver lookup query bei Linux.

$ host -t ns green.ch
green.ch name server dns1.agrinet.ch.
green.ch name server dns2.agrinet.ch.

$ host dns1.agrinet.ch & host dns2.agrinet.ch
dns1.agrinet.ch has address 81.221.250.11
dns2.agrinet.ch has address 81.221.252.11
dns2.agrinet.ch has IPv6 address 2a01:2a8:2001:252::11

Ein Ping -n1 löst Adressen zu Hostnamen auf mit Parameter -a und -4 für IPv4 Adresse.

C:\> ping -4 -n 1 -a www.google.com

Ping wird ausgeführt für www.google.com [216.58.201.4] mit 32 Bytes Daten:
Antwort von 216.58.201.4: Bytes=32 Zeit=32ms TTL=50

Ping-Statistik für 216.58.201.4:
    Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 32ms, Maximum = 32ms, Mittelwert = 32ms

Abfrage der aktuellen DNS-Nameserver die systemd resolver nutzt.

$ systemd-resolve --status

Python Version? How to check Version

How to check installed Python Version

How to check Python Version and query OS Platform using Python.

#!/usr/bin/python

import platform
import sys

def linux_distribution():
  try:
    return platform.linux_distribution()
  except:
    return "N/A"

print("""Python version: %s
Distribution: %s
OS: %s
System: %s
Machine: %s
Platform: %s
uname: %s
version: %s
""" % (
sys.version.split('\n'),
str(platform.dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
))

Python should output the entire OS environment.

#!/usr/bin/env python

import os

for param in os.environ.keys():
    print "%20s %s" % (param,os.environ[param])

About Python

Python consistently ranks as one of the most popular programming languages.

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly procedural), object-oriented and functional programming. It is often described as a „batteries included“ language due to its comprehensive standard library.

Guido van Rossum began working on Python in the late 1980s as a successor to the ABC programming language and first released it in 1991 as Python 0.9.0.[35] Python 2.0 was released in 2000. Python 3.0, released in 2008, was a major revision not completely backward-compatible with earlier versions. Python 2.7.18, released in 2020, was the last release of Python 2.

The Python Methods

Methods on objects are functions attached to the object’s class; the syntax instance.method(argument) is, for normal methods and functions, syntactic sugar for Class.method(instance, argument). The Python methods have an explicit self parameter to access instance data, in contrast to the implicit self (or this) in some other object-oriented programming languages (e.g., C++, Java, Objective-C, Ruby). Python provides methods, often called dunder methods (due to their names beginning and ending with double-underscores), to allow user-defined classes to modify how they are handled by native operations including length, comparison, in arithmetic operations and type conversion.

Python Libraries

Python’s large standard library provides tools suited to many tasks and is commonly cited as one of its greatest strengths. For Internet-facing applications, many standard formats and protocols such as MIME and HTTP are supported. It includes modules for creating graphical user interfaces, connecting to relational databases, generating pseudorandom numbers, arithmetic with arbitrary-precision decimals, manipulating regular expressions, and unit testing.

Most Python implementations (including CPython) include a read–eval–print loop (REPL), permitting them to function as a command line interpreter for which users enter statements sequentially and receive results immediately.

Also Python comes with an Integrated development environment (IDE) called IDLE, which is more beginner-oriented.

Other shells, including IDLE and IPython, add further abilities such as improved auto-completion, session state retention, and syntax highlighting.

Python Development

As well as standard desktop integrated development environments, there are web browser-based IDEs, including SageMath, for developing science- and math-related programs; PythonAnywhere, a browser-based IDE and hosting environment; and Canopy IDE, a commercial IDE emphasizing scientific computing.