conorcunningham / google-DDNS

N. B Dette projekt kræver brug af Google Cloud, og Google Cloud kræver godkendelse. Specifikt i dette projekt, og når du bruger Google Cloud ‘ s DNS, kræver man en API-nøgle. Det er effektivt gratis at bruge Google DNS til test, men en konto er ikke desto mindre påkrævet.

jeg skrev dette for at løse et problem, som jeg havde hjemme, og det endte med at spare mig $100 USD om året. Tak, Python! Tak CS50!

jeg har åbnet indkøbt dette projekt for alle at bruge.

desuden er dette bevidst en en fil ansøgning. Det er designet til at være let at klone og bruge, dermed open source, og det er designet til at blive brugt sammen med en service, så den kan køre i baggrunden. Det kan teoretisk køres på alle platforme, MAC, Vinduer, indbyggede enheder og hjemmenetværksudstyr.

jeg har testet dette På Vinduer 10, Debian 9 Stretch og maks.

jeg har haft et hoot, der tager CS50-nettet og arbejder i øjeblikket på mit afsluttende projekt for CS50-nettet.

skål,

Conor

Google Cloud Dynamic DNS Client

dette er et simpelt dynamisk DNS-script til Google Cloud DNS. Scriptet vil kontrollere for sin offentlige IP-adresse, og derefter baseret på dens konfiguration det læses fra konfigurationsfilen, kontrollere, om Google Cloud DNS har en tilsvarende DNS-post. Hvis der ikke findes nogen tilsvarende post, opretter scriptet en. Hvis der findes en tilsvarende post, men har en IP-adresse, der ikke svarer til den, som scriptet fandt, opdateres scriptet derefter Google Cloud-post (Læs slet, opret derefter). Endelig, hvis scripts-konfigurationsfilen matcher den i Google Cloud DNS-posten, vil den sove i et interval på H, og processen gentages.

dette projekt består af følgende komponenter:

  • gcloud-ddns.py: den dynamiske dns-klient script
  • ddns-conf.yaml: programmer konfigurationsfil
  • krav.krav, der skal installeres

krav

dette script kræver Python 3.6 eller nyere. f-strenge anvendes i vid udstrækning. Pakke krav er angivet i krav.tekst

anvendelse

Usage: python gcloud-ddns.py 

opsætning

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

scriptet kører i forgrunden. Jeg vil lege med det og teste det for at se, om det kan køre pålideligt som en service.

konfigurationsfil

konfigurationen for scriptet læses fra en yaml-fil. Her er indholdet af eksemplet ddns-conf.yaml-fil

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

scriptet accepterer et valgfrit CLI-argument, som er stien til konfigurationsfilen. Hvis ingen er givet, vil scriptet søge efter ddns-config.yaml i samme mappe som scriptet.

  • host: det fuldt kvalificerede domænenavn på den vært, du vil indstille. NB * Du skal medtage . efter .com. this Er et Google-krav/
  • project_id: dit projekt-ID i Google Cloud
  • managed_sone: navnet på dit administrerede område i Google Cloud
  • domæne: dit domænenavn
  • ttl: antallet af sekunder for TTL
  • interval: hvor længe scriptet vil sove, før det kører igen
  • API-nøgle: sti til API-nøglen i JSON-format
  • log-sti: Sti til logfilen

godkendelse

for at bruge Google Cloud API skal du bruge en API-nøgle til din konto. Denne nøgle vil være en JSON-fil og skal konfigureres i konfigurationsfilen.

scriptet indstiller GOOGLE_APPLICATION_CREDENTIALS miljøvariabel til stien til din API-nøgle, og Googles moduler bruger denne miljøvariabel til at håndtere godkendelse.

os.environ = api_key

Docker

en Dockerfil er inkluderet i lageret, så du kan starte dette som en container inde i en Docker-forekomst.

docker build -t google-ddns .

standard docker-kommandoen forventer en config.yaml-fil inde i / ddns-biblioteket

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

Husk, at stierne inde i konfigurationsfilen er i forhold til beholderen

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

her er en hurtig og beskidt docker-compose-fil, hvis du bruger den

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

ipify.org API

dette projekt gør brug af ipify.org API til at hente klienternes offentlige IP-adresse.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post Sådan rengøres en kaffekværn og dens Burrs korrekt
Next post De bedste mikrofoner til filmfremstilling: 2020-guiden