Utilisez le tunnel CloudFlare pour publier votre serveur domestique Ubuntu (Docker)!

Utilisez le tunnel CloudFlare pour publier votre serveur domestique Ubuntu (Docker)!

J'utilisais à l'origine un XServer VPS, mais en raison du manque de mémoire, je me procurais trop de coûts d'exploitation, donc je prévois d'utiliser mon PC domestique comme serveur pour le publier sur CloudFlare Tunnel

Les PC suivants ont été utilisés pour mon serveur domestique:
c'est un mini PC qui est devenu populaire ces jours-ci. Il a une jolie spécification pour environ 50 000 yens en vente, et il ne prend pas beaucoup de place même lorsqu'il est placé à la maison, donc c'est plutôt bien! (Il existe de nombreux fabricants différents, mais MinisForum semble être bon.)

table des matières

Inscrivez-vous en tant que compte CloudFlare

Je n'expliquerai pas cela, mais veuillez vous inscrire en tant que compte CloudFlare.
Si vous utilisez simplement le tunnel CloudFlare, je pense que le plan gratuit irait bien.

De plus, un domaine séparé est requis.
Si vous n'avez pas encore enregistré votre domaine, veuillez essayer de vous inscrire via "Enregistrement du domaine> Domaines d'enregistrement".
Il est bon d'obtenir un domaine à l'aide de VPS Oname.com ou Xserver.

Enregistrer le site

Une fois que vous avez obtenu le domaine, veuillez le lier au domaine à partir de "Ajouter le site".

Installer CloudFlared sur Ubuntu

À partir d'ici, vous travaillerez sur le serveur que vous souhaitez publier.
Installez CloudFlared sur Ubuntu.

  1. Ajout de la clé de signature du package CloudFlare
sudo mkdir -p --mode = 0755 / usr / share / keyrings curl -fsssl https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg> / dev / null
  1. Ajout du référentiel CloudFlare APT
echo "Deb [signé-by = / usr / share / keyrings / cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflare Jammy Main" | sudo tee /etc/apt/sources.list.d/cloudflare.list

Cette commande a été modifiée par rapport à la procédure officielle. En effet, il n'y a pas de CloudFlared dans le dernier référentiel.
Officiel "echo" deb [signé-by = / usr / share / keyrings / cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflare $ (lsb_release -cs) principal "| sud-tee /etc/apt/sources.list.d/cloudflare.list"

Erreur: 10 https://pkg.cloudflare.com/cloudflare noble version 404 introuvable [ip: 2606: 4700 :: 6812: 176 443] Liste des packages de chargement ... fini e: le référentiel https://pkg.cloudflare.com/cloudflare noble La version n'a pas de fichier de version. N: Les mises à jour sont désactivées par défaut car les mises à jour ne peuvent pas être effectuées en toute sécurité à partir d'un tel référentiel. N: Pour plus d'informations sur la création d'un référentiel et la configuration d'un utilisateur, consultez la page APT-Secure (8) Man.
  1. Mettre à jour le référentiel et installer Cloudflared
Sudo Apt-Get Update && sudo apt-get install cloudflared

Connectez-vous à CloudFlare

Je pense que j'ai pu installer Cloudflared.
Je veux créer un tunnel ou quelque chose en utilisant une commande, donc je me connecte à CloudFlare.

  1. Connectez-vous à CloudFlare
Connexion du tunnelflareflared

Le navigateur vous montrera s'il faut le permettre, alors assurez-vous d'autoriser le domaine cible.
S'il est autorisé, je pense que cela ressemblerait à ceci:

$ CloudFlared Tunnel Connexion Une fenêtre de navigateur aurait dû s'ouvrir à l'URL suivante: https: // ****** Si le navigateur n'a pas ouvert, veuillez visiter l'URL ci-dessus directement dans votre navigateur. Vous vous êtes connecté avec succès. Si vous souhaitez copier vos informations d'identification sur un serveur, ils ont été enregistrés à: / home / ********

Créer un tunnel Cloudflare

Une fois connecté, vous commencerez à créer un tunnel.
Cela peut également être créé avec la commande.

  1. Créer un tunnel Cloudflare
Cloudflared Tunnel Créer [n'importe quel nom] Tunnel Identials écrit sur /home/****/****.json. CloudFlared Choisissez ce fichier en fonction de l'endroit où votre certificat d'origine a été trouvé. Gardez ce fichier secret. Pour révoquer ces références, supprimez le tunnel. Tunnel créé ***** avec ID *****

Le "chemin JSON" et "ID" sera utilisé dans le fichier de configuration, veuillez donc l'enregistrer.

Créer un fichier de configuration

Ensuite, créez un fichier de configuration. Plus précisément, nous listerons le contenu du tunnel.

  1. Création d'un fichier de configuration (cette fois, Docker utilise 81 ports, donc Tunnel LocalHost: 81.)
$ sudo mkdir -p / etc / cloudflared $ cd cloudfared / $ sudo nano config.yml $ cat config.yml url: http: // localhost: 81 tunnel: [id (créé avec le tunnel de nuage)]

Commencer le routage

  1. Attribuer des enregistrements qui dirigent le trafic CNAME vers le sous-domaine du tunnel
CloudFlared Tunnel Route DNS [ID] [Domain] 2024-11-03T14: 32: 58Z Inf a ajouté Cname [domaine] qui se traduira vers ce tunnel tunnelid = [id]

Démarrer le tunnel

Une fois que vous avez fait cela, vous pouvez démarrer le tunnel.

  1. Exécutez le tunnel farou
Cloudflared Tunnel Run [ID]

Je pense que votre serveur domestique est maintenant ouvert au public!

Démarrer CloudFlare avec le service

Si cela se poursuit, le tunnel ne démarre pas à moins que la commande ne soit démarrée, alors inscrivez-la en tant que service.

  1. Créez une configuration de service (veuillez saisir l'ID de tunnel pour [ID]).
$ sudo nano /etc/systemd/system/cloudflared.service $ cat /etc/systemd/system/cloudflated.service [unité] Description = CloudFlare Tunnel après = Network.target [Service] Type = Simple execstart = / usr / local / bin / cloudflared tunnel run [id]
  1. Démarrer le service
  2. Changer de service pour activer
$ sudo systemctl daemon-reload $ sudo systemctl start cloudflared $ sudo systemctl activer cloudflared

Maintenant, si le système est en place, le tunnel continuera de fonctionner.

Partagez si vous le souhaitez!

Qui a écrit cet article

Ceci est un blog que j'ai commencé à étudier la sécurité de l'information. En tant que nouvel employé, je serais heureux si vous pouviez regarder avec un cœur large.
Il y a aussi Teech Lab, qui est l'occasion d'étudier le plaisir en programmation, donc si vous êtes intéressé par le développement de logiciels, assurez-vous de jeter un œil!

table des matières