micneu
Goto Top

Webdienste ohne DYNDNS (frp - fast reverse proxy)

article-picture
frp - fast reverse proxy

Ich gehe von aus jeder der die Anleitung nutz genug Linux Kenntnisse hat (das ist kein Linux Kurs)

1. Beispiel für ein mögliches Einsatzszenario
  • Bei eurem ISP bekommt ihr keine Öffentliche IPv4 und habt keine Möglichkeit DYNDNS zu nutzen

In diesem Beispiel läuft im Homeoffice ein Webserver (in meinem Beispiel unter Ubuntu 22.04), dort Laufen Dienste wie z. B. Nextcloud oder ähnliches

2. Was wird benötigt:
  • Eigene Domain (du willst ja www.meinedomain.de aufrufen, oder ähnlich)
  • VM bei einem Hoster oder Cloud (NetCup, Hetzner, AWS) in dem Beispiel auch mit Ubuntu 22.04
  • frp (https://github.com/fatedier/frp)

3. Wir beginnen mit der VM beim Hoster:
cd /opt/
curl -L -O https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
tar -xzvf frp_0.44.0_linux_amd64.tar.gz
Damit wir es einfacher haben bei neuen Versionen von frp legen wir einen symbolischen link an:
ln -s frp_0.44.0_linux_amd64 frp 
mkdir /etc/frp
touch /etc/frp/frps.ini

mit einem Texteditor eurer Wahl erstellt ihr die frp-server Konfiguration:
# frp server config frps.ini
[common]
bind_port = 7000
vhost_http_port = 80
token = einentokeneurerwahl (ich nutze dafür immer einen passwortmanager, immer schön lang/komplex)

Auf der VM beim Hoster noch den Port 7000 (tcp) öffnen, ich setze bei mir nftables ein:
# frp
        tcp dport 7000 accept
den frp-server starte ihr mit:
/opt/frp/frps -c /etc/frp/frps.ini


4. frp client einrichten auf eurem Ubuntu 22.04
Wie bei dem Server müssen wir unsere Systemumgebung vorbereiten:


cd /opt/
curl -L -O https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
tar -xzvf frp_0.44.0_linux_amd64.tar.gz
Damit wir es einfacher haben bei neuen Versionen von frp legen wir einen symbolischen link an:
ln -s frp_0.44.0_linux_amd64 frp 
mkdir /etc/frp
touch /etc/frp/frpc.ini

mit einem Texteditor eurer Wahl erstellt ihr die frp-client Konfiguration:
# frp client config frpc.ini
[common]
server_addr = vm_beim_hoster.meinedomain.de (oder die Feste IPv4/IPv6)
server_port = 7000
log_file = /var/log/frp/frpc.log
token = einentokeneurerwahl (ich nutze dafür immer einen passwortmanager, immer schön lang/komplex)

[web]
type = http
local_port = 8899
custom_domains = www.meinedomain.de
# Enable TCP health check
health_check_type = tcp
# TCPing timeout seconds
health_check_timeout_s = 3
# If health check failed 3 times in a row, the proxy will be removed from frps
health_check_max_failed = 3
# A health check every 10 seconds
health_check_interval_s = 10

um den frp-client zu starten müsst ihr einfach:
/opt/frp/frpc -c /etc/frp/frpc.ini
aufrufen.

Was Fehlt:
  • ihr müsst noch auf dem Server den Port 80 Freigeben
  • HTTPS, ich mache es bei mir mit LE und einem nginx als Reverse Proxy
  • frp soll automatisch Starten/Stopen also müsst ihr euch noch ein systemd script schreiben/erstellen

Gruß Michael
Bitte beachten da es keine DAU taugliche Anleitung ist!

Content-Key: 4337471392

Url: https://administrator.de/contentid/4337471392

Printed on: April 27, 2024 at 10:04 o'clock