Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정하는 방법
모든 연결을 안전한 연결로 리디렉션하는 것이 좋습니다.
요약
Google 도메인을 사용하여 동적 DNS를 설정하는 방법에 대해 배우고 Certbot을 사용하여 Let ‘s Encrypt의 SSL 인증서로 사이트를 보호하십시오.
키 포인트:
1. 동적 DNS는 도메인 이름을 동적 IP 주소로 가리킬 수 있습니다.
2. Google 도메인은 모든 도메인 구매와 함께 무료로 동적 DNS를 제공합니다.
삼. 이 자습서는 Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정하는 방법을 보여줍니다.
질문:
1. 동적 DNS를 사용해야하는 이유는 무엇입니까??
답변: 동적 DNS는 사용자가 장치의 IP 주소를 지속적으로 업데이트하지 않고도 IP 주소를 변경할 수 있습니다. 이것은 원격으로 일하고 항상 사용할 수있는 신뢰할 수있는 연결이 필요한 사람들에게 유용합니다.
2. Google 도메인이란 무엇입니까??
답변: Google 도메인은 사용자에게 자신의 도메인 이름을 등록 할 수있는 기회를 제공하는 도메인 레지스트라입니다.
삼. Google 도메인 사용의 이점은 무엇입니까??
답변: Google 도메인의 이점에는 간단한 인터페이스, 사용하기 쉬운 도구, 저렴한 가격, 도메인 제어 및 Google Apps와의 통합이 포함됩니다.
4. Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정하기위한 권장 서버 환경은 무엇입니까??
답변: 권장 서버 환경은 우분투 18입니다.Apache 2를 갖는 04 LTS, ddClient 3.8.3 및 Certbot 0.27.0.
5. Google 도메인에서 동적 DNS를 어떻게 설정합니까??
답변: Google 도메인에서 동적 DNS를 설정하려면 Google 도메인 계정에 로그인하고 도메인을 선택하고 DNS 설정으로 이동하고 “고급 설정 표시”를 클릭하고 “동적 DNS 관리”클릭을 클릭하고 서브 도메인 또는 루트 도메인의 이름으로 새 레코드를 작성해야합니다.
6. ddclient 란 무엇입니까??
답변: DDClient는 동적 IP 주소로 DNS 레코드를 자동으로 업데이트하는 동적 DNS 클라이언트입니다.
7. ddclient를 어떻게 설정합니까??
답변: DDClient를 설정하려면 Ubuntu 서버에 DDClient를 설치하고 DDClient 구성 파일을 구성하고 DDClient 서비스를 시작해야합니다.
8. 동적 DNS 용 웹 서버를 어떻게 구성합니까??
답변: 동적 DNS 용 웹 서버를 구성하려면 Apache 가상 호스트를 설정하여 도메인을 가리키고 Certbot을 사용하여 SSL을 구성해야합니다.
9. SSL 인증서는 무엇입니까??
답변: SSL 인증서는 웹 사이트의 ID를 인증하고 웹 사이트와 사용자의 브라우저간에 전송 된 데이터를 암호화하는 디지털 인증서입니다.
10. Certbot을 사용하여 Let ‘s Encrypt의 SSL 인증서로 사이트를 어떻게 보호합니까??
답변: CertBot을 사용하여 Let ‘s Encrypt의 SSL 인증서로 사이트를 보호하려면 서버에 CertBot을 설치하고 CertBot을 실행하여 SSL 인증서를 얻고 설치하고 SSL 인증서를 사용하도록 웹 서버를 구성해야합니다.
11. Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정하는 데 얼마나 걸립니까?
답변: 1 시간 안에 Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정할 수 있습니다.
12. 다른 도메인 레지스트라와 함께 동적 DNS를 사용할 수 있습니까??
답변: 예, 다른 도메인 레지스트라와 함께 동적 DNS를 사용할 수 있지만이 자습서는 Google 도메인을 사용하여 동적 DNS 설정에 중점을 둡니다.
13. 모든 연결을 안전한 연결로 리디렉션하는 목적은 무엇입니까??
답변: 모든 연결을 안전한 연결로 리디렉션하면 사용자와 웹 사이트 간의 모든 커뮤니케이션이 암호화되고 안전 해지면서 개인 정보 보호 및 도청에 대한 보호 기능을 제공합니다.
14. Ubuntu 서버를 실행하기위한 시스템 요구 사항은 무엇입니까??
답변: Ubuntu 서버에는 1GHz 프로세서, 512MB RAM 및 2GB의 하드 드라이브 공간을 포함하여 최소한의 시스템 요구 사항이 있습니다.
15. Google 도메인과 함께 동적 DNS를 사용할 때 제한 사항이나 제한 사항이 있습니까??
답변: Google 도메인은 생성 할 수있는 동적 DNS 레코드 수 또는 허용되는 업데이트 빈도에 대한 제한 사항 또는 제한 사항이있을 수 있습니다.
Google 도메인 및 Ubuntu Servertechnology를 사용하여 동적 DNS를 설정하는 방법
모든 연결을 안전한 연결로 리디렉션하는 것이 좋습니다.
Google은 동적 DNS를 제공합니까?
об йтоэ странице
м е р р регистрировали подо 착취 ay rzа ф징퍼, исход 넘추 타 ay сети. с пом거나 ю это인지 страницы м주는 сможем определить, что з просы отправляете именно, а не робот. почему это могло произойти?
эта страница отобр은 Âется в тех Â сл 나아가 · 추, ∈огда автомати인지 скими системи Google регтрирр곽막우 ся 테 추 법구추 추 님. котор ое нарушают условия использования. странира перестанет отобр은 жаться после того, как эти запросы прекратся. до отого момента для использования слу 갑기 Google необ 영향.
источником запросов может служить вредоносное по, подключаемые модули браузера или скрипт, насое 밑 밑 밑보관 сзлку ыапросов. если вл используете общий доступ в интернет, проблема 갑새 갑새 딘 악 с сомпером с с с с с саким 테 IP-адесом → Â 궤. обратитесь к своему системному администратору. подроб 변태.
проверка по слову может татак뿐 아니라 자기 появляться, если вы В 갑 갑격적 В Â водите слож ные запросы, об협 ораспронон혁 ™ rапротототототототото술도 있습니다. емами, или вводите запросы очень часто.
Google 도메인 및 Ubuntu 서버 기술을 사용하여 동적 DNS를 설정하는 방법
Google 도메인을 사용하여 동적 DNS를 설정하는 방법을 배우고 LET의 SSL 인증서로 사이트를 보호하십시오’s certbot을 사용하여 암호화합니다.
동적 DNS는 도메인 이름을 동적 IP 주소로 가리킬 수있는 서비스입니다. 이것은 웹 사이트의 IP 주소가 주기적으로 변경됨을 의미합니다.
Google 도메인은 모든 도메인 구매와 함께 무료로 동적 DNS를 제공합니다. 1 시간 안에 Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정할 수 있습니다.
이 자습서는 Google 도메인 및 Ubuntu 서버를 사용하여 동적 DNS를 설정하는 방법을 보여줍니다.
목차
- 동적 DNS를 사용하는 이유?
- Google 도메인이란 무엇입니까??
- 1 단계 : Google 도메인에서 동적 DNS 설정
- 2 단계 : DDClient를 설정합니다
- 3 단계 : 웹 서버를 구성합니다
동적 DNS를 사용하는 이유?
Dynamic DNS는 사용자가 장치의 IP 주소를 지속적으로 업데이트하지 않고도 IP 주소를 변경할 수있는 서비스입니다. 이것은 어디에서나 IP 주소에 액세스 할 수 있도록하기 전보다 훨씬 쉬워지며, 원격으로 일하고 항상 사용할 수있는 신뢰할 수있는 연결이 필요한 사람들에게 유용합니다.
동적 DNS는 클라이언트 측정이 필요하지 않다는 점에 유의해야합니다. Dynamic DNS 서비스는 모든 작업을 수행합니다.
Google 도메인이란 무엇입니까??
Google 도메인은 사용자에게 자신의 도메인 이름을 등록 할 수있는 기회를 제공하는 도메인 레지스트라입니다.
Google 도메인은 타사를 통과하지 않고도 자신의 도메인 이름을 얻을 수있는 기회를 제공합니다. 또한 귀하의 웹 사이트 또는 블로그에 직접 연결되는 자신의 개인 이메일 주소를 사용할 수있는 기능을 제공합니다.
Google 도메인의 이점
Google 도메인의 이점은 간단한 인터페이스, 사용하기 쉬운 도구 및 저렴한 가격을 제공한다는 것입니다. Dyndns와 같은 다른 서비스의 가격과 비교하여 도메인을 많이 제어 할 수 있습니다 ($ 24.제한된 기능으로 글을 쓰는 시점에서 1 년에 95). 거기 있습니다 무료 서비스 NOIP처럼.com이지만 사용 된 도메인 이름을 제어 할 수 없으며 30 일마다 사용법을 확인해야 할 수도 있습니다.
Google 도메인은 모든 도메인, 이메일 및 연락처가 포함 된 개인 대시 보드를 제공합니다. 또한 Google Apps 통합을 얻으므로 한 장소에서 모든 이메일, 캘린더 및 채팅에 액세스 할 수 있습니다.
환경
- 우분투 18.04 LTS 나는 이것이 나중에 버전에서 작동 할 것이라고 확신하지만 DigitalOcean의 제작 서버는이 버전을 실행합니다.
- 아파치 2
- ddclient 3.8.3- 설치
- certbot 0.27.0- 설치
1 단계 : Google 도메인에서 동적 DNS 설정
- Google 도메인에 로그인하십시오.
- 도메인 이름을 선택하십시오.
- 화면 왼쪽에서 ‘DNS’를 선택하십시오. 기본 이름 서버 활성화되어야합니다. 그렇지 않으면 작동하지 않습니다.
- 딸깍 하는 소리 고급 설정을 보여줍니다.
- 딸깍 하는 소리 동적 DNS를 관리합니다 그리고 새로운 레코드를 만듭니다.
- 하위 도메인 또는 루트 도메인의 이름을 입력하여 동적 IP를 할당합니다.
- 딸깍 하는 소리 구하다.
여러 하위 도메인을 추가하려면 ‘동적 합성 레코드 설정’의 4 단계에 도달하면 이것이 제작하기위한 첫 번째 변화입니다. 때로는 ‘@'( “루트 도메인”또는 “Naked Domain”)을 추가하는 완제품에 대한 액세스를 공유 할 수 있기 때문에. 그렇지 않은 경우 선택한 하위 도메인을 추가하십시오.
내가 고려한 것은 나중에 필요한 경우 Github 페이지와 같은 독특한 하위 도메인을 항상 전달할 수 있다는 것입니다. 내 웹 서버에서 내 구성 파일은 요청 방향을 제어합니다. 그래서 트래픽이 루트 도메인 위치로 이동하면 나에게 가장 적합합니다.
지침의 나머지 단계를 완료하십시오.
2 단계 : DDClient를 설정합니다
동적 도메인 이름 시스템은 도메인 이름과 관련된 IP 주소를 자동으로 업데이트하는 서비스이며, 동적 IP 주소를 사용하는 웹 사이트에 액세스하는 데 유용 할 수 있습니다 (E.g., 웹 호스팅 서비스의 경우) 인터넷에서. 이 서비스는 DDClient에서 제공 할 수 있습니다. DDClient는 IP 주소의 변경 사항을 반영하도록 도메인 이름의 컴퓨터 레코드를 업데이트하는 소프트웨어입니다.
Google 도메인 지원 지원을 사용하여 DDClient가 올바르게 작동하도록 할 수 없으므로 Google 도메인 지원없이 지침을 선택했습니다.
틀 구성 파일 ~을 위한 ddclient 생성 ~에 의해 Debconf # # /등/ddclient.콘크리트 악마=300 규약=Dyndns2 사용=편물 섬기는 사람=도메인.Google.com SSL=예 로그인=생성 된_username 비밀번호='Generated_Password' 틀 보다 그만큼 메모 아래에 @.your_domain.tld
구성 테스트 :
참고 : 여기서 문제가 발생하면 단일 따옴표를 제거해야 할 수도 있습니다
sudo ddclient -daemon = 0 -debug -verbose -noquiet
출력이 “성공”으로 끝나면 설정을 올바르게 완료했습니다. 출력은 다음과 유사해야합니다
성공: @.당신의 도메인.com : 건너 뛰기 : IP 주소는 이미 12로 설정되었습니다.80.274.74.
그런 다음 URL이 전파되었는지 확인했습니다. 기본 URL이 성공하면 www를 확인하십시오.당신의 도메인.com) 그런 다음 www가 있거나없는 임의의 하위 도메인으로 확인했습니다. 결과에 대해 기분이 좋으면 다음 단계로 옮겼습니다.
3 단계 : 웹 서버를 구성합니다
내가 선택한 도메인은 페이지에서 끝나서 URL이 올바르게 작동하기 위해 안전한 연결을해야했습니다. 나는 이것을 알아내는 데 얼마나 오래 걸렸는지 말하지 않을 것입니다. 그러나 이것이 다음 단계 인 이유입니다 ;-). 기본값을 사용하여 .conf 파일 내가 시작할 준비가되었습니다.
동적 DNS와 함께 사용하도록 설정하는 각 사이트/도메인 으로이 프로세스를 반복하십시오.
깨끗한 conf 파일 복사 :
Sudo CP 000-Default.conf domain_name.콘크리트
제공 할 도메인을 제공하도록 파일을 조정하십시오
*: 80> serverAdmin [email protected] servername sub-domain.당신의 도메인.Com Serveralias www.하위 도메인.당신의 도메인.Com DocumentRoot/var/www/sub_domain errorlog $apache_log_dir>/오류.log customLog $apache_log_dir>/입장.로그 결합
리디렉션이 필요한 경우
만화책 서버를 언급했는데 물론 새로운 도메인 구조로 액세스해야했습니다. 그래서 여기에 내 서버에 가상 호스트를 추가하여 현실로 만드는 방법의 예가 있습니다.
*: 80> serverAdmin [email protected] servername sub-domain.당신의 도메인.Com Serveralias www.하위 도메인.당신의 도메인.Com DocumentRoot/var/www/sub_domain errorlog $apache_log_dir>/오류.log customLog $apache_log_dir>/입장.로그 결합 /> proxypass http : // 192.168.1.76 : 2202/proxypassreverse http : // 192.168.1.76 : 2022/ /관리자> proxypass http : // 192.168.1.76 : 2203/admin proxypassreverse http : // 192.168.1.76 : 2203/관리자
사용할 사이트를 활성화하십시오
sudo a2ensite domain_conf.콘크리트
CertBot을 사용하여 SSL 인증서 생성 – 선택 사항이 아닌 선택 사항
모든 연결을 안전한 연결로 리디렉션하는 것이 좋습니다.
sudo certbot -apache -d nextcloud.당신의 도메인.com -d www.다음 클라우드.당신의 도메인.com
당신의 .conf 파일은 다음과 같이 보이며 안전한 연결이 생성됩니다 .conf 파일을 자동으로.
*: 80> ServerAdmin [email protected] servername sub-domain.당신의 도메인.Com Serveralias www.하위 도메인.당신의 도메인.Com DocumentRoot/var/www/sub_domain errorlog $apache_log_dir>/오류.log customLog $apache_log_dir>/입장.Rewritecond % = Sub-Domain의 로그 결합 된 RewriteEngine을 기록합니다.당신의 도메인.com [또는] Rewritecond % = www.하위 도메인.당신의 도메인.com rewriterule ^ https : // %% [end, ne, r = 영구]
그게 다야, 브라우저를 열고 원하는 URL로 이동하면 찾고있는 사이트가 보일 것입니다. 이것을 시도했는지 그리고 그것이 당신에게 효과가 있는지 알려주십시오.
Cansin Acarer
Google 도메인에서 DDClient를 사용하여 동적 DNS 설정을 업데이트하는 방법
도메인 또는 하위 도메인 이름을 사용하여 인터넷을 통해 인터넷을 통해 액세스하려는 웹 서버, VPN 또는 다른 장치를 실행중인 경우, 정적 IP 주소가 필요하거나 (많은 ISP가 추가로 제공하지 않거나 충전하지 않는) IP 주소가 변경 될 때마다 DNS 레코드를 변경하는 동적 DNS 설정이 필요합니다. Google 도메인은이 서비스를 무료로 제공하며 NOIP와 같은 문자열없이’s 확인 요구 사항 30 일마다.
1. 네트워크 인터페이스를 식별하십시오
DDClient가 사용할 네트워크 인터페이스의 이름을 알아야하므로 다음 명령을 실행하십시오
Sudo lshw
출력에서 *-네트워크로 시작하는 다음 줄을 찾아 사용중인 네트워크 인터페이스의 논리적 이름을 기록하십시오. 이 장치는 이더넷을 통해 연결되었으므로 아래 사례의 경우 ETH0입니다.
[의 뜻. ] *-네트워크 : 0 비활성화 된 설명 : 무선 인터페이스 물리 ID : 1 논리 이름 : WLAN0 [. ] *-네트워크 : 1 설명 : 이더넷 인터페이스 물리 ID : 2 논리 이름 : eth0 [. ]]
2. Google 도메인에서 DNS 자격 증명을 얻습니다
Google 도메인에 로그인 하고이 서버를 가리킬 도메인을 선택하고 DNS를 클릭하여 DNS 레코드를 엽니 다. 딸깍 하는 소리 고급 설정을 보여줍니다 그러면 페이지 하단에서 동적 DNS를 관리합니다 다른 기록과 마찬가지로 새로운 레코드를 만듭니다. 마지막으로 클릭하십시오 동적 DNS 자격 증명을 봅니다 그 다음에 보다 자격 증명에 주목하십시오.
삼. DDClient를 설치하고 조정하십시오
설치 (Enter를 누르면 설치 중에 질문을 건너 뛸 수 있습니다) : :
적절한 설치 ddclient
다음과 같이 구성을 편집하십시오
sudo nano /etc /ddclient.콘크리트
이것과 비슷해 보이지만, 우리가 이전에 얻은 DNS 자격 증명을 사용하면 도메인은 동적 DNS 섹션에서 설정 한 내용에 따라 다릅니다.
프로토콜 = Dyndns2 사용 = 웹 서버 = 도메인.Google.com ssl = 예 로그인 = googlednsusername password = googlednspassword yourdomain.com
여러 DNS 레코드를 업데이트하려면이 단계를 반복하고 DDClient의 구성을 추가하십시오.conf 파일.
4. 테스트
다음은 업데이트 순서를 실행합니다
sudo ddclient -daemon = 0 -debug -verbose -noquiet
Google이 응답 한 결과를 보여주는 출력 끝을 향한 선이 보이면 좋은 IP 주소가 작동합니다.
수신 : 좋은 youripaddress
더블 확인을 테스트하십시오. 세부 사항이있는 다음 URL로 이동하여 DNS를 가짜 IP 주소로 가리킬 수 있습니다
https : // username : [email protected]/nic/업데이트?hostname = sub 도메인.당신의 도메인.com & myip = 1.2.삼.4
DDClient 데몬을 다시 실행하면 IP 주소를 캐시 된 주소와 비교합니다 (위의 GET 요청을 사용하여 변경 한 것과는 달리). 따라서 IP가 있다고 생각할 것입니다’t 변경. 따라서 캐시를 삭제 한 다음 아래와 같이 업데이트 시퀀스를 실행해야합니다.
Sudo rm -f/var/cache/ddclient/ddclient.은닉처
추가 참조
다른 응답은 Google DNS 도움말 기사를 참조하십시오.
Google은 동적 DNS를 제공합니까?
Reddit과 그 파트너는 쿠키와 유사한 기술을 사용하여 더 나은 경험을 제공합니다.
모든 쿠키를 수락함으로써 귀하는 서비스 및 사이트를 제공하고 유지 관리하기 위해 쿠키 사용에 동의하며, Reddit의 품질을 향상시키고, Reddit 컨텐츠 및 광고를 개인화하며, 광고의 효과를 측정합니다.
비 필수 쿠키를 거부함으로써 Reddit은 여전히 특정 쿠키를 사용하여 플랫폼의 적절한 기능을 보장 할 수 있습니다.
자세한 내용은 쿠키 통지 및 개인 정보 보호 정책을 참조하십시오 .
Reddit 앱을 얻으십시오
이 QR 코드를 스캔하여 지금 앱을 다운로드하십시오
또는 앱 스토어에서 확인하십시오
친절한 /r /homelab에 오신 것을 환영합니다.
온라인 회원
SparkFist에 의해
저렴한 동적 DNS 솔루션 : Google Dynamic DNS
Dyndns 또는 NOIP와 같은 일부 장소를 통해 향상된 Dynamic DNS 서비스에 대해 $ 25- $ 35를 지불하는 대신 Google 도메인을 사용하십시오. 나는 이미 내 도메인에 대해 연간 $ 12를 지불하고 훨씬 더 나은 도메인 이름 선택과 무제한 하위 도메인을 가진 자유 동적 DNS를 허용합니다.
https : // support.Google.com/도메인/답변/6147083?HL = en
DDClient를 사용하여 Google의 링크에 설명 된 IP 업데이트를 쉽게 자동화 할 수 있습니다.
사이드 보너스로 와일드 카드로 이메일 무료 전달 *@yourdomain.com 또는 yourname@yourdomain.기존 Gmail 계정에 대한 com도 꽤 멋지다. 나는 당신의 이머 메일+@gmail과 비슷하게 사용합니다.com 그러나 대신 웹 사이트@mydomain을 수행하십시오.com 일부 장소는 이메일에서 +를 차단하거나 블록을 평평하게하기 때문에. 스팸의 출처를 제어하는 데 도움이됩니다.
::편집하다:: 잘 Gmail 때문에 Google으로 이메일 전달을 남겨두고 있지만 DNS를 내가 몰랐던 CloudFares Free Tier로 전환했습니다. 지금까지 후회하지 않고 최대 몇 분 안에 이주가 발생했습니다. 제안해 주신 u/okrumm에게 감사드립니다. CloudFare는 MOD_PROXY와 함께 작동하지 않기 때문에 여전히 운동 할 약간의 꼬임이 있습니다. 내가 다시 해제하지 않는 한 cloudfare의 부가 가치를 보지 않을 것입니다. 위협 완화에서 약간의 가치를 볼 수 있기 때문에 너무 나쁩니다.
PowerShell으로 Google 도메인 동적 DNS 업데이트
최근에 나는’VE는 내 홈 실험실을 구축하여 내가 그 일을 가지고 놀기 위해 노력하고 있습니다’D 직장에서 개발 환경에서 설정하고 노력하는 것을 생각조차하지 않습니다. 그것’S는 폭발했다. 나’VE는 스크립트 테스트를 위해 엉망으로 지역 도메인 컨트롤러를 설정하고 SQL 서버 및 기타 관계형 데이터베이스 제품에 대한 복제를 테스트하기 위해 Linux 서버를 구축하고, 코드를 저장하고 검색하기 위해 홈 네트워크에 원격 VPN을 만들 수 있도록 라우팅 및 원격 액세스를 설정하기까지합니다’VE는 작업을 수행하거나 다른 사람들에게 개념 증명 프로젝트를 과시하기 위해 그것을 사용했습니다. 그것’s는 미친 듯이 시원하고 i’그 과정에서 많은 것을 배웠습니다.
Home VPN 서버 (또는 해당 문제에 대한 홈 서버)와 같은 작업에 대해 이야기하기 시작하면 조만간 가시적 인 문제에 대해 실행합니다. 항상 홈 네트워크에 원격으로 연결할 수 있는지 확인하십시오? 좋은 소식 : 이미 IP 주소가 있습니다!
홈 IP 주소가 무엇인지 (또는 아는) 유연성을 많이 제공합니다. 예를 들어,하자’s 서버를 노출시키고 싶다고 말합니다 ( “난쟁이”) 내 홈 네트워크에서 인터넷에. 내 네트워크의 네트워킹 및 방화벽 변경 외에’s end (전달에 적합한 포트 열기, 원격 액세스 활성화 등) 도메인 이름과 호스트 항목도 필요하므로 해결 방법을 알았습니다. 그런 다음 Boatmurder와 같은 도메인 이름을 등록 할 수 있습니다.그물, 난쟁이가 있습니다.보트 머더.내 홈 IP 주소로의 순결. 저것’IP 주소보다 훨씬 쉽고 기억하기가 훨씬 쉽습니다. 그러나 그렇게하려면 “ㅏ” 도메인 이름 서버에 대한 기록.
깔끔하게 들립니다? 문지름은 그것이 됐다는 것입니다’당신은 아마도’IP 주소를 암기하려고, 홈 광대역 돈을 제공하는 대부분의 인터넷 서비스 제공 업체 (ISP)를 수행하더라도’정적 IP 주소를 제공합니다. 즉, 모뎀을 재부팅 해야하는 경우’t 동일한 주소를 얻도록 보장됩니다. 저것’당신이 할 수 있다고 말할 수는 없습니다’t 정적 IP를 가지고 있지만 일반적으로 아마도 더 비싼 비즈니스 제품의 일부입니다’당신의 집에있는 비용의 가치가 있습니다.
동적 DNS
거기’그러나 솔루션 : 동적 DNS. Dynamic DNS는 서비스로 정의되어 있으며, 일반적으로 IP가 변경 된 후에도 수동으로 변경할 필요없이 이름 서버를 자동으로 업데이트 할 수 있습니다 (변경 되었음에도 불구하고). 프로세스는 일반적으로 다음과 같이 작동합니다
- Dyn 또는 CloudFlare와 같은 동적 DNS 서비스를 제공하는 서비스에 가입합니다.
- 당신은 당신의 네트워크 어딘가에 공개 IP를 모니터링하고 공급자에 연결하고 공급자에게 연결하고 레코드를 업데이트하여 업데이트 된 IP 주소를 자동으로 가리키는 서비스 애플리케이션을 설치합니다.
쉽게 들릴지 모르지만 거기에 있습니다’s 몇 개의 gotchas : 하나, Dyn, Aren과 같은 일부 서비스’t 무료. CloudFlare에는 무료 솔루션이 있지만 도메인에 이름 서버를 사용해야합니다 (이는 거래 차단기가 될 수도 있고 아닐 수도 있음). 둘째, 네트워크에서 실행되는 자유롭게 사용 가능한 거의 모든 도구는 Linux 기반입니다. 그 자체로는입니다’당신이 무가비하더라도 소리처럼 나쁘다’l Linux에 익숙한 것은 당신이 그것들을 만들고 꽤 빨리 실행할 수 있습니다. 더 큰 문제는 홈 네트워크가 대부분 Windows 기반이고 당신이 돈을’T 자신의 Linux 서버를 구축하기 위해 여분의 하드웨어가 있습니다 (또는 Don Don’홈 머신에서 VM을 회전시키고 싶다)’그것들을 사용하십시오 (업데이트 : 현지 기계에서도 Perl과 함께 작동 할 수있는 것 같습니다’t 아직 시도해 보았다).
세 번째 옵션도 있습니다. ASUS 제공 업체 Dynamic DNS Services와 같은 공급 업체의 새로운 홈 라우터도 라우터 OS 소프트웨어와도 번들로 제공됩니다. 따라서 자신의 라우터가 있다면 이것은 옵션 일 수 있습니다.
Google 도메인
당신은이 모든 것이 PowerShell과 어떤 관련이 있는지 궁금 할 것입니다? 최근에 나는 Google 도메인에 몇 가지 새로운 도메인 이름을 등록했습니다. 주로 사용할 수있는 멋진 웹 인터페이스를 제공하기 때문에 내 인생의 거의 모든 것에 Google을 사용하기 때문에 이것은 말이되었습니다’T 또 다른 온라인 계정이 필요하거나 원합니다). 내가 거기에 있었을 때, 내 블로그로 리디렉션하기 위해 몇 가지 레코드를 설정했을 때 나는 다음을 발견했습니다
아래에 “합성 기록” 동적 DNS 옵션을 발견했습니다. 조금 더 깊이 클릭하면 합성 레코드의 도움말 페이지와 동적 DNS로 만들었습니다. 여기’S TL; DR : Google은 서비스에 등록 된 도메인에 무료 로이 서비스를 제공하며 다른 동적 DNS 제공 업체와 동일한 Dyndns2 프로토콜을 지원하므로 다른 서비스에 설치 한 Linux (Linux) 응용 프로그램도 여기에도 적용됩니다.
그러나 창을 닫기 전에 창을 생각하고 있습니다’D 홈 실험실에서 새로운 Linux VM을 구축하고 있습니다
그리고 나서 정말 흥분했습니다. 그것은 PowerShell으로 동적 DNS 서비스를 업데이트하기 위해 내 솔루션을 굴릴 수 있기 때문에 정말 흥분했습니다! 하도록 하다’내가 한 일.
PowerShell을 사용하여 동적 DNS 레코드를 업데이트합니다
Google’S Dynamic DNS API는 일부 매개 변수가 게시물에 포장 된 특정 URL에 HTTPS 게시물보다 작습니다. 그러나 작동하는 것은 귀하가 제공하는 각 동적 DNS 호스트 이름에 대해 게시물의 일부가되어야하는 자동 생성 사용자 이름 및 비밀번호를 얻는 것입니다. PowerShell은 Invoke-Webrequest (MSDN Link) 덕분에 이러한 유형의 자동화에 실제로 자연스럽게 적합합니다. 그것’이를 위해 구축되었으며 HTTP도 지원합니다. 도대체, 그것은 pscredential 객체를 통한 요청에서 사용자 이름 : 비밀번호의 구현도 지원합니다.
내가 실제로해야 할 일은 함수에 코드를 래핑하고 전달할 수있는 일부 매개 변수를 추가하고 웹 요청을 호출하고 결과를 구문 분석하는 것입니다. 여기’위에서 언급 한 더 큰 기능의 스 니펫 :
[cmdletbinding (supportshouldProcess = $ true)] param ([parameter (필수 = $ true)] [pscredential] $ credential, [parameter (필수 = $ true)] [string] $ domainName, [parameter = $ true) [String] $ subdomain 이름, [strant] [stancet] [paramet] [stancet] [paramet] (필수 = $ false)] [switch] $ online) 시작 < $webRequestURI = "https://domains.google.com/nic/update" $params = @<>> 프로세스 < $splitDomain = $domainName.split(".") if ($splitDomain.Length -ne 2) < Throw "Please enter a valid top-level domain name (yourdomain.tld)" >$ subanddomain = $ subdomainname + "." + $ domainname $ splitdomain = $ subanddomain.나뉘다(".") if ($ splitdomain.길이 -ne 3) < Throw "Please enter a valid host and domain name (subdomain.yourdomain.tld)" >$ params.($ ip- and and !$ 오프라인) < $ipValid = $true $splitIp = $ip.split(".") if ($splitIp.length -ne 4) < $ipValid = $false >foreach ($ i in $ splitip) < if ([int] $i -lt 0 -or [int] $i -gt 255) < $ipValid = $false >> if (!$ ipvalid) < Throw "Please enter a valid IP address" >$ params.추가 ( "myip", $ ip)> elseif ($ offline- 및 !$ 온라인) < $params.Add("offline","yes") >elseif ($ 온라인 및 !$ 오프라인) < $params.Add("offline","no") >if ($ pscmdlet.DistProcess ( "$ subanddomain", "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." >if ($ result- "nochg*") < $splitResult = $Result.split(" ") $newIp = $splitResult[1] Write-Verbose "No change to IP for $subAndDomain (already set to $newIp)." >if ($ result -eq "badauth") < Throw "The username/password you providede was not valid for the specified host." >if ($ result -eq "nohost") < Throw "The hostname you provided does not exist, or dynamic DNS is not enabled." >if ($ result -eq "notfqdn") < Throw "The supplied hostname is not a valid fully-qualified domain name." >if ($ result -eq "badagent") < Throw "You are making bad agent requests, or are making a request with IPV6 address (not supported)." >if ($ result -eq "남용") < Throw "Dynamic DNS access for the hostname has been blocked due to failure to interperet previous responses correctly." >if ($ result -eq "911") < Throw "An error happened on Google's end; wait 5 minutes and try again." >> $ 응답>
나’VE는 HTTP Post의 본문이 매개 변수를 얻는 방법과 요청이 제작되는 위치를 보여주는 선을 강조했습니다. 코드의 나머지 부분은 사람들이 Google에 대한 유효한 가치를 지정할 수 있도록 오류 확인입니다, 그들’당신의 요청에 플래그를 지정하고 그들 모두를 거부하십시오. 공정한 경고, 그래서 돈’T BAD 요청으로 스팸).
직접 사용하십시오!
이 코드를 사용하면 이제 기본 PowerShell을 사용하여 Google 도메인을 최신 상태로 유지하고 별도의 기계 나 VM을 실행할 필요없이 유틸리티를 실행할 수 있습니다! 위의 코드를 가져 와서 googledynamicdnstools. 이 모듈은 내 github에서 찾을 수 있습니다’M은 또한 그것을 발표하게 된 것을 자랑스럽게 생각합니다 PowerShell 갤러리에서 사용할 수있었습니다! 즉, 모듈을 두 가지 방법 중 하나를 설치할 수 있습니다
- Windows 10 (또는 Management Framework 5 설치)을 실행하는 기계에서는 설치 모듈을 실행할 수 있습니다’ll PowerShell도 관리자로 실행해야합니다). 이 방법 사용에 대한 자세한 내용은 갤러리에서 찾을 수 있습니다.
- 당신이하지 않으면’t 갤러리를 통해 모듈을 설치하려고합니다. 내 github에서 코드를 다운로드하여 직접 설치할 수 있습니다.
예제 자동화
모듈이 있으면 매시간 실행하고 동적 DNS 항목을 업데이트 할 예정된 작업을 작성할 수 있습니다. 내 설정을 위해 나는 a를 썼다 .PSD1 스크립트 파일 및 일부 변수를 선언하고 일반 텍스트에서 자격 증명 객체를 생성 한 다음 모듈을 호출하십시오’S 기능 요청을 Google에 보낼 수 있습니다. 여기’S 샘플 :
import-module googledynamicdnstools $ logdate = get-date $ logfilename = "googlednsupdatelog_" + $ logdate.달 + $ logdate.Day + $ logdate.연도 + "_" + $ logdate.시간 + $ logdate.분 + $ logdate.두 번째 + ".txt "$ apiuserid ="myuniqueUserId "$ apipassword ="myUniquePassword "$ securePassword = convertTo -securestring -String $ apipassword -asplaintext -force $ credential = new -object System.관리.오토메이션.pscredential $ $ $ apiuserid, $ securepassword start -transcript -path ( "c : \ dnslogs \" + $ logfilename) update -googledynamicdns -Credential $ $ 자주인 -도메인 이름 "보트 머더.net "-subdomainName"dwarf " -Verbose #clean Up Old Log 파일 Get -ChildItem -Path"C : \ dnslogs "| where -object | remove -item -verbose stop -transcript
위의 스크립트에서 i’m 주요 기능 이외의 다른 일을하는 것. 첫번째로 나는’m 명확한 텍스트 사용자 이름과 비밀번호로 pscredential 객체를 수동으로 생성. 저것’아마도 가장 좋은 방법은 아니지만 이것은 빠른 예입니다. 로깅 목적으로 시작 트랜스크 스크립트를 사용하여 모든 터미널 출력을 캡처하고 작업이 실행될 때마다 새 사본을 저장하여 필요한 경우 오류에 대한 출력을 검토 할 수 있습니다. 마지막으로, 우리가하지 않도록하기 위해’t 내 하드 드라이브를 로그 파일로 채우고 스크립트의 마지막 부분은 내가있는 디렉토리에서 보입니다’m 전사 파일을 저장하고 30 일 이상 무엇이든 제거합니다.
다음으로 PowerShell을 호출하는 Windows Scheduled 작업을 만들었습니다.스크립트 이름과 동일한 매개 변수가있는 exe와 매시간 실행되도록 설정하십시오. 이렇게하면 케이블 모뎀이나 라우터가 최대 오프라인 상태가되어 IP가 변경되면’스크립트가 실행되고 DNS 항목을 업데이트 할 때까지 한 시간이 걸립니다.
물론 내 힘이 꺼지고 컴퓨터가 꺼져 있으면 모든 베팅이 꺼져 있습니다 (그러나’U UPS 시스템이 무엇인지, 맞습니다?))
앞으로
여기 코드와 예제가 매일 사용하는 기계에서 경량 동적 DNS 서비스 업데이터와 같은 유용한 것을 설정하는 데 도움이되기를 바랍니다. 내가 이것을 만든 이유 중 하나는 결국 Google DNS API 기능을 더 추가하기 위해 노력했지만 이것이 꽤 좋은 시작이라고 생각했습니다. 내 코드를 검토하고 변경하십시오. 나’D 풀 요청을받는 것을 좋아합니다! PowerShell 갤러리에서도 잡으면 모듈에 대한 생각을 알려주세요.