netstat

netstat (Netzwerkstatus) ist nicht von Hause aus in Debian enthalten. Versuchst Du den Befehl aufzurufen, kommt es unweigerlich zu einer Fehlermeldung:

# netstat -tulpn | grep LISTEN
-bash: netstat: Kommando nicht gefunden.

erst nach einem

# apt install net-tools

lässt sich dieses Tool auf nutzen. netstat ist ideal geeignet, um Netzwerkproblemen auf den Grund zu gehen.

Beispiel:

Nach der Installation der Firewall ufw streikte plötzlich mein Samba-Server und ich konnte von Windows 11 nicht mehr auf das Netzwerklaufwerk zugreiffen:

Erst der Einsatz von netstat auf dem Samba-Server (Debian 11) brachte Licht ins dunkle:

# netstat -tulpan
Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      612/mariadbd
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      1429/smbd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      548/sshd: /usr/sbin
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      1429/smbd
tcp        0    288 192.168.0.52:22         192.168.0.150:64988     VERBUNDEN   760/sshd: yuna [pri
tcp        0      1 192.168.0.52:445        192.168.0.150:64990     FIN_WAIT1   -
tcp6       0      0 :::139                  :::*                    LISTEN      1429/smbd
tcp6       0      0 :::80                   :::*                    LISTEN      611/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      548/sshd: /usr/sbin
tcp6       0      0 :::445                  :::*                    LISTEN      1429/smbd
(...)

Da wartet doch jemand auf etwas (FIN_WAIT1). Nach einem:

# ufw allow 445
# ufw reload
# systemctl restart smbd.service

stand die Verbindung zum Samba-Server wieder. Ich hatte einfach vergessen, den Port 445 für den Samba-Server zu öffnen.

# netstat -tulpan
Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      612/mariadbd
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      753/smbd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      548/sshd: /usr/sbin
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      753/smbd
tcp        0    288 192.168.0.52:22         192.168.0.150:64988     VERBUNDEN   760/sshd: yuna [pri
tcp        0      0 192.168.0.52:445        192.168.0.150:64990     VERBUNDEN   762/smbd
tcp6       0      0 :::139                  :::*                    LISTEN      753/smbd
tcp6       0      0 :::80                   :::*                    LISTEN      611/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      548/sshd: /usr/sbin
tcp6       0      0 :::445                  :::*                    LISTEN      753/smbd
(...)

Minecraft in Debian spielen

Um Minecraft in Debian spielen zu können, benötigen wir Java. Lade das *.deb-Paket herunter:

Installiere das Paket mit:

# dpkg -i Minecraft.deb
# apt -f install
# dpkg -i Minecraft.deb

apt -f install wird nötig sein, falls Abhängigkeitsprobleme auftauchen und löst dies sehr elegant, indem sämtliche Pakete nachinstalliert werden. In diesem Fall fehlen z. B. folgende Pakete, welche alternativ auch per apt installiert werden können:

# apt install default-jre default-jre-headless libatk-wrapper-java libatk-wrapper-java-jni libgdk-pixbuf-xlib-2.0-0 libgdk-pixbuf2.0-0 libgif7 openjdk-17-jre

Minecraft starten
Nach erfolgreicher Installation findes Du Minecraft in Deinem Homeverzeichnis

$ cd /home/BENUTZER/.minecraft/launcher
$ minecraft-launcher

Nach der Installation wird der Launcher gestartet und sucht nach Updates.

HP Drucker unter Linux

01. Um einen HP-Drucker zu installieren, benötigen wir das Paket hplip und hplip-gui und starten Debian neu:

# apt install hplip
# apt install hplip-gui
# reboot now

02. Drucke ein Dokument. Es startet der Plugin-in installer. Wähle hier die erste Option (wir installieren direkt ab einem HP-Server)


03. klicke hier auf zustimmen (I agree…)


04. Die Installation erfordert root-Rechte


05. bestätige die erfolgreiche Installation:


06. gehe zur Systemverwaltung in deiner Distribution und wähle HPLIP Toolbox:


07. wähle Setup Device… oder das Web Interface aus:


08. Wähle den Anschlusstyp vom Drucker (hier über USB)


09. Dem Drucker wird nun ein Device zugeordnet:


10. füge den Drucker hinzu (Add Printer)


11. der Drucker ist nun verfügbar:


 

Gemeinsamer Ordner in der Virtualbox

Um einen gemeinsamen Ordner zu Erstellen, ist das Erweiterungspaket notwendig. Dabei spielt es keine Rolle, ob die VirualBox nun auf Linux oder Windows läuft. Lediglich die Installation im virtuellen Betriebsystem weicht ab. Bei Windows 11 installieren wir eine .exe-Datei, während bei Linux die .run-Datei installiert wird. Die Installation des Zusatzpaketes ist wie bereits erwähnt plattformunabhängig.

Starte Virtualbox unter Windows oder Linux, gehe zu Datei > Einstellungen und wähle im geöffneten Fenster den Punkt Zusatzpakete. Wähle die soeben heruntergeladene Datei aus und installiere diese.

Ob die Installation nun unter Windows oder Linux erfolgt ist egal. Das Extensions-Paket ist für beide Version gleich. Starte nun die virtuelle Maschine und gehe zu Geräte > Gasterweiterung einlegen…

Gasterweiterung unter Linux installieren

Bei Debian wird das optische Laufwerk unter /media eingehängt. Die .run-Datei kann nun installiert werden. Falls die Virtualbox unter Linux läuft und eine Windowsmaschine gestartet wird, installiere die .exe-Datei.

$ ls
AUTORUN.INF  runasroot.sh                       VBoxSolarisAdditions.pkg
autorun.sh   TRANS.TBL                          VBoxWindowsAdditions-amd64.exe
cert         VBoxDarwinAdditions.pkg            VBoxWindowsAdditions.exe
NT3x         VBoxDarwinAdditionsUninstall.tool  VBoxWindowsAdditions-x86.exe
OS2          VBoxLinuxAdditions.run             windows11-bypass.reg

Nach der Installation muss die virtuelle Maschine neu gestartet werden.

# sh ./VBoxLinuxAdditions.run
# reboot now

Um den vollen Zugriff auf den Ordner zu bekommen, ändere die Userrechte in Debian mit:

# usermod -aG vboxsf USER
Gasterweiterung unter Windows installieren

Ist Windows in der VirtualBox gestartet, wird das optische Laufwerk unter D: (oder dem nächsten, freien Buchstaben) eingebunden. Hier klicken wir auf VBoxWindowsAddition-amd64.exe

Anlegen eines gemeinsamen Ordners (gilt für Linux und Windows)

Der gemeinsame Ordner kann nun angelegt werden.

sudo unter Debian

sudo ist per default in Debian nicht aktiviert. Versucht man einen root-Befehl mit sudo auszuführen, kommt es zu diesem typischem Vorfall:

$ sudo blkid

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

[sudo] Passwort für BENUTZER:
BENUTZER ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.

1. Installiere sudo

# apt install sudo

2. füge den Benutzer «BENUTZER» zur Gruppe sudo hinzu:

# adduser BENUTZER sudo

3. prüfe, ob BENUTZER sudo ausführen darf:

$ sudo -v

Falls: «Leider darf der Benutzer BENUTZER sudo für debian nicht verwenden.» erscheint, melde dich vom System ab und wieder an.

4. BENUTZER kann ab jetzt sudo anwenden:

$ sudo BEFEHL
[sudo] Passwort für BENUTZER:

Hinweis: Im Netz findet man unzählige Meinungen über Sinn und Unsinn von sudo unter Debian. Um es kurz zu machen: sudo macht tatsächlich keinen Sinn unter Debian. Es ist jedoch auch nicht verboten, es anzuwenden.

Eigener Minecraft-Server (Debian)

Um einen eigenen Minecraft-Server aufzusetzen, wird eine minimale Installation von Debian vorausgesetzt. Wird der Server explizit nur für Minecraft verwendet, schliesse mit der Firewall ufw alle Port ausser 25565 und natürlich dem Port für die ssh-Verbindung. Minecraft läuft per Standard auf Port 25565.
Dieser Port kann unter server.properties geändert werden. Unter dieser Konfigurationsdatei kann zudem der seed, Schwierigkeit u.v.m. geändert werden.


01. Installieren von Java (auf dem Server)

# apt install openjdk-17-jdk-headless

02. Homeverzeichnis betreten und Server-Software herunterladen.

$ cd/home/BENUTZERNAME
$ mkdir minecraft
$ cd minecraft
$ wget https://pfad_zum_Download/*.jar

Alternativ kann auch ein Fork (PaperMC) heruntergeladen werden.


03. Server starten und eula akzeptieren:

Starte den Server. Es wird zu dieser Hinweismeldung kommen.

$ java -Xmx1024M -Xms1024M -jar server.jar nogui
  [13:52:43] [ServerMain/WARN]: Failed to load eula.txt
  [13:52:43] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Öffne das File eula.txt und ersetze false mit true:

$ nano eula.txt

eula=true

Hinweis
Läuft bei dir eine Firewall wie ufw, gib den Minecraft-Port 25565 (Standard) frei:

# ufw allow 25565

04. Server erneut starten

$ java -Xmx1024M -Xms1024M -jar server.jar nogui

05. Minecraft-Launcher (in Windows) starten und mit dem Server verbinden

Die aktuelle IP von deinem eigenen Server findest Du mit

$ ip address

heraus. Nach der IP ist noch der Port (Standard 25565) zu setzen. Somit: 123.456.7.890:25565

Wer es ganz elegant haben möchte und sogar einen A-Record für eine Domain besitzt, setzt eine Subdomain per CNAME
minecraft.example.com
CNAME
example.com

ab jetzt, ist der Minecraft-Server auch unter minecraft.example.com erreichbar.

Sollte der Server weiterlaufen, falls die ssh-Verbindung (z. B. mit PuTTY) getrennt wird, hilft screen weiter:

# apt install screen
$ screen -S minecraft
$ java -Xmx1024M -Xms1024M -jar server.jar nogui
CTRL + A + D

Weitere Einstellungen zum Server findest du nun unter server.properties, ops.json und whitelist.json

gesamte Domain weiterleiten per .htaccess

Wer seine gesamte Webseite umgezogen hat, setzt per .htaccess ein Weiterleitung von der alten Domain (example1.com) zur neuen Domain (example2.com)
Damit werden sämtliche Anfrage von der alten Domain auf die neue Domain permanent umgeleitet:

# Weiterleitung von example1.com nach example2.com
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTP_HOST} !^https://example1.com [NC]
 RewriteRule ^(.*)$ https://example2.com/$1 [R=301,L]
</IfModule>

Java auf Debian

Installation Java

Für Java-Anwendungen stellt Debian folgende Pakete bereit:

  • openjdk-17-jre
    Komplette Java-Laufzeitumgebung – notwendig für die Ausführung von Java-Programmen mit grafischer Oberfläche und Webanwendungen. Verwendet Hotspot JIT.
  • open-17-jre-headless
    ist eine minimale Java-Laufzeitumgebung unter Nutzung von Hotspot JIT – notwendig für die Ausführung von Java-Programmen ohne grafische Oberfläche.

die aktuellen Pakete können mit apt search gesucht werden:

# apt search openjdk

Für Debian 12 (Bookworm):

# apt install openjdk-17-jre-headless

die aktuelle Version wird mit -version geprüft:

$ java -version
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.2+8-Debian-1deb11u1, mixed mode, sharing)

