Dzięki xtrose DynDNS otrzymujesz proste,bezpłatne rozwiązanie DynDns bez zewnętrznych dostawców i ukrytych kosztów.
Wymagany serwer internetowy może utworzyć nieskończoną liczbę subdomen dla dynamicznych adresów IP.
Zastosowana metoda jest łatwa do wdrożenia.
W przypadku serwerów klienckich,czyli serwerów mających dynamiczny adres IP,konfigurowane jest proste zadanie cron z cronem,które w regularnych odstępach czasu wysyła proste zapytanie curl do serwera WWW.
Serwer WWW,który otrzymuje żądanie curl ze skryptem PHP,sprawdza,czy adres IP serwera klienta uległ zmianie i buduje nowe pliki konfiguracyjne Apache.
Kolejne zadanie cron na serwerze WWW sprawdza,czy są nowe pliki konfiguracyjne Apache,kopiuje je do katalogu konfiguracyjnego Apache i ponownie uruchamia aplikację Apache.
Za pomocą kilku skryptów i prostej konfiguracji możesz szybko stworzyć własny serwer DynDNS.
Potrzebne
-Serwer kliencki-W domu (Linux)
-Serwer WWW-Online (Linux)
Wymagane (serwer klienta):
-prawa sudo
-cron
Wymagane (serwer internetowy):
-prawa sudo
-cron
-letsencrypt
-Apache2 (serwer WWW)
-PHP
-Domena publiczna
Sklonuj lub pobierz pliki
Pobierz lub sklonuj pliki repozytorium GIT na swój komputer.
$ klon git „https://github.com/xtrose/dyndns.git”
Utwórz subdomenę dla swojego serwera internetowego
Najpierw potrzebujesz subdomeny na swoim serwerze internetowym,która później będzie zawierała skrypt PHP do przetwarzania żądań klientów.
Jeśli nie znasz jeszcze Apache,możesz skorzystać z plików z katalogu Files i odpowiednio je dostosować.
Proszę skopiować pliki do innego katalogu,ponieważ będą one potrzebne później w niezmienionej formie.
Zamień pola w nawiasach kwadratowych w plikach w następujący sposób:
-[SERVERADMIN]->Adres e-mail administratora serwera.
-[SUBDOMAIN]->Subdomena uruchamiana dla serwera klienta.
-[DOMENA]->Domena publiczna,pod którą można uzyskać dostęp do serwera WWW.
Usuń następujące wiersze z pliku Apache-le-ssl.conf i zastąp je:
Pliki są przeznaczone do odwrotnego proxy dla adresu IP.
W przypadku skryptu serwera WWW plik musi zostać dostosowany tak,aby można go było wywołać w katalogu dokumentów.
Zamień[MY_PATH]na rzeczywistą ścieżkę,do której będzie miał dostęp Twój serwer Apache.
Usuń:
SSLProxyEngine Włączony
ProxyPass /http://[IP]/
ProxyPassReverse /http://[IP]/
Wstaw:
DocumentRoot /var/www/[MY_PATH]/
Zmień nazwę tych 2 plików w następujący sposób:
apache.conf->[MOJA_SUBDOMENA].conf
apache-le-ssl.conf->[MOJA_SUBDOMENA]-le-ssl.conf
Skopiuj dwa utworzone pliki do katalogu konfiguracyjnego Apache na swoim serwerze internetowym:
Upewnij się,że masz prawa roota.
/etc/apache2/sites-enabled/
Utwórz katalog dokumentów na swoim serwerze internetowym tak,jak go skonfigurowałeś w pliku Apache-le-ssl.conf i przypisz uprawnienia użytkownikowi Apache:
$ sudo chown www-data:www-data /var/www/[MY_PATH]/
Uruchom ponownie aplikację Apache2:
$ sudo ponowne uruchomienie usługi Apache2
Utwórz certyfikat Letsencrypt dla nowo utworzonej subdomeny:
Zastąp pola w nawiasach kwadratowych danymi swojej subdomeny i domeny w poleceniu.
$ certbot certonly-d[SUBDOMENA].[DOMENA]-d www.[SUBDOMENA].[DOMENA]--apache--renew-by-default
Otwórz skopiowany plik[MY_SUBDOMAIN]-le-ssl.conf w katalogu Apache i usuń#z następujących wierszy:
Pamiętaj,że potrzebne są do tego uprawnienia roota.
Zanotuj ścieżkę do certyfikatu letsencrypt i dostosuj ją do ścieżki do utworzonego certyfikatu.
#Dołącz /etc/letsencrypt/options-ssl-apache.conf
#SSLCertificateFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMENA]/fullchain.pem
#SSLCertificateKeyFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMENA]/privatekey.pem
Uruchom ponownie aplikację Apache2:
$ sudo ponowne uruchomienie usługi Apache2
Utworzyłeś teraz subdomenę dla swojego serwera,która powinna być dostępna f