Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Qrvpn-Server mit Docker auf Rocky Linux ausführen

profile picture
Author
x90nik
Published
2026-02-26
Time to read
5 minutes reading time

Einführung

Dieses Tutorial zeigt, wie Qrvpn auf einem Rocky-Linux-VPS mit Docker bereitgestellt wird und wie man sich von einem Windows-Client damit verbindet.

Qrvpn wird von VentoByte entwickelt, dem Team hinter Proxifier.

Qrvpn basiert auf dem branchenführenden WireGuard-VPN-Protokoll. Es bietet optimale Performance und eine moderne Ende-zu-Ende-Verschlüsselung für Daten während der Übertragung. Es werden keine Daten gespeichert.

Voraussetzungen

Bevor du beginnst, benötigst du:

  • Einen VPS mit Rocky Linux 10
  • root- oder sudo-Zugriff
  • Eine öffentliche IPv4-Adresse

Wie Qrvpn funktioniert

Dieser Abschnitt erklärt, warum Qrvpn keine offenen Ports benötigt.

Architektur auf hoher Ebene

Qrvpn verwendet ein reines Outbound-Verbindungsmodell in Kombination mit NAT-Traversal und verschlüsselten Relays.
Weder der Server noch der Client lauschen jemals auf eingehende Verbindungen.

Wichtige Details:

  • Der Datenverkehr bleibt Ende-zu-Ende verschlüsselt.
  • Das Relay kann keine Nutzdaten einsehen.
  • Keine offenen Ports erforderlich.

NAT Traversal

Verbindungsablauf

Server-Registrierung

Wenn der Qrvpn-Server startet:

  • Öffnet er eine ausgehende verschlüsselte Verbindung zur Qrvpn-Backend-Infrastruktur.
  • Registriert seine kryptografische Identität.
  • Hält eine Heartbeat-Verbindung aufrecht.

Da die Verbindung ausgehend ist, funktioniert sie auch hinter NAT und Firewalls. Das bedeutet:

  • Der Server ist aus dem öffentlichen Internet nicht erreichbar.
  • Die Angriffsfläche wird drastisch reduziert.
Client-Authentifizierung

Wenn sich ein Client verbindet:

  • Öffnet auch er eine ausgehende Verbindung zum Qrvpn-Backend-Server.
  • Authentifiziert sich und fordert Zugriff auf den Server an.

Auch hier ist kein eingehender Traffic erforderlich.

NAT-Traversal (Direkter Tunnel)

Qrvpn versucht, einen direkten Peer-to-Peer-Tunnel mittels NAT-Traversal-Techniken (ähnlich WebRTC) aufzubauen:

Client <--- Verschlüsselter P2P-Tunnel --->  Server

Wenn dies erfolgreich ist:

  • Fließt der Traffic direkt
  • Geringe Latenz
  • Kein Relay notwendig

Schritt 1 - Docker auf Rocky Linux installieren

Ich habe eine Rocky Linux 10-VPS-Instanz bei der Hetzner Cloud gekauft.

Du musst Docker auf deiner Rocky--Linux-Instanz installieren.
Falls du eine andere Linux-Distribution verwendest, folge den Anweisungen auf der offiziellen Docker-Website.

# System aktualisieren
dnf -y update

# Nützliche Pakete installieren
dnf -y install \
	epel-release \
	bash-completion

# Linux-Instanz neu starten
reboot
# Docker-Repository hinzufügen
dnf config-manager \
	--add-repo \
	https://download.docker.com/linux/centos/docker-ce.repo

# Docker Engine installieren
dnf -y install \
	docker-ce \
	docker-ce-cli \
	containerd.io \
	docker-compose-plugin

# Docker-Dienst aktivieren und starten
systemctl --now enable docker

# Installation überprüfen
docker version

Schritt 2 - Docker-Image bauen

Nach der Installation von Docker müssen wir unser Docker-Image erstellen. Wie du vielleicht weißt, sind Docker-Images unveränderlich, das heißt, sie können nach der Erstellung nicht mehr modifiziert werden.

# Projektverzeichnis erstellen
mkdir /etc/qrvpn

# In das Verzeichnis wechseln
cd /etc/qrvpn

# Dockerfile mit vim erstellen
vi Dockerfile

Dies ist unsere Dockerfile-Konfigurationsdatei mit den Anweisungen, wie Docker das Image bauen soll.

Dockerfile

# Rocky Linux als Basis-Image verwenden
FROM rockylinux/rockylinux:10

# Qrvpn-Laufzeitumgebung
ENV PATH=$PATH:/etc/qr
WORKDIR /etc/qr

RUN \
	curl -O "https://get.qrvpn.com/qrvpn.tgz" && \
	tar -zxvf qrvpn.tgz && \
	rm -rf qrvpn.tgz

# Startpunkt des Images festlegen
ENTRYPOINT ["sh", "-c", "qrvpn $QR_MODE $QR_SERVER_NAME $QR_PASSWORD $QR_INSTANCE_ID"]

Nun bauen wir das neue Image.

# Build
docker build --rm -t qrvpn:1.0 --file Dockerfile ./

# Docker-Images auf dem System anzeigen
docker image list --all

Schritt 3 - Docker-Container starten

Du musst 4 Umgebungsvariablen angeben, um Qrvpn zu starten.

# QR_MODE         -->  "server" oder "client"
# QR_SERVER_NAME  -->  eine zufällige Zeichenkette
# QR_PASSWORD     -->  Server-Passwort
# QR_INSTANCE_ID  -->  eine 6-stellige Zahl
# Container starten
docker run -d \
	--name=c_qrvpn \
	--restart always \
	--cap-add NET_ADMIN \
	--device /dev/net/tun \
	--sysctl net.ipv4.conf.all.src_valid_mark=1 \
	-e QR_MODE=server \
	-e QR_SERVER_NAME=my_server \
	-e QR_PASSWORD=strong_password \
	-e QR_INSTANCE_ID=333999 \
	qrvpn:1.0
# Logs prüfen
docker logs c_qrvpn

Wenn du eine Fehlermeldung wie unten siehst, ändere den QR_SERVER_NAME.

# [E] Server with this name already exists.

Wenn der Server erfolgreich läuft, solltest du eine ähnliche Ausgabe sehen:

# [M] Initialization started
# [M] VPN interface opened tun0
# [M] VPN interface initialized
# [M] Server ready

Schritt 4 - Verbindung von Windows herstellen

Schritt 4.1 - Qrvpn-Client herunterladen

Lade den Windows-Client von der offiziellen Qrvpn-Website herunter.

Schritt 4.2 - Client-Bereich

  • Öffne den Qrvpn-Client.

  • Klicke auf die Schaltfläche Client. Qrvpn Windows

  • Wähle Name and Password. Qrvpn Name and Password

  • Gib Server Name und Password ein. Qrvpn Connect Qrvpn Online

  • Überprüfe mit einem Webbrowser, ob sich deine öffentliche IP-Adresse geändert hat (z.B. unter ip.hetzner.com).

Ergebnis

Du hast Qrvpn erfolgreich auf einem Rocky-Linux-VPS mit Docker bereitgestellt und einen Windows-Client verbunden.

Dieses Setup ist leichtgewichtig, reproduzierbar und einfach zu warten - ideal für den persönlichen Gebrauch oder kleine Teams.

License: MIT
Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue
Try Hetzner Cloud

Get €20/$20 free credit!

Valid until: 31 December 2026 Valid for: 3 months and only for new customers
Get started
Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more