Falls mehrere Java-Versionen installiert wurden, kann zwischen den Versionen gewechselt werden. In diesem Beispiel haben wir die Möglichkeit zwischen java-11 und java-17 zu wechseln.

# update-alternatives --config java
Es gibt 2 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).

  Auswahl      Pfad                                         Priorität Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      automatischer Modus
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manueller Modus
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl [*] beizubehalten,
oder geben Sie die Auswahlnummer ein: AUSWAHL

Mittels Debian zu einem Server verbinden

Hinweis: Eine weitere Möglichkeit besteht in einer ssh-Verbindung via Terminal oder mittels remote (Xrdp) für Windows 10 und Windows 11.

Hier wird die Möglichkeit einer Verbindung via grafischer Oberfläche erklärt:

01. Hier am Beispiel mit dem Mate-Desktop: Wähle Orte > Zu Server verbinden…

02. und gib die Zugangsdaten ein:

Alternativ kann im Dateibrowser direkt der Pfad zum Server eingegeben werden:
sftp://username@123.456.7.890:22/var/www/html

sftp          => Protokoll
username      => allgemein gültiger User am Linuxserver
123.456.7.890 => IP Adresse vom Server
22            => Portnummer ssh (hier mit dem Standardport)
/var/www/html => Zielverzeichnis auf dem Server

