Como configurar DNS dinâmico usando o Google Domains e Ubuntu Server
Eu recomendaria que você redirecte todas as conexões para uma conexão segura.
Resumo
Aprenda a configurar um DNS dinâmico usando o Google Domains e proteger seu site com um certificado SSL da Let’s Encrypt usando o CERTBOT.
Pontos chave:
1. DNS dinâmico permite apontar seu nome de domínio em um endereço IP dinâmico.
2. O Google Domains oferece DNS dinâmico gratuitamente com todas as compras de domínio.
3. Este tutorial mostrará como configurar DNS dinâmico usando o Google Domains e o Ubuntu Server.
Questões:
1. Por que você deveria usar DNS dinâmico?
Responder: DNS dinâmico permite que um usuário altere seu endereço IP sem precisar atualizar constantemente o endereço IP em seus dispositivos. Isso é útil para pessoas que trabalham remotamente e precisam de uma conexão confiável que esteja sempre disponível.
2. O que são domínios do Google?
Responder: O Google Domains é um registrador de domínio que oferece aos usuários a oportunidade de registrar seu próprio nome de domínio.
3. Quais são os benefícios de usar domínios do Google?
Responder: Os benefícios dos domínios do Google incluem uma interface simples, ferramentas fáceis de usar, preços baixos, controle do seu domínio e integração com o Google Apps.
4. Qual é o ambiente do servidor recomendado para configurar DNS dinâmico usando domínios do Google e servidor Ubuntu?
Responder: O ambiente do servidor recomendado é o Ubuntu 18.04 LTS com Apache 2, DDClient 3.8.3 e certbot 0.27.0.
5. Como você configura DNS dinâmico no Google Domains?
Responder: Para configurar o DNS dinâmico nos domínios do Google, você precisa fazer login na conta do Google Domains, selecionar seu domínio, acesse as configurações do DNS, clique em “Mostrar configurações avançadas”, clique em “Gerenciar DNS dinâmico” e criar um novo registro com o nome do subdomínio ou o ROOT Domínio.
6. O que é ddclient?
Responder: DDCLIENT é um cliente DNS dinâmico que atualiza automaticamente seus registros DNS com seu endereço IP dinâmico.
7. Como você configura o ddclient?
Responder: Para configurar o DDCLIENT, você precisa instalar o DDClient no seu servidor Ubuntu, configurar o arquivo de configuração DDCLIENT e iniciar o serviço DDCLIENT.
8. Como você configura seu servidor da web para dns dinâmicos?
Responder: Para configurar seu servidor da web para DNS dinâmico, você precisa configurar os hosts virtuais do Apache para apontar para o seu domínio e configurar o SSL usando o certbot.
9. O que é um certificado SSL?
Responder: Um certificado SSL é um certificado digital que autentica a identidade de um site e criptografa dados enviados entre o site e o navegador do usuário.
10. Como você protege seu site com um certificado SSL da Let’s Encrypt usando o certbot?
Responder: Para proteger seu site com um certificado SSL da Let’s Encrypt usando o CERTBOT, você precisa instalar o certbot no seu servidor, executar o certbot para obter e instalar o certificado SSL e configurar seu servidor da web para usar o certificado SSL.
11. Quanto tempo leva para configurar DNS dinâmico usando domínios do Google e servidor Ubuntu?
Responder: Você pode configurar o DNS dinâmico usando o Google Domains e o Ubuntu Server em menos de uma hora.
12. Você pode usar DNS dinâmico com outros registradores de domínio?
Responder: Sim, você pode usar DNS dinâmico com outros registradores de domínio, mas este tutorial se concentra na criação de DNs dinâmicos usando o Google Domains.
13. Qual é o objetivo de redirecionar todas as conexões para uma conexão segura?
Responder: Redirecionar todas as conexões para uma conexão segura garante que toda a comunicação entre o usuário e o site seja criptografada e segura, fornecendo privacidade e proteção contra a escuta.
14. Quais são os requisitos do sistema para executar o servidor Ubuntu?
Responder: O servidor Ubuntu possui requisitos mínimos do sistema, incluindo um processador de 1 GHz, RAM de 512 MB e 2 GB de espaço no disco rígido.
15. Existem limitações ou restrições ao usar DNS dinâmico com domínios do Google?
Responder: Os domínios do Google podem ter limitações ou restrições sobre o número de registros dns dinâmicos que você pode criar ou a frequência de atualizações permitidas.
Como configurar DNS dinâmico usando domínios do Google e Ubuntu Servertechnology
Eu recomendaria que você redirecte todas as conexões para uma conexão segura.
O Google oferece DNS dinâmico
О эээ сйранibus
Ы з ззарегиgléria. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы, а не робот. Почpels эээ моогitu произойth?
Эта страница отображается в тех случаях, когда автоматическими системами Google регистрируются исходящие из вашей сети запросы, которые нарушают Условия использования. Ponto. Ээth момо номттаая и оозз илэз и ээ и эз и эз и з и ззз и зз и ээз и ээз иth ээ эth ээзз эth эзз иthлз ио и зз и иth эз иээ эээо иth эз эээ ээо ээоо иth иэзз эth эзт эth эз ио эээ иth эз иэз иthлзз иоз ил иээ иээо иэээ иээо иth ио иээ эth иэ иээ эth иэ иээ эth ио иэ ээог seguir.
Ит и и и и и и и и и чззжfia м ирржжжfia м иржжжжfia м мжжжжжж<ь м м иржжжfia. não. Если вы используете общий доступ в Интернет, проблема может быть с компьютером с таким же IP-адресом, как у вас. Орратитеitivamente к с о и и с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с а с с а с а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а ”. ПодробнÉ.
Проверка по слову может также появляться, если вы вводите сложные запросы, обычно распространяемые автоматизированными системами, или же вводите запросы очень часто.
Como configurar o DNS dinâmico usando o Google Domains e o Ubuntu Server Technology
Aprenda a configurar um DNS dinâmico usando os domínios do Google e proteger seu site com um certificado SSL de Let’s criptografado usando certbot.
Dinâmico DNS é um serviço que permite apontar seu nome de domínio em um endereço IP dinâmico. Isso significa que o endereço IP do seu site muda periodicamente.
O Google Domains oferece DNS dinâmico gratuitamente com todas as compras de domínio. Você pode configurar o DNS dinâmico usando o Google Domains e o Ubuntu Server em menos de uma hora.
Este tutorial mostrará como configurar DNS dinâmico usando o Google Domains e o Ubuntu Server.
Índice
- Por que usar DNS dinâmico?
- O que são domínios do Google?
- Etapa 1: Configurar DNS dinâmico nos domínios do Google
- Etapa 2: Configurar DDClient
- Etapa 3: Configure seu servidor da Web
Por que usar DNS dinâmico?
O Dynamic DNS é um serviço que permite que um usuário altere seu endereço IP sem precisar atualizar constantemente o endereço IP em seus dispositivos. Isso torna muito mais fácil do que antes tornar um endereço IP acessível de qualquer lugar, o que é útil para pessoas que trabalham remotamente e precisam de uma conexão confiável que esteja sempre disponível.
Também é importante observar que o DNS dinâmico não requer nenhuma configuração do lado do cliente. O serviço DNS dinâmico faz todo o trabalho para você.
O que são domínios do Google?
O Google Domains é um registrador de domínio que oferece aos usuários a oportunidade de registrar seu próprio nome de domínio.
O Google Domains oferece a chance de obter seu próprio nome de domínio sem ter que passar por terceiros. Ele também fornece a capacidade de usar seu próprio endereço de e -mail pessoal, que está vinculado diretamente ao seu site ou blog.
Benefícios dos domínios do Google
Os benefícios dos domínios do Google são que ele oferece uma interface simples, ferramentas fáceis de usar e preços baixos. Você recebe muito controle do seu domínio em comparação com o preço de outros serviços como o DynDNS (US $ 24.95 por ano no momento da redação) de recursos limitados. Há serviços gratuitos como noip.com, mas você não tem pouco controle do nome de domínio usado e pode ter que verificar o uso a cada 30 dias.
O Google Domains fornece um painel pessoal com todos os seus domínios, e -mails e contatos. Você também obtém a integração do Google Apps, para acessar todo o seu e -mail, calendário e conversar de um lugar.
Ambiente
- Ubuntu 18.04 LTS Estou certo de.
- Apache 2
- ddclient 3.8.3 – Instalação
- CertBot 0.27.0 – Instalação
Etapa 1: Configurar DNS dinâmico nos domínios do Google
- Faça login nos domínios do Google.
- Selecione o nome do seu domínio.
- Selecione ‘DNS’ no lado esquerdo da tela. Servidores de nome padrão deve estar ativo ou isso não funcionará.
- Clique Mostrar configurações avançadas.
- Clique Gerenciar DNS dinâmico e Crie um novo registro.
- Atribua um IP dinâmico digitando o nome do subdomínio ou domínio raiz.
- Clique Salvar.
Quando você chega à etapa 4 de ‘configurar um registro sintético dinâmico’ se você quiser adicionar vários subdomínios, esta é a primeira alteração a fazer. Como às vezes posso compartilhar o acesso a um produto acabado de algo adicionando ‘@’ (“domínio root” ou “domínio nu”) é o caminho a seguir. Caso contrário, adicione o subdomínio de sua escolha.
Algo que eu considerei é que sempre posso encaminhar um subdomínio único, como as páginas do GitHub, se necessário mais tarde. No meu servidor da web, meus arquivos de configuração controlam a direção da solicitação. Então, ter tráfego vá para o local do domínio raiz faz mais sentido para mim.
Complete o restante das etapas nas instruções.
Etapa 2: Configurar DDClient
O sistema de nomes de domínio dinâmico é um serviço que atualiza automaticamente o endereço IP associado a um nome de domínio, que pode ser útil para acessar um site que está usando um endereço IP dinâmico (e.g., para serviços de hospedagem na web) na internet. Este serviço pode ser fornecido pelo DDCLIENT, que é um software que atualiza os registros do computador dos nomes de domínio para refletir as alterações em seus endereços IP.
Não consegui que o DDClient funcione corretamente usando o suporte de domínios do Google incorporado, então optei pelas instruções sem o suporte do Google Domains Support.
# Configuração arquivo para ddclient gerado por Debconf # # /etc/ddclient.conf Daemon=300 protocolo=dynDns2 usar=rede servidor=domínios.Google.com ssl=sim Conecte-se=gerado_username senha='Generated_password' # ver o Observação abaixo @.seu domínio.tld
Teste sua configuração:
Nota: Se você estiver enfrentando problemas aqui, pode ser necessário remover as citações únicas
sudo ddclient -daemon = 0 -debug -verbose -noquiet
Você concluiu a configuração corretamente se a saída terminar com “sucesso” – a saída deve ser semelhante a:
Sucesso: @.seu domínio.com: ignorado: o endereço IP já estava definido como 12.80.274.74.
Eu então certifiquei -me de que os URLs tenham propagado. Quando o URL principal for bem -sucedido (também verifique com www.seu domínio.com) eu então verifiquei com subdomínios aleatórios com e sem www pré-preso. Depois que me senti bem com os resultados, mudei para a próxima etapa.
Etapa 3: Configure seu servidor da Web
O domínio que selecionei termina na página, então tive que ter uma conexão segura para que meus URLs funcionem corretamente. Não vou te dizer quanto tempo demorei para descobrir isso, mas é por isso que essas etapas são a seguir ;-). Com o uso do padrão .arquivo conf eu estava pronto para começar.
Repita esse processo com cada site/domínio que você está configurando para usar com seu DNS dinâmico.
Copie um arquivo LIMP CONF:
sudo cp 000-default.Conf domain_name.conf
Ajuste o arquivo para servir ao domínio que servirá:
*: 80> ServerAdmin [email protected] servername subdoman.seu domínio.com Serveralias www.subdomínio.seu domínio.com documentroot/var/www/sub_domain ErrorLog $Apache_log_dir>/erro.Log CustomLog $Apache_log_dir>/acesso.log combinado
Se você precisar de um redirecionamento
Eu mencionei meu servidor de quadrinhos e, claro, eu precisava acessá -lo com minha nova estrutura de domínio. Então, aqui está um exemplo de como eu adicionei um host virtual no meu servidor para tornar isso uma realidade.
*: 80> ServerAdmin [email protected] servername subdoman.seu domínio.com Serveralias www.subdomínio.seu domínio.com documentroot/var/www/sub_domain ErrorLog $Apache_log_dir>/erro.Log CustomLog $Apache_log_dir>/acesso.log combinado /> ProxyPass http: // 192.168.1.76: 2202/proxyPassReverve http: // 192.168.1.76: 2022/ /admin> ProxyPass http: // 192.168.1.76: 2203/Admin ProxyPassreverse Http: // 192.168.1.76: 2203/Admin
Ative o site a ser usado:
sudo a2ensite domain_conf.conf
Gerar um certificado SSL usando o certbot – opcional, não opcional
Eu recomendaria que você redirecte todas as conexões para uma conexão segura.
sudo certbot –apache -d nextcloud.seu domínio.com -d www.NextCloud.seu domínio.com
Seu .O arquivo conf parecendo o seguinte e criará uma conexão segura .arquivo conf. automaticamente.
*: 80> ServerAdmin [email protected] servername subdoman.seu domínio.com Serveralias www.subdomínio.seu domínio.com documentroot/var/www/sub_domain ErrorLog $Apache_log_dir>/erro.Log CustomLog $Apache_log_dir>/acesso.Log combinado rewriteEngine no rewritecond % = subdomínio.seu domínio.com [ou] rewritecond % = www.subdomínio.seu domínio.com rewriture ^ https: // %% [end, ne, r = permanente]
É isso, abra seu navegador e vá para o URL desejado e você verá o site que está procurando. Deixe -nos saber se você experimentou isso e se funcionar para você.
Cansin Acarer
Como usar o DDClient para atualizar as configurações dinâmicas de DNS nos domínios do Google
Se você estiver executando um servidor da web, VPN ou qualquer outro dispositivo em casa que deseja acessar pela Internet usando um domínio ou nome de subdomínio, você precisa de um endereço IP estático (para o qual muitos ISPs não fornecem ou cobrem mais para) ou você precisará de uma configuração dinâmica de DNS que altere os registros de DNS sempre que o endereço IP. O Google Domains oferece este serviço de graça e sem nenhuma série anexada como Noip’s Requisito de confirmação a cada 30 dias.
1. Identifique sua interface de rede
Precisamos saber o nome da interface de rede que o DDClient usará, então execute o seguinte comando:
sudo lshw
Procure as seguintes linhas que começam com *-Network na saída e observe o nome lógico da interface de rede que você está usando. Isso seria eth0 para o caso abaixo, pois este dispositivo foi conectado via Ethernet.
[[. ] *-Network: 0 Desativado Descrição: Interface sem fio ID física: 1 Nome lógico: WLAN0 [. ] *-Network: 1 Descrição: Ethernet Interface ID física: 2 Nome lógico: eth0 [. ]
2. Obtenha credenciais do DNS dos domínios do Google
Faça login nos domínios do Google, selecione o domínio que você deseja apontar para este servidor e abrir registros DNS clicando. Clique Mostrar configurações avançadas na parte inferior da página, então Gerenciar DNS dinâmico e crie um novo disco como você faria com outros registros. Finalmente clique Veja as credenciais dinâmicas do DNS então Visualizar e observe as credenciais.
3. Instale e cofigure ddclient
Instale -o (você pode pular as perguntas durante a instalação pressionando Enter):
APT Instale ddclient
Edite a configuração com:
sudo nano /etc /ddclient.conf
Deve ser parecido com isso, mas com suas credenciais DNS que obtivemos anteriormente e o domínio dependendo do que você configurou na seção DNS dinâmica.
protocolo = dynDns2 use = servidor web = domínios.Google.com ssl = sim login = googlednsusername senha = googlednssassword yourDomain.com
Se você deseja atualizar vários registros DNS, basta repetir essas etapas e anexar a configuração no ddclient.arquivo conf.
4. Teste
A seguir, executa a sequência de atualização:
sudo ddclient -daemon = 0 -debug -verbose -noquiet
Se você vir uma linha no final da saída que mostra o Google respondeu com bom e seu endereço IP, está funcionando.
Receba: Bom Youripaddress
Teste a verificação duas vezes, você pode apontar seus DNs para um endereço IP falso, indo para o seguinte URL com seus detalhes:
https: // nome de usuário: senha@domínios.Google.com/nic/atualização?HostName = Subdomínio.seu domínio.com & myip = 1.2.3.4
Se você executar o daemon ddclient novamente, ele comparará seu endereço IP com o endereço que ele armazenou em cache (não com o que alteramos usando a solicitação GET acima); Portanto, pensará que seu IP não tem’T mudou. Então você precisa excluir seu cache e depois executar a sequência de atualização como abaixo.
sudo rm -f/var/cache/ddclient/ddclient.cache
Referência adicional
Veja o artigo do Google DNS para outras respostas.
O Google oferece DNS dinâmico
O Reddit e seus parceiros usam cookies e tecnologias semelhantes para proporcionar uma experiência melhor.
Ao aceitar todos os cookies, você concorda com o uso de cookies para fornecer e manter nossos serviços e site, melhorar a qualidade do Reddit, personalizar o conteúdo e publicidade do Reddit e medir a eficácia da publicidade.
Ao rejeitar cookies não essenciais, o Reddit ainda pode usar certos cookies para garantir a funcionalidade adequada de nossa plataforma.
Para mais informações, consulte nosso aviso de cookie e nossa política de privacidade .
Obtenha o aplicativo Reddit
Digitalize este código QR para baixar o aplicativo agora
Ou confira nas lojas de aplicativos
Bem -vindo ao seu amigável /r /homelab, onde técnicos e sysadmin de todos os lugares são bem -vindos para compartilhar seus laboratórios, projetos, construções, etc.
Membros online
por Sparkfist
Uma solução DNS dinâmica mais barata: DNS dinâmico do Google
Em vez de pagar US $ 25 a US $ 35 por um serviço DNS dinâmico aprimorado em algum lugar como o DynDNS ou NOIP, use o Google Domains. Eu pago US $ 12/ano pelo meu domínio e eles permitem DNS dinâmicos gratuitos com opções de nomes de domínio muito melhores e subdomínios ilimitados.
https: // suporte.Google.com/domínios/resposta/6147083?hl = en
Você também pode usar o DDClient para automatizar facilmente a atualização do IP descrito no link do Google.
Como um bônus lateral, montando o e -mail gratuito com um curinga *@yourDomain.com ou [email protected] um encaminhamento para uma conta do Gmail existente também é bem legal. Eu o uso da mesma forma que o seu [email protected], mas em vez disso, faça o [email protected], porque alguns lugares bloqueiam o Gmail ou bloqueie o + no email. Ajuda a controlar de onde vem o spam.
::editar:: Estou deixando o encaminhamento de e -mail com o Google porque bem, Gmail, mas mudei meu DNS para o Nível Free CloudFares, que eu não sabia que existia. Não há arrependimentos até agora e a migração aconteceu em apenas alguns minutos no máximo. Obrigado a U/Okrumm pela sugestão. Ainda tenho algumas torções para se exercitar porque o Cloudfare não funcionará com Mod_proxy, pois não respeita o redirecionamento. A menos que eu reinicite, não vou ver o valor agregado do Cloudfare. É uma pena que eu pudesse ver algum valor em sua mitigação de ameaças e log para fazer valer a pena.
Atualizando o Google domina DNS dinâmico com PowerShell
Ultimamente i’Eu tenho trabalhado na construção do meu laboratório de casa para brincar com coisas que eu’nunca penso em montar e tentar em nosso ambiente de desenvolvimento no trabalho. Isto’é uma explosão; EU’Configuraram os controladores de domínio local para mexer para testar scripts, construir servidores Linux para testar a replicação de e para servidores SQL e outros produtos de banco de dados relacionais, e até configurar o roteamento e o acesso remoto para que eu possa remotar VPN remoto na minha rede doméstica para armazenar e recuperar o código I’Eu tenho trabalhado ou mesmo usando -o para mostrar projetos de prova de conceito para outras pessoas. Isto’é incrivelmente legal e eu’aprendi muito no processo.
Quando você começa a falar sobre fazer coisas como servidores VPN domésticos (ou qualquer servidor doméstico para esse assunto), mais cedo ou mais tarde você enfrenta um problema espinhoso: como posso ter certeza de que sempre posso me conectar à minha rede doméstica remotamente? Boas notícias: você já tem um endereço IP!
Ter (ou saber) qual é o seu endereço IP doméstico oferece muita flexibilidade, porque se você souber, você pode registrar nomes de domínio e apontá -los para isso. Por exemplo, vamos’s dizer que eu queria expor um servidor (chamado “anão”) na minha rede doméstica para a Internet. Além das mudanças de rede e firewall na minha rede’S final (abrindo as portas corretas para encaminhamento, ativando o acesso remoto, etc.) eu também precisaria de um nome de domínio e entrada de host, para que ele soubesse resolver. Então eu poderia registrar um nome de domínio, como barbante.rede e tem anão.Murder de barqueiro.Resolução líquida para o meu endereço IP doméstico. Que’é muito mais fácil (e mais frio) de lembrar do que um endereço IP. Mas para fazer isso, você precisa conhecer o seu IP para definir o “A” registro para o servidor de nomes de domínio.
Parece bem à direita? A massagem é que não é’T Provavelmente você’vou memorizar seu endereço IP e, mesmo se você fez a maioria dos provedores de serviços de Internet (ISPs) que oferecem a banda larga doméstica Don’t fornecendo um endereço IP estático. Isso significa que se você precisar reiniciar seu modem, você não está’T garantiu obter o mesmo endereço. Que’é para não dizer que você pode’T tem um IP estático, mas eles geralmente fazem parte de uma oferta de negócios mais cara que provavelmente não é’vale a pena ter em sua casa.
DNS dinâmico
Lá’S uma solução, no entanto: DNS dinâmico. O dinâmico DNS é definido como um serviço que permite atualizar automaticamente um servidor de nome sem a necessidade de alterá -lo manualmente, geralmente depois que um IP mudou (mesmo sem que você saiba que mudou). O processo geralmente funciona assim:
- Você se inscreve com um serviço que oferece um serviço DNS dinâmico, como Dyn ou Cloudflare.
- Você instala um aplicativo de serviço em algum lugar da sua rede que monitora seu IP público para alterações e se conecta aos provedores e atualiza seus registros para apontar para um endereço IP atualizado automaticamente.
Isso pode parecer fácil, mas lá’S alguns gotchas: um, alguns serviços, como o Dyn, Aren’t grátis. Cloudflare tem uma solução gratuita, mas você precisa usar os servidores de nome para seus domínios (que podem ou não ser um quebra de negócio para você). Em segundo lugar, quase todas as ferramentas disponíveis gratuitamente que são executadas em sua rede são baseadas em Linux. Que por si só não é’T tão ruim quanto parece, mesmo que você não’T familiarizado com o Linux, você pode colocá -los em funcionamento rapidamente. O problema maior é que, se sua rede doméstica é principalmente baseada no Windows e você não’T tem algum hardware sobressalente para construir seu próprio servidor Linux (ou você não’quero girar VMs em sua máquina de casa), então você pode’t Use -os também (Atualização: parece que você também pode trabalhar com o Perl em suas máquinas locais, mas eu não tenho’Tentei ainda).
Também existe uma terceira opção: alguns roteadores caseiros mais novos de fornecedores como os serviços dinâmicos DNS provedores da Asus também incluídos no software OS do roteador. Então, se você tiver seu próprio roteador, isso pode ser uma opção.
Domínios do Google
Você pode estar se perguntando o que tudo isso tem a ver com PowerShell, certo? Recentemente, registrei alguns novos nomes de domínio no Google Domains, principalmente porque eles oferecem uma interface da web muito boa para usar e, como eu uso o Google para quase tudo na minha vida, isso fazia sentido (e eu não fiz’preciso ou quero mais uma conta online). Quando eu estava lá, criando alguns registros para redirecioná -los para o meu blog, notei algo:
Sob “Registros sintéticos” Eu notei uma opção DNS dinâmica. Clicando um pouco mais fundo, cheguei à página de ajuda para registros sintéticos e depois DNS dinâmico, que você pode ler aqui. Aqui’s tl; dr: o google oferece este serviço gratuitamente para domínios registrados em seu serviço e eles suportam o mesmo protocolo Dyndns2 que outros provedores dinâmicos de DNS fazem; portanto, os mesmos aplicativos (Linux) que você instalaria para os outros serviços também se aplica aqui.
Mas antes de fechar a janela pensando que eu’Dado construindo uma nova VM Linux no meu laboratório doméstico, vi isso:
E então fiquei muito empolgado, porque isso significava que eu poderia rolar minha própria solução para atualizar o serviço DNS dinâmico com PowerShell! Para que’é o que eu fiz.
Usando o PowerShell para atualizar seu registro dinâmico de DNS
Google’S API dinâmica de DNS é muito pouco menos que uma postagem HTTPS em um URL específico com alguns parâmetros embalados no post. O que faz funcionar, no entanto, é para cada nome dinâmico do host DNS que você fornece, você recebe um nome de usuário e senha gerados automaticamente que precisam fazer parte da postagem. PowerShell é realmente adequado para esse tipo de automação, graças ao Invoke-Webrequest (MSDN Link). Isto’S construído para isso, e até suporta https. Caramba, até suporta a implementação do nome de usuário: senha na solicitação por meio de um objeto pscredencial.
Tudo o que eu realmente precisava fazer era envolver o código em uma função e adicionar alguns parâmetros que podem ser transmitidos, invocar a solicitação da web e analisar os resultados. Aqui’é um trecho da função maior que mencionei acima:
[CmdletBinding(SupportsShouldProcess = $true)] Param ( [parameter(Mandatory=$true)] [pscredential] $credential, [parameter(Mandatory = $true)] [string]$domainName, [parameter(Mandatory = $true)] [string]$subdomainName, [parameter(Mandatory = $false)] [string]$ip, [parameter(Mandatory = $false)] [switch]$offline, [parameter(Mandatory = $false)] [switch]$online ) begin < $webRequestURI = "https://domains.google.com/nic/update" $params = @<>> processo < $splitDomain = $domainName.split(".") if ($splitDomain.Length -ne 2) < Throw "Please enter a valid top-level domain name (yourdomain.tld)" >$ subnddomain = $ subdomainName + "." + $ domainName $ splitDomain = $ subnddomínio.dividir(".") se ($ splitDomain.Comprimento -ne 3) < Throw "Please enter a valid host and domain name (subdomain.yourdomain.tld)" >$ params.Add ("hostname", $ subanddomain) se ($ ip -end !$ offline) < $ipValid = $true $splitIp = $ip.split(".") if ($splitIp.length -ne 4) < $ipValid = $false >Foreach ($ i em $ splitip) < if ([int] $i -lt 0 -or [int] $i -gt 255) < $ipValid = $false >> se (!$ ipvalid) < Throw "Please enter a valid IP address" >$ params.Add ("myip", $ ip)> elseif ($ offline -e !$ online) < $params.Add("offline","yes") >elseif ($ online e !$ offline) < $params.Add("offline","no") >If ($ PSCMDLET.Deveprocessar ("$ subanddomain", "adicionando IP"))) < $response = Invoke-WebRequest -uri $webRequestURI -Method Post -Body $params -Credential $credential $Result = $Response.Content $StatusCode = $Response.StatusCode if ($Result -like "good*") < $splitResult = $Result.split(" ") $newIp = $splitResult[1] Write-Verbose "IP successfully updated for $subAndDomain to $newIp." >se ($ como resultado "NOCHG*") < $splitResult = $Result.split(" ") $newIp = $splitResult[1] Write-Verbose "No change to IP for $subAndDomain (already set to $newIp)." >se ($ resultado -eq "badauth") < Throw "The username/password you providede was not valid for the specified host." >if ($ resultado -eq "nohost") < Throw "The hostname you provided does not exist, or dynamic DNS is not enabled." >if ($ resultado -eq "notfqdn") < Throw "The supplied hostname is not a valid fully-qualified domain name." >se ($ resultado -eq "batagent") < Throw "You are making bad agent requests, or are making a request with IPV6 address (not supported)." >se ($ resultado -eq "abuso") < Throw "Dynamic DNS access for the hostname has been blocked due to failure to interperet previous responses correctly." >if ($ resultado -eq "911") < Throw "An error happened on Google's end; wait 5 minutes and try again." >> $ resposta>
EU’destacou as linhas que mostram como o corpo do post http recebe parâmetros e onde a solicitação está sendo feita. O restante do código é a verificação de erros para garantir que as pessoas colocassem valores válidos para as coisas que o Google espera (e elas também têm erro de verificação do lado deles, mas se você continuar jogando pedidos ruins para eles, eles’lL sinaliza seus pedidos e rejeitá -los a todos. Apenas um aviso justo, então não’t spam -os com pedidos ruins).
Use você mesmo!
Com este código, você pode definir agora usar o PowerShell nativo para manter seus DNs dinâmicos do Google DNS atualizados e sem a necessidade de máquinas ou VMs separadas para executar utilitários! Peguei o código acima e criei um módulo, chamado Googledynamicdnstools. Este módulo pode ser encontrado no meu github, e eu’também estou orgulhoso de anunciar isso Eu o disponibilizei na Galeria PowerShell! Isso significa que você pode instalar o módulo de duas maneiras:
- Em máquinas que executam o Windows 10 (ou com a estrutura de gerenciamento 5 instaladas), você pode executar a instalação -módulo -name googledynamicdnstools (você’Também precisará executar o PowerShell como administrador). Mais detalhes sobre o uso deste método podem ser encontrados na página da galeria, leia -me.
- Se você não for’quero instalar o módulo através da galeria, você pode baixar o código do meu github e instalá -lo por conta própria.
Exemplo de automação
Depois de ter o módulo, você pode criar uma tarefa programada para executar a cada hora e atualizar sua entrada dinâmica de DNS. Para minha configuração, escrevi um .Arquivo de script PSD1 e declarou algumas variáveis, criou um objeto credencial do texto simples e depois ligue para o módulo’S Função para enviar a solicitação para o Google. Aqui’S uma amostra:
Import-Module googledynamicdnsTools $ logdate = get-date $ logFileName = "Googlednsupdatelog_" + $ logdate.Mês + $ logdate.Dia + $ logdate.Ano + "_" + $ logdate.Hora + $ logdate.Minuto + $ logdate.Segundo + ".txt "$ apiusERID =" myUniqueUserID "$ apipassword =" myUniQuePassword "$ SecurePassword = ConvertTo -Securestring -String $ apipassword -asplainText -force $ credencial = novo sistema de objectos.Gerenciamento.Automação.PSCREDENTAL $ apiusERID, $ SecurePassword Start -transcript -Path ("C: \ dnsllogs \" + $ logFileName) update -Googledynamicdns -credencial $ credencial -DomainName "Boatmurder.net "-subdomainname" dwarf "-verbose #clean up arquivos de log antigos get -childitem -path" c: \ dnssllogs "| where -object | remove -item -verbose stop -transcript
No roteiro acima, eu’estou fazendo algumas outras coisas fora da função principal. Primeiro eu’m criando manualmente um objeto pscredencial com um nome de usuário e senha de texto claro. Que’provavelmente não é a melhor maneira de fazer isso, mas este é um exemplo rápido. Para fins de registro, estou usando o transcrito inicial para capturar toda a saída do terminal e salvar uma nova transcrição cada vez que a tarefa é executada para que eu possa revisar a saída para erros, se precisar. Finalmente, para ter certeza de que não’t preenchido meu disco rígido com arquivos de log, a última parte do script parece no diretório onde eu’m armazenando os arquivos de transcrição e purga qualquer coisa com mais de 30 dias de idade.
Em seguida, criei uma tarefa programada para o Windows para chamar PowerShell.exe com um parâmetro igual ao nome do script e defina -o a cada hora. Dessa forma, se meu IP mudar porque meu modem a cabo ou roteador ficará offline no máximo eu’Eu terá uma hora até que o script seja executado e atualize minha entrada DNS.
É verdade que se minha energia sair e meu computador estiver desligado, todas as apostas estão desligadas (mas que’s para que são os sistemas UPS, certo?)
Daqui para frente
Espero que o código e os exemplos aqui possam ajudá -lo a configurar algo tão útil quanto um serviço dinâmico de dinâmico de peso atualizador de serviço em uma máquina que você usa todos os dias. Parte da razão pela qual fiz deste um módulo foi em um esforço para adicionar mais recursos da API do Google DNS eventualmente, mas senti que este foi um começo muito bom. Sinta -se à vontade para revisar meu código e fazer alterações. EU’D Adoro obter um pedido de tração! E deixe -me saber o que você acha do módulo se você o pegar na galeria PowerShell também.