conorcunningham / google-ddns

Nb dette prosjektet krever Bruk Av Google Cloud, Og Google Cloud krever godkjenning. Spesielt i dette prosjektet, og når Du bruker Google Cloud DNS, krever MAN EN API-nøkkel. Det er effektivt gratis Å bruke Google DNS for testing, men en konto er likevel nødvendig.

jeg skrev dette for å løse et problem jeg hadde hjemme, og det endte med å spare meg $100 USD i året. Takk, Python! Takk CS50!

jeg har åpnet hentet dette prosjektet for alle å bruke.

Videre er dette bevisst en en fil søknad. Den er designet for å være enkel å klone og bruke, derav åpen kildekode, og den er designet for å brukes med En Linux-tjeneste slik at den kan kjøre i bakgrunnen. Det kan teoretisk kjøres på ALLE plattformer, MAC, Windows, Linux, innebygde linux-enheter og hjemmenettverksutstyr.

jeg har testet Dette På Windows 10, Debian 9 Stretch Og Max OSX Mojave.

jeg har hatt en hoot å ta CS50 Web Og jobber for tiden med mitt siste prosjekt FOR CS50 Web.

Skål,

Conor

Google Cloud Dynamic DNS Client

Dette er et enkelt dynamisk DNS-skript For Google Cloud DNS. Skriptet vil sjekke for sin offentlige IP-adresse, og deretter basert på konfigurasjonen den leser fra konfigurasjonsfilen, sjekk om Google Cloud DNS har en tilsvarende DNS-oppføring. Hvis ingen tilsvarende oppføring er funnet, vil skriptet opprette en. Hvis en tilsvarende oppføring er funnet, men har EN IP-adresse som ikke samsvarer med det som skriptet fant, vil skriptet oppdatere Deretter Google Cloud entry(les slett, og opprett deretter). Til slutt, hvis skriptkonfigurasjonsfilen samsvarer Med Google Cloud DNS-oppføringen, vil den sove i et intervall på x, og prosessen gjentas.

dette prosjektet består av følgende komponenter:

  • gcloud-ddns.py: det dynamiske dns-klientskriptet
  • ddns-conf.yaml: programmer konfigurasjonsfil
  • krav.txt: krav som skal installeres

Krav

dette skriptet krever Python 3.6 eller nyere. f-strenger er mye brukt. Pakkekrav er oppført i krav.txt

Bruk

Usage: python gcloud-ddns.py 

Oppsett

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

skriptet vil kjøre i forgrunnen. Jeg skal leke med den og teste den for å se om den kan kjøre pålitelig som en tjeneste.

Konfigurasjonsfil

konfigurasjonen for skriptet leses fra en yaml-fil. Her er innholdet i 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

skriptet godtar ett valgfritt cli-argument som er banen til konfigurasjonsfilen. Hvis ingen er gitt, vil skriptet se etter ddns-config.yaml i samme katalog som skriptet.

  • vert: det fullt kvalifiserte domenenavnet til verten du vil angi. NB* Du ma inkludere det . etter. com. This er Et Google-krav/
  • project_id: prosjekt-ID-EN din i Google Cloud
  • managed_zone: navnet på den administrerte sonen I Google Cloud
  • domene: domenenavnet ditt
  • ttl: antall sekunder FOR TTL
  • intervall: hvor lenge skriptet vil sove før du kjører igjen
  • Api-nøkkel: bane til api-nøkkelen i json-format
  • LOGGBANE: Sti til loggfilen

Autentisering

FOR å kunne bruke Google Cloud API trenger du EN API-nøkkel for kontoen din. Denne nøkkelen vil være en json-fil og må konfigureres i konfigurasjonsfilen.

skriptet vil sette GOOGLE_APPLICATION_CREDENTIALS miljøvariabel til BANEN TIL API-nøkkelen din, Og Googles moduler vil bruke denne miljøvariabelen til å håndtere godkjenning.

os.environ = api_key

Docker

En Dockerfile er inkludert i depotet, slik at du kan starte dette som en beholder inne I En Docker-forekomst.

docker build -t google-ddns .

standard docker-kommandoen forventer en config.yaml-fil inne i / ddns-katalogen

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

Husk at banene i config-filen er i forhold til beholderen

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

Her er en rask og skitten docker-compose-fil hvis du bruker det

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

ipify.org API

dette prosjektet gjør bruk av snazzy ipify.org API for å hente klientens offentlige IP-adresse.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Previous post Slik Rengjør Du En Kaffekvern Og Dens Burrs Riktig
Next post De beste Mikrofonene for filmskaping :2020 guide