[LINUX] Obtenir un domaine à l'aide de GCP et MyDNS (Wake on LAN over NAT [1])

introduction

Wake on LAN (est-ce le libellé correct?) Au-delà du NAT de l'appartement, qui faisait rêver depuis de nombreuses années, s'est enfin réalisé. Puisqu'il est assez long, je vais l'écrire séparément. Je vais l'écrire sous forme de mémorandum, mais j'espère que n'importe qui vous aidera. Cette fois, j'écrirai sur "Obtenir un domaine avec GCP et MyDNS".

ezgif-6-a3bc222e322b.gif

Objectif

Le but est simple et je veux juste démarrer mon ordinateur de bureau avec Wake on LAN (WOL) de l'extérieur comme ça.

object.png

problème

Solution

J'ai fait face au problème ci-dessus, mais heureusement j'avais une tarte à la râpe à portée de main, donc j'ai pu le résoudre en me connectant comme suit en utilisant ceci.

En d'autres termes

Principalement utilisé

--Un service - Google Cloud Platform - Softether - MyDNS - mod_wsgi - apache - LINE bot

Obtenez un domaine à l'aide de GCP et MyDNS

Je vais l'écrire étape par étape sous forme de mémorandum. Pour réaliser ce qui précède, commencez par «acquérir un domaine à l'aide de GCP et MyDNS».

GCP

Créer une instance de VM

Tout d'abord, créez un serveur à l'aide de GCP. Reportez-vous au Site officiel GCP (GCE) pour commencer à partir de maintenant, utilisez en toute sécurité l'offre gratuite Créez-le.

Commencez par créer un projet.

gcp1.png

Aucune organisation.

gcp2.png

Après avoir créé le projet, créez une instance de VM.

gcp3.png

Sélectionnez le projet après l'avoir créé plus tôt.

gcp4.png gcp5.png

Gratuitement, la région correspond aux États-Unis et le type de machine est médiocre. (Cadre libre) La partie écrite plus loin dans la figure est le réglage du pare-feu. Vous pouvez le définir plus tard, afin de pouvoir le laisser tel quel.

gcp7.png

Pour Boot Disk, j'ai choisi Ubuntu, auquel je suis habitué. La capacité est gratuite jusqu'à 30 Go, alors changez-la de la valeur par défaut de 10 Go.

gcp6.png

** * Important ** Activez le transfert IP. Cela ne peut pas être changé plus tard!

gcp8.png gcp9.png

Après cela, cliquez sur "Créer" pour terminer la création de l'instance de VM.

Installez GCloud

Installez gcloud afin de pouvoir vous connecter à l'instance de VM créée par SSH.

mkdir ~/gcloud
cd ~/gcloud

Ici Démarrage rapide> Téléchargez le fichier tar.gz en fonction de votre système d'exploitation et placez-le dans le répertoire que vous avez créé précédemment. Puis décompressez le fichier comme suit et installez-le.

tar xvzf gcloud.tar.gz
./google-cloud-sdk/install.sh

Redémarrez le terminal et tapez la commande suivante pour terminer l'installation de gloud.

gcloud init

Vérifiez si la connexion SSH est possible depuis gcloud

Une fois l'installation terminée, associez-le au projet GCP que vous avez créé précédemment.

gcloud config set project {my-project or id}

Ensuite, établissez une connexion SSH à l'instance de VM.

gcloud compute ssh {instance name or id} #--ssh-flag="-p {port number}"

Paramètres de pare-feu pour SSH

Définissez le pare-feu qui a été reporté. Il semble préférable de ne pas utiliser le numéro de port par défaut. Tout d'abord, établissez une connexion SSH à l'instance de VM et modifiez les paramètres SSH.

gcloud compute ssh {instance name or id}
sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sed -i -e "s/#Port 22/Port {port number}/g" /etc/ssh/sshd_config
sudo service ssh restart

Après cela, du Web Définissez le "{numéro de port}" défini précédemment dans Compute Engine> Instances de VM> Afficher les détails du réseau en tant que règle.

ssh3.png ssh4.png

C'est OK si vous pouvez enregistrer et vous reconnecter avec ce qui suit.

gcloud compute ssh {instance name or id} --ssh-flag="-p {port number}"

Réglage de l'heure

Par défaut, il n'est pas défini sur l'heure du Japon, alors changez-le. Connexion SSH

sudo apt-get install dbus
sudo timedatectl set-timezone Asia/Tokyo

Ceci complète les paramètres de base de GCP. De plus, il est préférable d'effectuer une authentification à deux facteurs pour la sécurité, mais je vais l'omettre ici.

DDNS

Réglage

Si vous payez, vous pouvez obtenir une adresse IP fixe, mais une fois que vous obtenez le domaine, utilisez mydns vers DDNS. Après avoir créé un compte avec Rejoignez-nous> Inscrivez-vous depuis myDNS,

Définissez le domaine dans DOMAIN INFO> OK. CHECK> OK pour terminer.

mydns1.png

Ensuite, définissez DDNS depuis IP ADDR DIRECT. Revenir sur le site GCP

dnsupdate1.png

Comme le montre la figure ci-dessus, l'adresse IP externe GCP actuelle se trouve dans la partie masquée par le carré rouge, alors notez-la et saisissez-la. (Ignorez la flèche) CHECK> OK pour terminer.

mydns2.png

Notification IP

Avertissez l'IP quand il redémarre et quand il se réveille pendant une heure. Commencez par SSH dans GCP et créez un script shell pour la mise à jour.

mkdir ~/vpn
cd ~/vpn
vi update_ip.sh

update_ip.sh


#! /bin/bash
wget --http-user=mydnsxxxxx --http-password=~~~~~~~ http://www.mydns.jp/login.html -O /dev/null

Modifiez les autorisations.

chmod +x ~/vpn/update_ip.sh

Ensuite, à nouveau sur le site GCP

dnsupdate1.png

Dans EDIT> métadonnées personnalisées, entrez ce qui suit dans le carré rouge ci-dessous.

#! /bin/bash
bash /home/{name}/vpn/update_ip.sh
dnsupdate2.png

Ceci termine les paramètres de notification lors du redémarrage.

Enfin, au cas où, prévoyez une notification toutes les heures.

crontab -e
# update ip
* */1 * * * /home/{name}/vpn/update_ip.sh

Ceci termine les paramètres DDNS.

en conclusion

Pour le moment, c'est long, donc ça se termine ici.

référence

GCP (GCE) pour commencer à partir de maintenant, utilisez en toute sécurité le cadre libre

Recommended Posts

Obtenir un domaine à l'aide de GCP et MyDNS (Wake on LAN over NAT [1])
Créer un script Python pour Wake on LAN (Wake on LAN over NAT [5])
Proxy inverse d'Apache sur GCP vers Raspeye Apache local (Wake on LAN over NAT [3])
Configurer Softether Server sur GCP (Se connecter depuis iPhone / Raspeye) (Wake on LAN over NAT (2])
Transformez Razzpie en routeur (Wake on LAN over NAT [4])
Wake on LAN sous Linux
Construire un environnement Python sur un Mac, jusqu'au point d'utiliser Jupyter Lab
Créer un environnement Chainer à l'aide de CUDA et cuDNN sur une instance p2
Créez un classement de jeu sur le cloud Alibaba en utilisant Python et Redis
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Utilisez ScraperWiki pour obtenir régulièrement des données de votre site Web