03. danach bist du mit dem Server verbunden. Melde dich immer mit dem normalen Benutzer am Server an. Debian verbiete von sich aus die Anmeldung mittels root und das nicht zu unrecht. Wer im Dateibrowser unter Linux auf seinem Server per root herumschwirrt, brauch eine Menge Mut. Zu schnell ist eine Datei oder ein ganzer Ordner gelöscht oder irrtümlicherweise verschoben, nur weil man sich verklickt hat.

04. Um die Anmeldung von root zu ermöglichen, editiere die Datei /etc/ssh/sshd_config

# nano /etc/ssh/sshd_config

entferne das Kommentarzeichen bei # PermitRootLogin prohibit-password und überschreibe die Zeile mit PermitRootLogin yes
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

starte anschliessend den Service neu:

# /etc/init.d/ssh restart

Webserver (mit XAMPP)

XAMPP ist eine leicht zu installierende Apache-Distribution, die MariaDB, PHP und Perl enthält.
Gehe auf http://www.apachefriends.org/de/download.html

Dieses Tutorial bezieht sich auf die Installation von XAMPP unter Debian GNU/Linux und wurde unter Bullseye getestet.

Fährst Du mit der Maus über eine Prüfsumme (md5 oder sha1), wird dir diese angezeigt. Nach erfolgreichem Download kann die Prüfsumme ausgelesen werden:

