Anleitung: Konfiguration des frp-Reverse-Proxy-Dienstes in ServBay
frp (Fast Reverse Proxy) ist eine leistungsstarke Reverse-Proxy-Lösung, mit der Sie lokale Netzwerkdienste sicher im Internet veröffentlichen können. ServBay integriert die frp-Clientfunktion (frpc), sodass Sie sich mit Ihrem selbst betriebenen frp-Server (frps) verbinden und über eigene Domains auf Ihre lokal gehosteten Websites zugreifen können. Damit erhalten Sie die vollständige Kontrolle über Ihren Tunnel-Server.
Diese Anleitung erklärt Schritt für Schritt, wie Sie den frp-Client in ServBay einrichten und mit Ihrem eigenen frps-Server verbinden.
Überblick
Im Gegensatz zu anderen integrierten Tunnel-Lösungen in ServBay erfordert frp die eigenständige Installation und Konfiguration eines frps-Servers auf Ihrer eigenen Infrastruktur. ServBay agiert hierbei als frpc-Client und leitet Anfragen von Ihrem lokalen Webserver über den frps-Server ins Internet weiter. Dieser Modus eignet sich ideal für Entwickler, die maximale Flexibilität und Kontrolle über ihre Tunnel-Verbindungen wünschen.
Einsatzszenarien
- Vollständige Kontrolle über den Tunnel-Server: Sie bestimmen selbst alle Einstellungen, Sicherheitsmaßnahmen und die Performance Ihres frps-Servers.
- Eigene Domains und SSL: Richten Sie für Ihre lokalen Projekte flexible, eigene Domains ein und integrieren Sie die von ServBay verwalteten ACME SSL-Zertifikate.
- Erweiterte Netzwerkkonfiguration: frp unterstützt vielfältige Proxymodi und umfassende Konfigurationen für anspruchsvolle Anwendungsfälle.
- Private Cloud-Deployments: Perfekt für Umgebungen, in denen der Einsatz von Drittanbieter-Tunneldiensten nicht gewünscht ist.
Voraussetzungen
- ServBay ist installiert: Vergewissern Sie sich, dass ServBay auf Ihrem macOS-System erfolgreich installiert und gestartet wurde.
- Eigenständig betriebener
frps
-Server:- Sie benötigen einen Server mit öffentlicher IP, auf dem
frps
installiert und läuft. - Notieren Sie die öffentliche IP-Adresse oder den Domainnamen Ihres frps-Servers.
- Notieren Sie im Konfigurationsfile (
frps.toml
oderfrps.ini
) eingestelltenbindPort
(Port für die Kommunikation zwischen Client und Server) und dastoken
(Authentifizierungs-Token).
- Sie benötigen einen Server mit öffentlicher IP, auf dem
- Domain und DNS-Konfiguration:
- Sie benötigen eine registrierte Domain (z.B.
your-frp-server.com
), deren A-Record auf die öffentliche IP Ihres frps-Servers zeigt. Über diese Domain greifen Sie später auf Ihre lokale Website zu.
- Sie benötigen eine registrierte Domain (z.B.
- ACME SSL-Zertifikate in ServBay:
- Um Ihre externe Domain über HTTPS erreichbar zu machen, müssen Sie in ServBay unter SSL Certificates bereits ein ACME SSL-Zertifikat für diese Domain beantragt haben. Beispielsweise benötigen Sie für
project.your-frp-server.com
ein Zertifikat, wenn Sie darüber Ihre lokale Website bereitstellen wollen.
- Um Ihre externe Domain über HTTPS erreichbar zu machen, müssen Sie in ServBay unter SSL Certificates bereits ein ACME SSL-Zertifikat für diese Domain beantragt haben. Beispielsweise benötigen Sie für
- Mehrere Subdomains und SSL-Zertifikate:
- Wenn Sie diverse Subdomains verwenden möchten, aber nicht für jede einzelne einen separaten A-Record setzen wollen, nutzen Sie einfach einen Wildcard-Eintrag (
*
): Fügen Sie einen A-Record für*.your-frp-server.com
an die öffentliche IP Ihres frps-Servers hinzu. Beantragen Sie zudem in ServBay ein Wildcard-SSL-Zertifikat (bei der Antragstellung im FeldDomain
:your-frp-server.com, *.your-frp-server.com
eingeben; achten Sie darauf, dass der*
-Eintrag zuletzt steht und Sie Kommas als Trennzeichen verwenden). Fortan können Sie in ServBay beliebige Subdomains anlegen und das Wildcard-Zertifikat gemeinsam nutzen, ohne ständig neue A-Records anzulegen. - Diese Methode in Kombination mit ServBay erlaubt es, Subdomains wie
company-project.your-frp-server.com
,personal.your-frp-server.com
odercustomer-1.your-frp-server.com
direkt bereitzustellen, ohne jedes Mal aufwändige DNS-Konfigurationen vornehmen zu müssen.
- Wenn Sie diverse Subdomains verwenden möchten, aber nicht für jede einzelne einen separaten A-Record setzen wollen, nutzen Sie einfach einen Wildcard-Eintrag (
Schritt-für-Schritt-Anleitung
1. frp-Paket in ServBay installieren
- Öffnen Sie die ServBay-App.
- Klicken Sie in der linken Navigation auf Softwarepakete (Packages).
- Suchen Sie in der Liste das Paket
frp
. - Klicken Sie auf den Installations-Button neben
frp
. - Nach der Installation ist der frp-Dienst noch nicht konfiguriert; ein Startversuch kann daher fehlschlagen (dies ist normal).
2. Ihren frps
-Server und die Konfiguration vorbereiten
Installieren und starten Sie eigenständig den frps
-Server auf Ihrem öffentlichen Server. ServBay kann für Sie eine Basisvorlage der frps.toml
(für neuere frp-Versionen) generieren, um Ihnen den Einstieg zu erleichtern:
Öffnen Sie in ServBay den Bereich Tunnel -> frp.
Klicken Sie neben frp server config (frps.toml) auf das Drop-Down- bzw. Ausklappsymbol.
ServBay zeigt Ihnen eine Beispiel-
frps.toml
, etwa wie folgt:toml# Die von ServBay automatisch generierte frps-Konfigurationsdatei # ist für den direkten Einsatz auf Ihrem Server ausgelegt. # Passen Sie die Parameter bitte gemäß Ihrer Anforderungen an. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # Für neuere frps-Versionen (z.B. 0.52.0+): Dashboard-Einstellungen via webServer.port, webServer.addr, webServer.user, webServer.password # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Wichtige Hinweise zu den Einstellungen:
bindPort
: Port für die Kommunikation zwischen frpc-Client und frps-Server. Stellen Sie sicher, dass dieser Port in Ihrer Firewall offen ist. Stark empfohlen: Schützen Sie diesen Port durch Firewall-Regeln (z.B. Zugriff nur von bestimmten IP-Adressen).auth.method = "token"
undauth.token
: Dient zur Client-Authentifizierung. Verwenden Sie unbedingt ein starkes, einzigartiges Passwort/Token.vhostHTTPPort = 80
undvhostHTTPSPort = 443
: Ports, an denen frps HTTP- und HTTPS-Anfragen entgegennimmt.- [Wichtig] ServBay ist aktuell auf Szenarien optimiert, in denen der frps-Server direkt die Ports 80 und 443 für
vhostHTTPPort
undvhostHTTPSPort
verwendet. So kann ServBay Ihr ACME SSL-Zertifikat unkompliziert zum frps-Server übertragen und für HTTPS-Anfragen bereitstellen. - Falls Ihr frps-Server aus bestimmten Gründen (z.B. durch andere Dienste blockierte Ports) nicht direkt Port 80/443 nutzen kann und stattdessen z.B. 8080/8443 verwendet, müssen Sie vor dem frps-Server einen zusätzlichen Reverse Proxy (z.B. Nginx oder Caddy) betreiben. Dieser Proxydienst lauscht auf 80/443 und leitet die Anfragen intern an die tatsächlichen frps-Ports weiter. In diesem Fall verwaltet nicht mehr ServBay das SSL-Zertifikat, sondern Ihr Frontend-Proxy.
- [Wichtig] ServBay ist aktuell auf Szenarien optimiert, in denen der frps-Server direkt die Ports 80 und 443 für
log.to
: Pfad zur frps-Logdatei.- Dashboard-Konfiguration (wie
webServer.port
): Ermöglicht Zugriff auf das frps-Dashboard, optional.
Kopieren Sie die generierte Konfigurationsdatei auf Ihren frps-Server, speichern Sie sie als
frps.toml
(bzw.frps.ini
, je nach Version und Präferenz) und passen Sie sie nach Ihren Vorgaben an.Starten Sie den frps-Server.
3. frp-Client in ServBay konfigurieren
Konfigurieren Sie nun in ServBay die Client-Verbindung zu Ihrem frps-Server:
Öffnen Sie in ServBay den Bereich Tunnel -> frp.
Geben Sie folgende Infos zu Ihrem frps-Server an:
- Server Address (Server-Adresse): Öffentliche Adresse Ihres frps-Servers (z.B.
my.test.frp.server.host
). - Server Port (Server-Port): Der in Ihrer
frps.toml
konfiguriertebindPort
(z.B.12345
). - Auth Token (Authentifizierungs-Token): Das in Ihrer
frps.toml
eingetrageneauth.token
(z.B.myserverpassword
).
- Server Address (Server-Adresse): Öffentliche Adresse Ihres frps-Servers (z.B.
Tunnel-Mappings einrichten:
- Local Domain (Lokale Website): Wählen Sie im Drop-Down Ihre lokale ServBay-Website, die über frp nach außen publiziert werden soll (beispielsweise
servbay.demo
). - External Domain (Externe Domain): Tragen Sie die Domain ein, über die die Website aus dem Internet erreichbar sein soll (z.B.
test.ks.do
). Der DNS-A-Record sollte bereits auf die IP Ihres frps-Servers zeigen.- Wichtig: Anders als bei anderen Tunnellösungen in ServBay (wie z.B.
Ngrok
,Cloudflared
) tragen Sie hier den vollständigen Domainnamen ein.
- Wichtig: Anders als bei anderen Tunnellösungen in ServBay (wie z.B.
- ACME Certificates (ACME-Zertifikat): Wählen Sie aus dem Drop-Down das in ServBay für diese
External Domain
hinterlegte ACME SSL-Zertifikat aus (z.B. das fürtest.ks.do
ausgestellte).- Wichtig: Wollen Sie extern per HTTPS auf Ihre Domain zugreifen, müssen Sie das richtige Zertifikat auswählen. ServBay übermittelt das Zertifikat an frpc, der es beim Verbindungsaufbau an frps weitergibt. Ihr frps-Server benötigt daher kein eigenes, separates Zertifikat pro Domain – ServBay übernimmt das Management.
- Local Domain (Lokale Website): Wählen Sie im Drop-Down Ihre lokale ServBay-Website, die über frp nach außen publiziert werden soll (beispielsweise
Weitere Tunnel hinzufügen:
- Um mehrere lokale Websites oder Domains öffentlich bereitzustellen, klicken Sie auf das
+
-Symbol neben einer bestehenden Tunnelzeile und fügen eine weitere Tunnel-Konfiguration hinzu.
- Um mehrere lokale Websites oder Domains öffentlich bereitzustellen, klicken Sie auf das
4. Einstellungen speichern und frp-Dienst starten
- Klicken Sie nach Abschluss der Konfiguration unten rechts auf Speichern (Save).
- ServBay speichert die frpc-Konfiguration und versucht, den frp-Dienst zu starten.
- Beobachten Sie die Status-LED neben
frp
in der tunnelliste. Bei korrekter Einrichtung und erfolgreichem Verbindungsaufbau sollte das Lämpchen grün leuchten – der Dienst läuft. - Funktionstest:
- Sie sollten Ihre lokale Website nun über die konfigurierte externe Domain (z.B.
https://test.ks.do
) öffentlich erreichen können. - Mithilfe des Kopier- oder Browser-Icons neben der Domain können Sie die Erreichbarkeit testen.
- Sie sollten Ihre lokale Website nun über die konfigurierte externe Domain (z.B.
Hinweise & Best Practices
- Betrieb & Absicherung des
frps
-Servers: Sie tragen die volle Verantwortung für Installation, Konfiguration, Sicherung und Wartung Ihres eigenen frps-Servers. - Sicherheit des
bindPort
: Nutzen Sie unbedingt ein starkes Auth-Token und schränken Sie den Zugang zumbindPort
per Firewall auf benötigte (z.B. statische) IP-Adressen oder Adressbereiche ein. - Wahl von
vhostHTTPPort
undvhostHTTPSPort
:- Es wird dringend empfohlen, dass Ihr frps-Server die Ports 80 und 443 direkt für virtuelle Hosts bereitstellt, um die ACME SSL-Zertifikatsdurchleitung von ServBay optimal auszunutzen.
- Bei alternativer Portvergabe (z.B. 8080/8443) müssen Sie einen Reverse Proxy (Nginx, Caddy etc.) davor schalten, der die eigentliche Zertifikatsverwaltung übernimmt.
- ACME-Zertifikat notwendig: HTTPS-Zugriff auf Ihre Domain ist nur möglich, wenn Sie hierfür in ServBay explizit ein ACME-Zertifikat beantragt und im frp-Setup ausgewählt haben.
- DNS-Propagation: Vergewissern Sie sich, dass der A-Record Ihrer externen Domain auf die richtige Server-IP zeigt und die Änderung weltweit propagiert ist.
Häufig gestellte Fragen (FAQ)
- Q: Der frp-Dienst in ServBay startet nicht, die Statusanzeige ist rot oder orange – was ist zu tun?
- A: Prüfen Sie die Einstellungen in ServBay (Server-Adresse, Port, Auth-Token) und kontrollieren Sie, ob diese mit den Werten (bindPort, auth.token) Ihrer
frps.toml
übereinstimmen. Vergewissern Sie sich, dass Ihr frps-Server läuft und der bindPort erreichbar ist (firewallseitig prüfen). Lesen Sie die frp-Logs für detaillierte Fehlermeldungen.
- A: Prüfen Sie die Einstellungen in ServBay (Server-Adresse, Port, Auth-Token) und kontrollieren Sie, ob diese mit den Werten (bindPort, auth.token) Ihrer
- Q: Die Website ist über die External Domain erreichbar, aber nur per HTTP, nicht per HTTPS?
- A: Stellen Sie sicher, dass Sie im frp-Setup von ServBay das passende ACME-Zertifikat für diese Domain ausgewählt haben. Prüfen Sie außerdem, dass in der
frps.toml
dervhostHTTPSPort
korrekt (idealerweise auf 443) eingestellt ist.
- A: Stellen Sie sicher, dass Sie im frp-Setup von ServBay das passende ACME-Zertifikat für diese Domain ausgewählt haben. Prüfen Sie außerdem, dass in der
- Q: Mein frps-Server verwendet nicht die Ports 80/443 für virtuelle Hosts – wie löse ich das SSL-Problem?
- A: In diesem Fall betreiben Sie vor Ihrem frps-Server einen Reverse Proxy (etwa Nginx oder Caddy), der die Ports 80/443 öffentlich bereitstellt, die SSL-Zertifikate (unabhängig von ServBay) verwaltet und die Anfragen intern – entschlüsselt oder verschlüsselt, je nach Konfiguration – an die tatsächlichen frps-Ports weitergibt. Das ACME-Zertifikat in der ServBay-Konfiguration ist dann nicht für den SSL-Betrieb im Internet erforderlich, sondern das Management erfolgt über Ihren Reverse Proxy.
- Q: ServBay erstellt
frps.toml
, ich nutze aber bereits eine Konfiguration alsfrps.ini
?- A: Die frp-Konfiguration migriert schrittweise von
.ini
zu.toml
. ServBay bietet das Template im TOML-Format an. Falls Ihre frps-Version oder Vorliebe beim INI-Format liegt, nutzen Sie bitte die offizielle frp-Dokumentation zur Umwandlung. Die bedeutenden Parameter bleiben identisch.
- A: Die frp-Konfiguration migriert schrittweise von
Fazit
Mit der integrierten frp-Client-Funktion bietet ServBay für macOS-Entwickler ein mächtiges Werkzeug, die Wert auf maximale Anpassung und Kontrolle ihrer NAT-Traversal-Lösung legen. In Verbindung mit einem selbst gehosteten frps-Server sowie der komfortablen Zertifikatsverwaltung von ServBay (ACME SSL) ist es möglich, lokale Entwicklungsseiten flexibel und sicher weltweit bereitzustellen. Achten Sie stets auf die korrekte Konfiguration sämtlicher Parameter – insbesondere von Ports und Sicherheitseinstellungen –, um einen stabilen sowie geschützten Dienstbetrieb zu gewährleisten.