VPS für Anfänger: Dein Leitfaden zur Auswahl und Absicherung
Du willst eigene Projekte hosten und Docker-Anwendungen betreiben? Lerne, wie du den richtigen VPS von Grund auf absicherst: Systemupdates, neuer User, SSH-Keys, Firewall und mehr.

Inhaltsverzeichnis
Viele von euch möchten eigene Projekte im Internet hosten und Docker-Anwendungen laufen lassen oder vielleicht einen Gameserver betreiben. Dafür braucht man einen Server, und ein VPS (Virtual Private Server) ist da oft der perfekte Einstieg.
Was ist ein VPS und warum brauchst du einen?
Ein Virtual Private Server (VPS) ist im Grunde ein virtueller Server, der auf einer physischen Maschine läuft, aber dir Ressourcen (CPU, RAM, Speicher) zur Verfügung stellt. Im Gegensatz zum Shared Hosting hast du bei einem VPS mehr Kontrolle und Leistung. Das ist ideal für:
- Eigene Webseiten und Anwendungen: Hoste deine Projekte mit voller Kontrolle.
- Docker-Container: Betreibe isolierte Anwendungen.
- Gameserver: Gründe deine eigene Gaming-Community (zum Beispiel mit OpenTTD).
- VPN-Server: Erstelle dein eigenes privates Netzwerk (siehe beispielsweise Video auf Youtube zu VPNs).
- Entwicklungsumgebungen: Teste Software in einer kontrollierten Umgebung.
- Tunnel ins Heimnetzwerk: Sichere Verbindungen nach Hause, z.B. mit Pangolin.
Den richtigen VPS-Anbieter auswählen: Worauf achten?
Die Auswahl eines VPS-Anbieters kann überwältigend sein, denn es gibt unzählige davon. Ich stelle euch hier ein paar bekannte vor und worauf ihr generell achten solltet.
Bekannte Anbieter (Beispiele)
Netcup
Netcup ist ein deutscher Webhosting-Anbieter und Domain-Registrar, der für sein gutes Preis-Leistungs-Verhältnis bei VPS (Virtual Private Server) und Root-Servern bekannt ist. Das Unternehmen legt Wert auf transparente Preisgestaltung und bietet eine breite Palette an Serverkonfigurationen für unterschiedliche Anforderungen, von kleinen Webprojekten bis hin zu ressourcenintensiven Anwendungen.
Affiliate Gutscheine gibt es hier. Beispiel (5 EUR): 36nc16172088230 Hier einlösen
* Gutscheine gelten nicht für Domains. Ich erhalte eine Provision, wenn du den Gutschein nutzt, für dich entsteht kein Nachteil.Hetzner
Hetzner Online ist ein deutscher Webhosting-Anbieter und Rechenzentrumsbetreiber, der international für seine leistungsstarken und preisgünstigen dedizierten Server, Cloud-Server (VPS) und Colocation-Dienste bekannt ist. Das Unternehmen zeichnet sich durch eine moderne Infrastruktur, transparente Preise und einen Fokus auf technische Anwender aus.
Affiliate Link mit Startguthaben:Hier Klicken
- Guthaben nur für Neukunden, die über den Link einen neuen Account erstellen. Ich erhalte eine Provision, wenn du den Link nutzt, für dich entsteht kein Nachteil.
Racknerd
RackNerd ist ein Anbieter von Webhosting-Diensten, der sich auf dedizierte Server, VPS (Virtual Private Server), Colocation und Shared Hosting spezialisiert hat. Das Unternehmen ist bekannt für seine wettbewerbsfähigen Preise und eine breite Palette von Serverkonfigurationen, die auf die Bedürfnisse verschiedener Kundengruppen zugeschnitten sind.
* Ich erhalte eine Provision, wenn du den Link nutzt, für dich entsteht kein Nachteil.Contabo
Contabo ist ein deutscher Anbieter von Webhosting-Diensten, der für seine sehr preisaggressiven VPS (Virtual Private Server) und dedizierten Server bekannt ist. Das Unternehmen hat sich einen Namen gemacht, indem es oft deutlich mehr RAM und CPU-Kerne für den Preis anbietet als viele Wettbewerber. Sie haben eine globale Präsenz mit Rechenzentren in Europa, den USA, Asien und Australien.
OVHcloud
OVHcloud ist ein global agierender Cloud-Computing-Anbieter mit Hauptsitz in Frankreich. Das Unternehmen bietet eine breite Palette von Dienstleistungen an, darunter dedizierte Server, Public und Private Cloud-Lösungen, Webhosting und VPS (Virtual Private Server). OVHcloud ist bekannt für seine eigene umfangreiche Infrastruktur, einschließlich eines globalen Glasfasernetzwerks und zahlreicher Rechenzentren weltweit.
Hostinger
Hostinger ist ein international tätiger Webhosting-Anbieter, der für seine erschwinglichen Hosting-Lösungen bekannt ist, darunter auch VPS (Virtual Private Server). Das Unternehmen richtet sich sowohl an Einsteiger als auch an fortgeschrittene Nutzer und legt Wert auf Benutzerfreundlichkeit und ein gutes Preis-Leistungs-Verhältnis.
Ionos by 1&1
IONOS ist ein großer, international tätiger Webhosting- und Cloud-Dienstleister mit deutschen Wurzeln (Teil der United Internet Gruppe). Das Unternehmen bietet eine sehr breite Palette an Dienstleistungen für Privatkunden, Selbstständige und Unternehmen, darunter Domainregistrierung, E-Mail-Dienste, Website-Baukästen, Shared Hosting, dedizierte Server und eben auch VPS (Virtual Private Server).
Kamatera
Kamatera ist ein globaler Cloud-Service-Provider, der sich auf flexible und skalierbare Cloud-Infrastrukturlösungen spezialisiert hat, darunter VPS (Virtual Private Server), Cloud-Server, Block Storage und Managed Cloud Services. Das Unternehmen ist bekannt für seine hochgradig anpassbaren Serverkonfigurationen und ein Pay-as-you-go-Preismodell.
Wichtige Auswahlkriterien
-
Preis: Kleine VPS gibt es schon für wenige Euro im Monat. Überlegt, was ihr braucht und was ihr ausgeben wollt.
-
Spezifikationen (CPU, RAM, Speicher, Traffic):
- Wie viel Leistung braucht ihr? Für kleine Webseiten oder wenige Docker-Container reichen oft 1-2 CPU-Kerne und 1-2 GB RAM.
- CPU-Kerne: Ein CPU-Kern ist nicht gleich ein CPU-Kern. Die Leistung hängt von der genutzten Hardware und der Auslastung durch andere Nutzer ab.
- RAM: Ähnlich wie CPU, die Geschwindigkeit kann variieren.
- Speicher: SSDs (NVMe ist schneller) sind Standard. Überlegt, wie viel Platz ihr braucht.
- Traffic: Bei manchen Anbietern unbegrenzt, bei anderen gibt es Limits. Für die meisten Anfängerprojekte reichen die Standard-Limits aber aus.
-
Betriebssystem (OS): Auswahl gängiger Linux-Distributionen wie Ubuntu oder Debian sollte möglich sein. Für die meisten meiner Tutorials nutze ich Ubuntu. Prüft, ob eure gewünschte Distribution oder eigene ISO-Dateien unterstützt werden.
-
Backup-Optionen: Einige Anbieter bieten kostenpflichtige Backup-Lösungen an. Wichtig: Erstellt immer eigene Backups, idealerweise nach der 3-2-1-Regel (siehe Blogpost zu Backups mit Duplicati).
-
Support und Reviews: Lest aktuelle Reviews, besonders wenn ihr den Anbieter nicht kennt. Bekannte Anbieter sind oft zuverlässiger für wichtige Projekte.
Beispielhafter Vergleich
Hierbei handelt es sich um eine Momentaufnahme, Preise und Leistung kann variieren oder von mir falsch erfasst sein.
Anbieter | Plan | CPU Kerne | RAM (GB) | Speicher (Kapzität, Typ) | Bandbreite (TB, Geschwindigkeit) | Primäre Standorte | Preis (monatlich, jährlich) |
---|---|---|---|---|---|---|---|
Netcup | VPS 1000 G11 | 4 | 8 | 256 GB, NVMe | ∞, kann auf 200 Mbit/s gedrosselt werden | Nürnberg (DE), Wien (AT), Amsterdam (NL) | 14,46 EUR, 94,20 EUR |
Netcup | RS 1000 G11 | 4 | 8 | 256 GB, NVMe | ∞, 2,5 Gbit/s | Nürnberg (DE), Wien (AT), Amsterdam (NL) | 13,51 EUR, 135,84 EUR |
Hetzner | CX32 | 4 | 8 | 80 GB, NVMe | 20 TB, 500 Mbit/s | Falkenstein (DE), Nürnberg (DE), Helsinki (FI) | 8,09 EUR, 97,08 EUR |
Racknerd | KVM-4GB | 4 | 4 | 130 GB, SSD | 3 TB, 1 Gbit/s | USA | 24,59 USD, 295,08 USD |
IONOS | VPS M | 2 | 4 | 120 GB, NVMe | ∞, 1 Gbit/s | Deutschland, Großbritannien, Spanien | 18,00 EUR, 84,00 EUR |
Hostinger | KVM 2 | 2 | 8 | 100 GB, NVMe | 8 TB, 1 Gbit/s | Deutschland, Frankreich, Litauen, Niederlande | 8,99 EUR, 95,88 EUR |
Contabo | Cloud VPS 20 | 6 | 12 | 200 GB, SSD | 32 TB, 300 Mbit/s | Deutschland, Europa | 8,33 EUR, 84,96 EUR |
DigitalOcean | General Purpose 8GB | 2 | 8 | 25 GB, SSD | 500 GB, 10Gbit/s | Weltweit | 63,00 USD, 756,00 USD |
Vultr | High Requency 4GB | 2 | 4 | 128 GB, NVMe | 3 TB, 10Gbit/s | Weltweit | 24,00 USD, 288,00 USD |
Kamatera | General Purpose 4GB | 2 | 4 | 40 GB, SSD | 5 TB, 10Gbit/s | Weltweit | 42,00 USD, 504 USD |
Scaleway | Play2-Nano | 2 | 4 | 80 GB, SSD | ∞, 1Gbit/s | Paris (FR), Amsterdam (NL), Warschau (PL) | 29,52 EUR, 354,24 EUR |
OVHcloud | Comfort | 4 | 8 | 160 GB, NVMe | ∞, 2Gbit/s | Gravelines (FR), Roubaix (FR), Strasbourg (FR), Limburg (DE), Warschau (PL) | 27,99 EUR, 293,55 EUR |
Cloudzy | Advanced | 2 | 4 | 120 GB | 5 TB, 10Gbit/s | Utah (USA), Dallas (USA), Amsterdam (NL) | 17,95 USD, 167.58 USD |
Deinen VPS grundlegend absichern: Schritt-für-Schritt
Für dieses Tutorial nutze ich einen Server bei Hetzner mit Ubuntu 24.04 und einer Shared CPU. Ich habe den kleinsten Server mit einer öffentlichen IPv4-Adresse in Nürnberg gewählt. Die IP-Adresse merke ich mir, die Zugangsdaten (root-Passwort) erhalte ich per E-Mail.
Schritt 1: Erster Login via SSH
Öffne ein Terminal (Linux/macOS) oder PowerShell (Windows). Falls du PuTTY verwendest, kannst du die Schritte in PuTTY umsetzen. SSH sollte bereits installiert sein.
ssh root@DEINE_SERVER_IP_ADRESSE
Beim ersten Verbinden wirst du gefragt, ob du den Fingerprint des Servers bestätigen möchtest. Tippe yes
und drücke Enter. Gib dann das Passwort ein, das du per E-Mail erhalten hast. (Manchmal muss man es mehrmals versuchen, bis es klappt).
Oft wirst du direkt aufgefordert, das aktuelle Passwort erneut einzugeben und dann ein neues, sicheres Passwort zu vergeben.
# Aktuelles Passwort eingeben
# Neues Passwort eingeben
# Neues Passwort bestätigen
Schritt 2: System aktualisieren
Das Erste und Wichtigste: Halte dein System aktuell!
apt update && apt upgrade -y
Dieser Befehl aktualisiert die Paketlisten (apt update
) und führt dann ein Upgrade aller installierten Pakete durch (apt upgrade
). Das -y
bestätigt automatisch alle Nachfragen. Das kann einen Moment dauern.
Schritt 3: Einen neuen Benutzer anlegen (mit sudo-Rechten)
Direkt als root
zu arbeiten ist gefährlich. Ein Tippfehler kann fatale Folgen haben. Wir legen einen normalen Benutzer an und geben ihm sudo
-Rechte, um Befehle bei Bedarf mit Root-Rechten auszuführen.
adduser dein_benutzername # Ersetze dein_benutzername
Du wirst nach einem sicheren Passwort für den neuen Benutzer gefragt und kannst optionale Infos eingeben (meistens nicht nötig).
Jetzt gib dem Benutzer sudo
-Rechte:
usermod -aG sudo dein_benutzername
Überprüfe, ob der Benutzer in der sudo
-Gruppe ist:
groups dein_benutzername
# Ausgabe sollte u.a. "sudo" enthalten
Schritt 4: SSH-Zugang mit Keys absichern (statt Passwort)
Passwörter können erraten oder geknackt werden. SSH-Keys sind deutlich sicherer.
Wie funktioniert das? Du generierst ein Schlüsselpaar:
- Privater Schlüssel: Bleibt geheim auf deinem lokalen Computer.
- Öffentlicher Schlüssel: Wird auf den Server kopiert. Beim Login weist sich dein Computer mit dem privaten Schlüssel aus, der Server prüft dies mit dem öffentlichen Schlüssel – ohne Passwortübertragung.
4a. Schlüsselpaar auf deinem lokalen Computer generieren
Auf Linux, macOS oder Windows (mit installiertem OpenSSH, oft Standard bei Windows 10/11) im lokalen Terminal:
ssh-keygen -t ed25519 -C "Kommentar_zB_Hetzner_Server"
-t ed25519
: Verwendet einen modernen, sicheren Algorithmus. Alternative:rsa -b 4096
.-C "Kommentar"
: Ein optionaler Kommentar zur Identifizierung des Schlüssels.
Du wirst gefragt, wo der Schlüssel gespeichert werden soll (Standardpfad meist ~/.ssh/id_ed25519
– einfach Enter drücken) und kannst eine Passphrase vergeben. Ich empfehle dringend, eine starke Passphrase zu verwenden! Sie schützt deinen privaten Schlüssel zusätzlich.
Im Verzeichnis ~/.ssh/
(oder %USERPROFILE%\.ssh\
unter Windows) findest du nun zwei Dateien, z.B.:
id_ed25519
(privater Schlüssel – geheim halten!)id_ed25519.pub
(öffentlicher Schlüssel – diesen kopieren wir)
Hinweis für Windows-Nutzer: Falls ssh-keygen
nicht funktioniert, installiere OpenSSH oder nutze Tools wie PuTTYgen.
4b. Öffentlichen Schlüssel auf den Server kopieren
Melde dich auf dem Server mit deinem neu erstellten Benutzer an (nicht als root
!):
ssh dein_benutzername@DEINE_SERVER_IP_ADRESSE
# Passwort des neuen Benutzers eingeben
Sobald du auf dem Server eingeloggt bist:
# Erstelle das .ssh-Verzeichnis, falls es nicht existiert
mkdir -p ~/.ssh
# Setze die richtigen Berechtigungen für das Verzeichnis
chmod 700 ~/.ssh
# Öffne die authorized_keys Datei zum Bearbeiten
nano ~/.ssh/authorized_keys
Kopiere jetzt den Inhalt deiner id_ed25519.pub
-Datei (vom lokalen Rechner) als eine einzige Zeile in die authorized_keys
-Datei auf dem Server.
Speichere die Datei in nano
mit Strg+O, Enter, und schließe mit Strg+X.
Setze die richtigen Berechtigungen für die Datei:
chmod 600 ~/.ssh/authorized_keys
Alternative: ssh-copy-id
(vom lokalen Rechner)
Wenn ssh-copy-id
auf deinem lokalen System verfügbar ist (ggf. nachinstallieren, z.B. unter Windows mit choco install ssh-copy-id
), kannst du den Schlüssel einfacher kopieren:
# Vom lokalen Rechner ausführen:
ssh-copy-id -i ~/.ssh/id_ed25519.pub dein_benutzername@DEINE_SERVER_IP_ADRESSE
# Du wirst nach dem Passwort für "dein_benutzername" auf dem Server gefragt.
Dieser Befehl erledigt das Erstellen von .ssh
und authorized_keys
sowie das Setzen der Berechtigungen automatisch. Manchmal gibt es unter Windows PowerShell Probleme mit ssh-copy-id
, dann ist die manuelle Methode oben zuverlässiger.
4c. Testen des Key-Logins
Logge dich vom Server aus:
exit
Versuche dich nun erneut vom lokalen Rechner aus anzumelden:
ssh dein_benutzername@DEINE_SERVER_IP_ADRESSE
Wenn alles korrekt eingerichtet ist, solltest du jetzt nach der Passphrase deines SSH-Keys gefragt werden (falls du eine vergeben hast) und nicht mehr nach dem Benutzerpasswort.
Schritt 5: SSH-Konfiguration härten (Passwort-Login deaktivieren)
Nachdem der Key-Login für deinen normalen Benutzer funktioniert, können und sollten wir den Passwort-Login für SSH komplett deaktivieren.
Logge dich auf dem Server mit deinem Benutzer (per SSH-Key) ein und öffne die SSH-Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
# Gib dein Benutzerpasswort ein (für sudo)
Suche und ändere folgende Zeilen (entferne #
am Zeilenanfang, falls vorhanden):
# Stelle sicher, dass dies auf yes steht
PubkeyAuthentication yes
# Deaktiviere Passwort-Authentifizierung
PasswordAuthentication no
# Verbiete Root-Login komplett (oder setze auf prohibit-password, wenn Root-Login per Key explizit gewünscht)
PermitRootLogin no
# Optional: Deaktiviere Challenge-Response Authentifizierung
# KbdInteractiveAuthentication no # Oft schon durch PasswordAuthentication no abgedeckt
Wichtig: Manchmal gibt es zusätzliche Konfigurationsdateien, die diese Einstellungen überschreiben könnten. Überprüfe den Ordner /etc/ssh/sshd_config.d/
. Eine häufige Datei ist 50-cloud-init.conf
.
sudo ls -l /etc/ssh/sshd_config.d/
# Falls dort eine Datei wie 50-cloud-init.conf existiert:
sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
Stelle sicher, dass auch hier PasswordAuthentication
auf no
steht oder die Zeile auskommentiert ist, damit die Hauptkonfiguration greift.
Speichere die Änderungen (Strg+O, Enter, Strg+X) und starte den SSH-Dienst neu:
sudo systemctl restart sshd # oder manchmal "ssh" statt "sshd"
SEHR WICHTIG: Öffne ein neues Terminalfenster und versuche dich einzuloggen, bevor du die aktuelle Verbindung schließt!
# Im NEUEN lokalen Terminal:
ssh dein_benutzername@DEINE_SERVER_IP_ADRESSE
Wenn du dich mit deinem Key (und ggf. Passphrase) einloggen kannst und ein Login-Versuch mit einem falschen Passwort (oder als root
) fehlschlägt, hat alles geklappt.
Schritt 6: Einen zweiten SSH-Key einrichten
Es ist sinnvoll, einen Backup-SSH-Key zu haben oder einen Key für ein anderes Gerät (z.B. dein Smartphone). Generiere auf dem anderen Gerät einen neuen Key und füge dessen öffentlichen Teil zur ~/.ssh/authorized_keys
-Datei auf dem Server hinzu (jede Zeile ein neuer Key). Apps wie Termux (Android) oder Blink Shell (iOS) unterstützen SSH-Keys.
Schritt 7: Eine einfache Firewall einrichten (UFW)
Eine Firewall kontrolliert den ein- und ausgehenden Netzwerkverkehr. UFW (Uncomplicated Firewall) ist einfach zu bedienen.
Prüfe, ob UFW installiert ist (oft der Fall):
sudo ufw status
# Wenn nicht installiert: sudo apt update && sudo apt install ufw
Zuerst erlauben wir den SSH-Verkehr, damit wir uns nicht aussperren:
sudo ufw allow OpenSSH
# Alternativ, wenn OpenSSH nicht als App bekannt ist:
# sudo ufw allow 22/tcp
Wenn du einen Webserver betreiben willst (ohne Docker, der seine eigenen Port-Regeln mitbringt):
sudo ufw allow http # Port 80
sudo ufw allow https # Port 443
Aktiviere die Firewall:
sudo ufw enable
# Bestätige mit "y"
Überprüfe den Status:
sudo ufw status verbose
Du solltest sehen, dass die Firewall aktiv ist und die erlaubten Ports (z.B. 22/tcp) gelistet sind. Alle anderen eingehenden Verbindungen werden standardmäßig blockiert.
Fazit: Die Basis ist gelegt!
Das war ein Schnelldurchlauf, aber jetzt wisst ihr, wie ihr euren ersten VPS auswählt, euch das erste Mal einloggt und die grundlegenden Sicherheitseinstellungen vornehmt: Systemupdates, neuer User mit sudo
, SSH-Absicherung per Key und Deaktivierung des Passwort-Logins sowie eine einfache Firewall.
Von hier aus könnt ihr jetzt anfangen, Docker einzurichten, euren Webserver zu konfigurieren oder was auch immer ihr mit eurem Server vorhabt.
Ich hoffe, dieser Beitrag hat euch geholfen, euren ersten VPS sicher an den Start zu bringen. Viel Erfolg mit eurem eigenen Server!
FAQs
Welche Linux-Distribution sollte ich als Anfänger auf einem VPS wählen?
Ubuntu und Debian sind sehr anfängerfreundlich und haben große Communities sowie viele Anleitungen online. Ubuntu wird in diesem Tutorial und vielen anderen verwendet.
Was mache ich, wenn ich mich nach der SSH-Konfiguration ausgesperrt habe?
Die meisten VPS-Anbieter bieten eine Notfallkonsole (oft VNC- oder KVM-Konsole genannt) über ihr Webinterface an. Damit kannst du dich auch ohne SSH auf den Server verbinden und Konfigurationsfehler beheben.
Brauche ich wirklich eine IPv4-Adresse oder reicht IPv6?
Obwohl IPv6 die Zukunft ist, sind noch nicht alle Internetnutzer und Dienste darüber erreichbar. Für den Anfang und für maximale Kompatibilität ist eine dedizierte IPv4-Adresse empfehlenswert, besonders wenn du Dienste hosten willst, die von überall erreichbar sein sollen.
Was kostet ein VPS für Anfänger?
Einfache VPS für kleine Projekte oder zum Lernen gibt es schon ab wenigen Euro pro Monat (z.B. 2-5 €). Leistungsstärkere Server mit mehr RAM, CPU-Kernen und Speicher können 10-20 € oder mehr kosten. Achte auf Vertragslaufzeiten und eventuelle Einrichtungsgebühren.