$ sha1sum xampp-linux-*-installer.run
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN  xampp-linux-*-installer.run

Ist die Prüfsumme korrekt, kann mit der Installation begonnen werden. Die Datei wird zuerst ausführbar gemacht:

$ chmod 755 xampp-linux-*-installer.run

und anschliessend die Installationsroutine gestartet:

# ./xampp-linux-*-installer.run

Der XAMPP-Installer verlangt root-Rechte. Tippe dazu su – ein:

su -
Passwort: 
./xampp-linux-x64-8.1.1-2-installer.run
----------------------------------------------------------------------------
Welcome to the XAMPP Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want 
to install. Click Next when you are ready to continue.

XAMPP Core Files : Y (Cannot be edited)

XAMPP Developer Files [Y/n] : Y

Is the selection above correct? [Y/n]: Y

----------------------------------------------------------------------------
Installation Directory

XAMPP will be installed to /opt/lampp
Press [Enter] to continue:

----------------------------------------------------------------------------
Setup is now ready to begin installing XAMPP on your computer.

Do you want to continue? [Y/n]: Y

----------------------------------------------------------------------------
Please wait while Setup installs XAMPP on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 #########################################

----------------------------------------------------------------------------
Setup has finished installing XAMPP on your computer.

XAMPP kann nun via Brower aufgerufen werden. Tippe dazu in die Adresszeile localhost ein.

Die Dienste müssen vorab jedoch gestartet werden. Xampp heisst unter Linux korrekterweise lampp:

# /opt/lampp/lampp start
Starting XAMPP for Linux 8.1.1-2...
XAMPP: Starting Apache.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
/opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.
XAMPP: Starting MySQL.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.
XAMPP: Starting ProFTPD.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.

Die Meldung von netstat kann getrost ignoriert werden oder mit dem Paket net-tools behoben werden.

# apt install net-tools

jetzt startet XAMPP «fehlerfrei»

# /opt/lampp/lampp start
Starting XAMPP for Linux 8.1.1-2...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.

Beendet wird XAMPP mit:

# /opt/lampp/lampp stop
Stopping XAMPP for Linux 8.1.1-2...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Stopping ProFTPD...ok.

>>> HINWEIS <<<
Das Verzeichnis von XAMPP befindet sich unter
/opt/lampp/htdocs
Um dauerhaft Besitzer dieses Verzeichnis zu werden, können die Besitzerrechte mit chown geändert werden. Tippe dazu:

# chown -cR BENUTZER /opt/lampp/htdocs

ein.