Podpięcie domeny przez tunel CloudFlare (cloudflared)
1. Konfiguracja domeny w cloudflare
Dodajemy domenę w serwisie cloudflare
Usuwamy wszystkie wpisy związane ze starym serwerem
Upewniamy się, że wszystkie wpisy typu A i AAAA są usunięte
2. Instalacja cloudflared na VPSie
Instalujemy program cloudflared na VPSie
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
rm cloudflared-linux-amd64.deb
Możemy upewnić się, że program jest zainstalowany za pomocą polecenia
cloudflared --version
3. Instalacja cloudflared lokalnie
Instalujemy cloudflared lokalnie w komputerze (ścieżka zależy od lokalnego systemu).
Na macOS będzie to:
brew install cloudflared
Upewniamy się, że program jest zainstalowany:
cloudflared --version
4. Tworzenie certyfikatu lokalnie
Na własnym komputerze (NIE VPSie) logujemy się za pomocą polecenia
cloudflared tunnel login
Autoryzujemy się przeglądarce dla wybranej domeny
Utworzy się certyfikat w katalogu
~/.cloudflared/cert.pem
5. Przenoszenie certyfikatu na VPS
Kopiujemy ten certyfikat (jako text) z własnego komputera i tworzymy go w analogicznej ścieżce na VPSie
/root/.cloudflared/cert.pem
6. Utworzenie tunelu cloudflared
Wykonujemy polecenie (my-app możemy zastąpić nazwą naszej aplikacji)
cloudflared tunnel create my-app
Powinniśmy zobaczyć odpowiedź
Created tunnel my-app with id <TUNNEL-UUID>
Wykonujemy polecenie (my-domain.pl możemy zastąpić nazwą naszej domeny)
cloudflared tunnel route dns my-app my-domain.pl
Program powinien automatycznie utworzyć wpis CNAME w konfiguracji DNS w cloudflare, gdzie w polu content na końcu będzie domena cfargotunnel.com .
7. Przygotowanie konfiguracji cloudflared na VPS
Tworzymy konfigurację /etc/cloudflared/config.yml:
tunnel: <TUNNEL_UUID>
credentials-file: /root/.cloudflared/<TUNNEL_UUID>.json
ingress:
- hostname: my-domain.pl
service: http://localhost:20245
- service: http_status:404
20245 to port, na którym działa nasza aplikacja. Jeżeli działa ona na innym porcie, to należy ustawić właściwy
8. Uruchomienie usługi
sudo cloudflared service install
sudo systemctl enable --now cloudflared
sudo journalctl -u cloudflared -f
Jeżeli nasza aplikacja jest uruchomiona na porcie 20245 na serwerze VPS, po wpisaniu nazwy domeny w przeglądarce powinna się załadować ta aplikacja. HTTPS powinien być aktywny automatycznie.
9. Ustawienie www
Jeżeli chcemy, aby nasza aplikacja była dostępna również gdy wpiszemy w adresie domeny prefix www. należy dodać dodatkowy tunel:
cloudflared tunnel route dns my-app www.my-domain.pl
Otwórz plik /etc/cloudflared/config.yml i upewnij się, że masz coś takiego:
tunnel: <TUNNEL_UUID>
credentials-file: /root/.cloudflared/<TUNNEL_UUID>.json
ingress:
- hostname: my-domain.pl
service: http://localhost:20245
- hostname: www.my-domain.pl
service: http://localhost:20245
- service: http_status:404
Zapisz i przeładuj usługę:
sudo systemctl restart cloudflared
Wycofanie całej konfiguracji
Jeżeli już nie chcemy udostępniać naszej aplikacji pod wybraną domeną za pomocą cloudflared, możemy wycofać powyższy proces.
1. Zatrzymanie usługi cloudflared
Zatrzymujemy usługę cloudflared
sudo systemctl stop cloudflared
sudo systemctl disable cloudflared
Sprawdzamy, czy nie działa
ps aux | grep cloudflared
Jeśli coś jeszcze działa - kończymy proces
sudo killall cloudflared
2. Usuwanie tunelu cloudflare
Sprawdzamy listę tuneli:
cloudflared tunnel list
zobaczymy coś w tym stylu:
ID NAME CREATED
12345678-abcd-1234-efgh-56789abcd123 my-app 2025-10-06T18:42:10Z
Usuwamy tunel po nazwie id:
cloudflared tunnel delete my-app
# lub
cloudflared tunnel delete 12345678-abcd-1234-efgh-56789abcd123
Sprawdzamy, czy już go nie ma:
cloudflared tunnel list
3. Usuwanie powiązanych rekordów DNS
Wchodzimy do panelu cloudflare → DNS i usuwamy rekordy:
CNAME my-domain.pl -> <UUID>.cfargotunnel.com
CNAME www.my-domain.pl -> <UUID>.cfargotunnel.com
Można to też zrobić z poziomu CLI
cloudflared tunnel route dns remove my-domain.pl
4. Usuwanie plików tunelu
Usuwamy pliki tunelu (w tym plik config.yml, który jest katalogu /etc/cloudflared:
sudo rm -rf /etc/cloudflared
sudo rm -rf /root/.cloudflared
5. (Opcjonalnie) Usuwanie binarki cloudflared
Jeżeli nie planujemy używać cloudflared, odinstalowujemy go:
sudo apt remove cloudflared -y
6. (Opcjonalnie) Usuwanie rekordu DNS do serwera VPS
Jeśli chcesz wrócić do klasycznego hostowania (np. bezpośrednio przez IP VPS-a):
- dodaj z powrotem rekord A my-domain.pl wskazujący na IP Twojego VPS-a,
- włącz proxy (pomarańczowa chmurka),
- i skonfiguruj port 80/443 (np. przez nginx).