conorcunningham / google-DDNS

N. B Ez a projekt a Google Cloud használatát igényli, a Google Cloud pedig hitelesítést igényel. Pontosabban, ebben a projektben, valamint a Google Cloud DNS használatakor API-kulcsra van szükség. A teszteléshez gyakorlatilag ingyenes a Google DNS használata, de ennek ellenére fiókra van szükség.

ezt azért írtam, hogy megoldjak egy otthoni problémát, és végül évi 100 USD-t takarítottam meg. Köszönöm, Python! Köszönöm CS50!

megnyitottam ezt a projektet mindenki számára.

Továbbá, ez szándékosan egy fájl alkalmazás. Úgy tervezték, hogy könnyen klónozható és használható legyen, így a nyílt forráskódú, és úgy tervezték, hogy egy Linux szolgáltatással használható legyen, hogy a háttérben futhasson. Elméletileg minden platformon futtatható, MAC, Windows, Linux, beágyazott linux eszközök és otthoni hálózati eszközök.

teszteltem ezt a Windows 10, Debian 9 Stretch és Max OSX Mojave.

már volt egy hoot figyelembe CS50 Web és én jelenleg dolgozik a végső projekt CS50 Web.

Cheers,

Conor

Google Cloud dinamikus DNS-kliens

ez egy egyszerű dinamikus DNS-szkript a Google Cloud DNS-hez. A szkript ellenőrzi a nyilvános IP-címét, majd a konfigurációs fájlból olvasott konfiguráció alapján ellenőrizze, hogy a Google Cloud DNS rendelkezik-e megfelelő DNS-bejegyzéssel. Ha nem található megfelelő bejegyzés, a szkript létrehoz egyet. Ha egy megfelelő bejegyzést talál, de van egy IP-címe, amely nem egyezik meg azzal, amit a szkript talált, akkor a szkript frissíti majd a Google Cloud bejegyzést (olvassa el a Törlés, majd a létrehozás). Végül, ha a szkriptek konfigurációs fájlja megegyezik a Google Cloud DNS bejegyzésével, akkor az X intervallumig alszik, és a folyamat megismétlődik.

ez a projekt a következő összetevőkből áll:

  • gcloud-ddns.py: a dinamikus dns kliens szkript
  • ddns-conf.yaml: programok konfigurációs fájl
  • követelmények.txt: telepítendő követelmények

követelmények

ehhez a szkripthez Python 3.6 vagy újabb verzió szükséges. az f-húrokat széles körben használják. A csomag követelményeit a követelmények sorolják fel.txt

használat

Usage: python gcloud-ddns.py 

Beállítás

$ git clone [email protected]:conorcunningham/google-ddns.git$ cd google-ddns$ python3 gcloud-ddns.py

a szkript az előtérben fog futni. Játszani fogok vele, és tesztelem, hogy megbízhatóan működik-e szolgáltatásként.

konfigurációs fájl

a parancsfájl konfigurációja egy yaml fájlból olvasható le. Itt található a DDNS-conf példa tartalma.yaml fájl

api-key: './ddns-api-key.json'logfile: './ddns.log'hosts: - host: 'firewall.example.com.' project_id: 'fluffy-penguin-242411' managed_zone: 'example' domain: 'example.com' ttl: 60 interval: 600 - host: 'www.example-two.com.' project_id: 'fluffy-penguin-242411' managed_zone: 'example-two' domain: 'example-two.com' ttl: 60 interval: 600

a szkript Elfogad egy opcionális CLI argumentumot, amely a konfigurációs fájl elérési útja. Ha nincs megadva, a parancsfájl a ddns-config.yaml szót fogja keresni ugyanabban a könyvtárban, mint a szkript.

  • gazdagép: a beállítani kívánt gazdagép teljesen minősített tartományneve. NB * meg kell adnia a . a .com. után ez a Google követelménye/
  • project_id: a projekt azonosítója a Google Cloud-on belül
  • managed_zone: a kezelt zóna neve a Google Cloud-ban
  • domain: a domain neve
  • ttl: a TTL másodperceinek száma
  • intervallum: mennyi ideig alszik a szkript, mielőtt újra futtatná
  • API-kulcs: az API-kulcs elérési útja JSON formátumban
  • log-Path: A naplófájl elérési útja

hitelesítés

a Google Cloud API használatához API-kulcsra van szüksége a fiókjához. Ez a kulcs egy json fájl lesz, amelyet a konfigurációs fájlban kell konfigurálni.

a parancsfájl GOOGLE_APPLICATION_CREDENTIALS környezeti változót állít be az API-kulcs elérési útjára, és a Google moduljai ezt a környezeti változót használják a hitelesítés kezelésére.

os.environ = api_key

Docker

a dockerfájl szerepel a tárolóban, így ezt tárolóként indíthatja el egy Docker példányon belül.

docker build -t google-ddns .

az alapértelmezett docker parancs egy konfigurációt vár.yaml fájl a / ddns könyvtárban

docker run -it --rm -v <path/to/config>:/ddns google-ddns

ne feledje, hogy a konfigurációs fájlon belüli útvonalak a tárolóhoz viszonyítva vannak

api-key: '/ddns/ddns-api-key.json'logfile: '/ddns/ddns.log'...

itt van egy gyors-piszkos docker-compose fájl, ha ezt használja

version: '3'services: ddns: image: google-ddns volumes: - ./config:/ddns

ipify.org API

ez a projekt a snazzy ipify.org API az ügyfelek nyilvános IP-címének lekéréséhez.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post hogyan kell megfelelően tisztítani a kávédarálót és annak sorját
Next post A legjobb Mikrofonok filmkészítéshez: a 2020-as útmutató