【第3回】誰でもできる!自宅で始める分散型SNSサーバー構築 ───ドメイン取得とCloudflare Tunnelの設定【Misskey】

この記事は、 KENTEM TechBlog アドベントカレンダー2024 11日目、12月11日の記事です。

みなさんこんにちは! KENTEM第二開発部でフロントエンドを担当しているO・Aと申します😺

この記事では、一般家庭の要らなくなったPCを活用して、自宅で分散型SNS(Misskey)サーバーを構築する方法を、12/9~12/13の5日間に分けて、毎日丁寧に解説していきます。

シリーズ目次

  1. 第1回:分散型SNSとは何か? tech.kentem.jp
  2. 第2回:Ubuntuの環境構築手順 tech.kentem.jp
  3. 第3回:ドメイン取得とCloudflare Tunnelの設定 ←本記事 tech.kentem.jp
  4. 第4回:Misskeyのインストール tech.kentem.jp
  5. 最終回:Misskeyのセキュリティ対策、バックアップ方法、パフォーマンス向上、機能追加 tech.kentem.jp

今回は第3回:ドメイン取得とCloudflare Tunnelの設定です。

ネットワークミリしらの方でも分かるように解説していきます!😺



ドメイン取得

そもそもドメインとは?

ドメインは、インターネット上のウェブサイトやサーバーを識別するための名前です。

私たちが普段目にする「google.com」のような形式で表される文字列がドメインです。

本来、インターネット上のサーバーの住所は、コンピューターが管理しやすいように「192.168.1.1」といった数字の羅列(IPアドレス)で管理されていますが……、これは人間にとって覚えにくく使いづらいものですよね。

そこで、これらの数字を「example.com」のような覚えやすい文字列に置き換えたものがドメインです。

特にSNSを運営する場合、このドメインはサービスの顔となり、ユーザーがアクセスする際の入口になります!

気軽に変更できるものではないので、大切に名付けましょう。

ドメインの取得方法

ドメインを取得(購入)するには、ドメインレジストラと呼ばれる事業者を通じて手続きを行います。

日本で代表的なレジストラには、お名前.comムームードメインVALUE-DOMAINスタードメインなどがあります。海外だとGoDaddyが有名です。

取得の手順は以下の通りです。

  1. まず、レジストラのウェブサイトで取得したいドメイン名(例:example.com)が利用可能かを検索します。利用可能な場合、そのドメインを購入するプランを選びます。基本的なプランでは、ドメイン名の使用権と、DNSサーバーの利用が含まれています。

  2. 次に、ドメインの所有者情報を入力します。これには名前、住所、メールアドレス、電話番号などが必要です。

  3. その後、支払い手続きを行います。支払い方法はクレジットカード、デビットカードが一般的ですが、中には銀行振込にも対応しているレジストラもあります。

  4. 購入が完了すると、そのドメインの管理画面にアクセスできるようになり、DNSレコードの設定やネームサーバーの変更などが可能になります。

ドメインの料金は、トップレベルドメインの種類(.com、.net、.jpなど......)やプランによって異なりますが、一般的な「.com」ドメインは年間1,000円から2,000円程度です。

(なお、.jpドメインは日本国内の住所が必要など、取得に際して追加の要件がある場合もあります。)


読者の方々のお好きなレジストラで登録していただいて構いませんが、本稿ではスタードメインというレジストラを利用して解説しております。

もし個人でドメインを持っている方はここは読み飛ばしていただいてもOKです!

スタードメインを選択したのは、料金面と信頼性からです。

ドメインにもよりますが、料金は年間100円(税込)~とかなり安価な価格設定になっています。

また、ICANN公認レジストラ(厳しい審査基準のクリアと登録費用の支払いによって認可された正式なドメイン登録会社)でもあるので、「突然、ドメインが使えなくなった」というような可能性はかなり低いと思われます。

運営会社であるネットオウルがセキュリティ会社も運営しているため、安心して利用できると言えるでしょう。

(2024年12月現在の執筆者O.A個人の見解であり所属する組織を代表するものではありません)

スタードメインでドメインを取得する例

まずはスタードメインのWebサイトにアクセスします。

www.star-domain.jp

スタードメイン

下の方の「まずは欲しいドメイン名を検索!」に欲しいドメイン名を入力して、使えるかどうか検索してみましょう。

例えば「kentem」と入力してみると、既に弊社のホームページである「kentem.jp」はもう取得できないことが分かりますね。

kentem.jp

「kentem.jp」はもう取得できない

KENTEMのホームページ

他の単語を考えてみましょう。私の好きな「いちごパフェ」なら申し込めそうです。

ちなみに、大雑把な解説になりますが、「.com」や「.net」などの部分をTLD(トップレベルドメイン)と呼び、その前につく単語をSLD(セカンドレベルドメイン)と呼びます。

好きなTLDとSLDの組み合わせを見つけたら、右の「申し込む」ボタンをクリックして、新規会員登録まで済ませましょう!

いいドメインですね(本記事で実際にこのドメインを使っている訳ではありません)

会員登録の手順は省略しますが、基本的に画面の指示に従えば大丈夫です。

必要事項を入力して、契約期間を選択し、支払いが確認されると、晴れてドメインの所有者となります。おめでとうございます!


分散型SNSを安全に使うためのCDN

ここから先は、CDNとしてCloudflareを使うための作業を行っていきます。

……普段ネットワークに触れない人にとっては聞き慣れない単語が出てきましたね。

1から解説していきましょう。

CDNって何?

そもそも「インターネット」というのは、何か巨大なサーバーにみんながアクセスしているのではなく、「世界中に張り巡らされた大きな通信網」なのです。

それ故に、物理的な距離が離れていればいるほど、データが届くまでに時間がかかってしまいます。

例えば、東京にあるサーバーにロサンゼルスのユーザーがアクセスする場合、太平洋を横断する時間が必要になります。

CDN(Content Delivery Network)というのは、この問題を解決するために世界中にサーバーを配置し、ユーザーに最も近い場所からコンテンツを配信する仕組みです。

スーパーで例えると、本店だけでなく各地域に支店を作り、世界のみんながそれぞれ通えるような距離で商品を提供するようなものですね。

Cloudflare」というは、このCDNサービスを提供する企業の中で最も巨大かつ有名な会社です。

そして、単なるCDNとしての機能だけでなく、セキュリティ対策も提供している点が特徴と言えます。

具体的には、悪意のあるアクセスやサイバー攻撃からウェブサイトを守る機能や、通信を暗号化してデータを安全に届ける機能などを備えています。

Cloudflare

なぜMisskeyのような分散型SNS運営でCDNが必要なのか?

理由はいくつかありますが、最も大きな理由は「セキュリティ」「高速化」の2点です。

Cloudflareを中継することで、サーバーのIPアドレスを外部から隠蔽することができます。

IPアドレスが公開されていると、そのアドレスに対して、悪意のある第三者からの直接的な攻撃(大量のアクセスを一斉に行う いわゆるDDos攻撃など…)が可能になってしまいます。

特にMisskeyのようなSNSサーバーは、攻撃者の標的になりやすい特徴があります。

その理由は、個人で運営していることが多く、セキュリティ対策が十分でない可能性があると見られやすいためです。

また、ユーザーの個人情報や投稿データを扱うサービスであることから、攻撃者にとって魅力的な標的となってしまいます。


そこであなたの盾になってくれるのがCloudflareです。

Cloudflareを中継すると、あなたのサーバーへの通信は全てCloudflareのサーバーを経由して行われます。

つまり、外部から見えるのはCloudflareのIPアドレスだけで、あなたの実際のサーバーのIPアドレスは完全に隠れた状態となります。

メルカリなどの匿名配送サービスを利用したことがある方はピンと来るかもしれませんね。

注文した商品が一度配送センターを経由して届くことによって、荷物を受け取る人は配送センターの場所は分かりますが、商品がどの住所から出荷されたのかは分からないのと同じです。

また、分散型SNSという特性上、世界中のサーバーと通信を行う必要もあります。

CDNを利用することによって高速化の恩恵を得ることができ、世界中のユーザーに快適にサービスを提供することが可能になります。


サーバー公開に必要なポート開放

そして、第1回でもお話したように、本稿は以下の点についての問題提起から生まれました。

2つ目は、それらの解説記事を自宅のPCに置き換えて読もうとしても、一般家庭においては現在ポート開放が難しくなっているという点です。

自宅でサーバーを公開しようとすると「ポート開放」が必要になりますが、最近の自宅向けインターネット環境では、セキュリティ対策の強化やIPv4アドレスの枯渇対策として、従来のようなポート開放ができないことが往々にしてあります。(私もそうでした。)

特に、ISPから提供される最新のルーターではポート開放機能自体が制限されていたり、キャリアグレードNAT(CGNAT)の採用により技術的にポート開放が実現できないケースが増えてきています。

さて、少しだけネットワークの簡単な説明をします。

従来のサーバー公開では、インターネットからの通信を自宅のサーバーに届けるために、ご家庭のルーターで「ポート開放」をする必要がありました。


ポート開放とは?

IPアドレスというのはインターネット上の住所、つまり「家」でしたね。

それに対し「ポート」はその家において出入りするための「扉」に該当します。

つまり、「ポート開放」とは「扉を開けて、家に招き入れている」状態と言えます。

これにはPCとルーターで異なる意味があります。

・PC側

PCでの「ポート開放」とは、特定のポート番号への通信のみを許可する設定のことです。

ファイアウォールの設定に近いですね。

1つのコンピューターには65,535個のポートがあり、それぞれ異なる目的で使用されます。

例えば、Webサーバーを動かす場合、そのPCの80番(HTTP) または443番(HTTPS)ポートでリクエストを受け付けるよう設定します。

メールサーバーなら25番ポート、FTPサーバーなら21番ポートを「待ち受け」状態にします。

これは「このポートで外部からの接続を受け付けますよ」という設定です。

・ルーター側

ルーターでのポート開放とは、外部から特定のポート番号に来た通信を、内部の特定のIPアドレス(機器)に転送する設定のことです。

(より正確には「ポート転送」(port forwarding)とも呼ばれたりもします。)

家庭用ルーターは、デフォルトでは外部から内部への接続要求をすべて遮断します。

これは不正アクセスから内部のネットワークを守るためです。

つまり、自宅でサーバーを公開する場合:

  1. まずサーバーとして使うPCで該当ポートを「待ち受け」状態にし
  2. さらにルーターで「そのポートへの通信を、このPCに転送する」よう設定する

という手順を踏みます。

……しかし、「デフォルトでは外部から内部への接続要求をすべて遮断」という箇所で首を傾げた人も多いかと思います。


どうして私達は「ポート開放」していないのに、普通にインターネットが見れるのか?

結論から言うと、「外から内」と「内から外」で通信方法が全く異なるためです。

(この話は後々Cloudflare Tunnelの話で重要になってきます)

例えば、「Googleのトップページを見たい!」と思い、ブラウザの検索窓にURLを打ち込んだ場合を考えます。


  • 行きの通信(内→外)

まず基礎知識として、インターネット上の通信では、コンピューターを識別するためにIPアドレスという住所のような番号が必要でしたね。

このIPアドレスには、インターネット全体で使える「グローバルIPアドレス」と、家庭やオフィスの中だけで使える「プライベートIPアドレス」の2種類があります。

そして、それらをルーターで変換しているのです。(このようなIPアドレスの変換をNAT(Network Address Translation)と呼びます。)

家庭用のルーターには通常このNAT機能が搭載されており、インターネットサービスプロバイダー(ISP)から割り当てられた1つのグローバルIPアドレスを、家庭内の複数のデバイス(スマートフォンやパソコン)で共有することを可能にしています。

家族全員がそれぞれのスマートフォンでインターネットを使える理由は、このNAT機能のおかげなのです。

家庭のネットワークの構成図

ISPについて

IPアドレスが「家」でポートが「扉」なら、ISPは「道路を管理する組織」と言えます。

情報を運ぶための物理的な「高速道路」が光ファイバーなどのインターネット回線、その道路を作って管理しているのがISPというわけです。

さて、まずあなたのPCがGoogleのページを表示したいと思った場合、DNSサーバー(ドメインとIPアドレスの対応を知っているサーバーのこと)に「www.google.comのIPアドレスを教えて!」と問い合わせます。

(最初に説明した通り、google.com(ドメイン)というのは人間に分かる形式であって、コンピュータが分かるには数字の羅列であるIPアドレスが必要なためです。)

DNSサーバーは、あなたの場所や時間帯、サーバーの混雑状況などを考慮して、その時点で最適なGoogleのサーバーのIPアドレス(例:216.58.220.100)を教えてくれます。


GoogleのIPアドレスが分かったら、あなたのPC(例:プライベートIPアドレス 192.168.1.10)から、「216.58.220.100の80番ポートに接続したい」というリクエストを送ります。

その時、あなたのPCは自動的に「空いてる適当なポート」(例:10000番)を使います。

ルーターは、あなたのプライベートIPアドレスとポートを、家の外向けのグローバルIPと紐付けて記録します。

つまり、

  • あなたの家のルーターのグローバルIPアドレス(203.0.113.1)の20000番ポート
  • ⬍(紐づけ)
  • あなたの家のPCのプライベートIPアドレス(192.168.1.10)の10000番ポート

ですね。


  • 戻りの通信(外→内)

Googleのサーバーからの応答(Googleトップページ)があなたの家のグローバルIPアドレス(203.0.113.1)の20000番ポートに届きます。

そして、ルーターは「このポートに来た通信は192.168.1.10の10000番に転送」と紐づけを分かっているので、ちゃんとあなたのPCに届き、無事に表示されます。

やったね!

ここまでの話を図にすると以下のようになります。

内→外への通信経路

つまり、我々が普段使うインターネットは「内→外」であり、その通信は通信経路を記憶しているため、レスポンスを適切に戻すことができるのです。


一方、サーバー公開=外から内の場合は違います。

誰かが「203.0.113.1(あなたの家)の80番ポートにアクセスしたい!」とリクエストを送ってきます。

でも、ルーターは「80番ポートに来た通信をどのPCに転送すればいいの…?」と困ってしまいます。

それもそのはず、同じプライベートネットワーク内に端末は複数有るためです。

そのため、事前に「80番ポートに来た通信は192.168.1.10に転送して」という設定(=ポート開放)が必要になります。

つまり、「外→内」に入ってくる通信は、明示的な紐づけ設定(=ポート転送&開放)がないと、どのPCに転送すればいいか分からないのです。

外→内への通信経路

これが、普段我々が普通にインターネットを利用するだけだとポート開放が不要で、サーバーを公開する時に初めてポート開放が必要になる理由なのです。


CGNATによるポート開放困難化

しかし、現代の一般家庭のインターネット環境では、サーバー構築にこの「ポート開放」方法が難しくなっています。

その理由として、最新のルーターはセキュリティを重視する設計となっており、ポート開放の機能を制限したり、無効化したりしているためです。

さらに、IPv4アドレスの不足を解決するために導入されたCGNAT(Carrier Grade NAT)という仕組みにより、一つのグローバルIPアドレスを複数のユーザーで共有する状況が生まれました。


従来のNATでは、1つの家庭に1つのグローバルIPアドレスが割り当てられていました。

ネットワークフロー図 ~従来の構造~

しかしCGNATの環境では、ISP(Internet Service Provider、インターネットに接続するためのサービスを提供する事業者)のCGNATが間に挟まり、1つのグローバルIPアドレスを複数の家庭で共有し、さらにその後で各家庭のルーターのNATによって家族間での共有が行われます。

つまり、二重のNAT変換が行われているのです。

ネットワークフロー図 ~近代の構造~

この二重のNAT変換により、外部からの通信がどの家庭のどのデバイスに向けられたものなのかを正確に特定することが難しくなります。

これには、以下の2つの問題が伴います。


問題1:グローバルIPアドレスの共有化による問題

ISPのCGNATサーバーでグローバルIPアドレスから内部アドレス(100.64.x.x)への変換が行われ、各家庭のルーターにはこの内部アドレスが割り当てられます。

つまり、複数の家庭で一つのグローバルIPアドレスを共有している状態なのです。

それ故にインターネット側から203.0.113.1宛に通信が来た時(つまり「外→内」のとき)、それが家庭A、B、Cのどれに向けた通信なのか判断することができません。

問題1: グローバルIPアドレスの共有化による問題


問題2:ルーターのポート転送機能が使えない問題

CGNATが間に入ることで、家庭用ルーターでポート転送の設定をしても、その設定がCGNATを越えて機能しません。

CGNATサーバーがその設定を知る方法がないためです。

これにより、家庭内でWebサーバーを公開しようとしても、外部からの通信をそのサーバーまで届けることができなくなりました。

いくら家庭用ルーターの設定をいじったところで、CGNATという大きな壁を越えられないのです。

問題2: ルーターのポート転送機能が使えない問題


CGNATの問題を個人で解決するのは難しい

これらの問題の解決方法はいくつかあり、まず、ISPに対してCGNATサーバーでのポート転送設定を依頼する方法があります。

しかし、多くのISPではセキュリティ上の理由からこのような要求を受け付けておらず、たとえ受け付けたとしても追加料金が発生する場合もあります。

次に考えられるのが、法人向けやビジネス向けの固定IPアドレスプランへの契約変更です。

これによりCGNATを完全に回避することが可能になりますが、月額料金が数千円から数万円に跳ね上がってしまいます。個人での利用を考えると、この費用対効果は現実的とは言えません。さらに、ISPによっては個人での契約自体を受け付けていないケースも多々あります。

VPNサービスを利用する方法も考えられます。VPNプロバイダーが提供する固定IPアドレスを利用することで、CGNATの問題を回避できます。

しかし、VPNを経由することによる通信速度の低下は避けられず、さらにVPNプロバイダーの安定性に依存することになります。また、これにも月額1,000円程度からの追加料金が必要となります。


では私達はどうすればいいのか?

この問題に対して、本記事では「Cloudflare Tunnel」による解決法を提示します。

Cloudflare Tunnelとは、オリジンサーバーからCloudflareへ安全な接続(トンネル)を作り、その経路を通じてインターネットからのアクセスを受け付けるトンネリングサービスです。


Cloudflare Tunnelの最大の特徴は、通信の開始を「内→外」にしている点です。

具体的には、まずオリジンサーバー側で動作するcloudflaredというソフトウェアが、内側からCloudflareへ接続を開始し、その際に自分の識別情報(トンネルID)をCloudflareに送信します。

CGNATやルーターは、この「内→外」の通信を通常の外向きの接続として処理するため、特に制限を加えることはありません。 この確立された接続は、QUICプロトコル(一部環境ではHTTP/2へフォールバック)を使用した永続的な接続として維持され続けます。

つまり、新しく「外→内」の通信を始めようとするのではなく、すでに「内→外」で開いている経路をずっと使い続けるという仕組みなのです。

この方法、かしこすぎますね!

Cloudflare Tunnelによるトンネル確立


そして、一般ユーザーがウェブサイトにアクセスする際、その通信は最初にCloudflareのサーバーに届きます。

Cloudflareは、既に確立されているトンネルを通じてその通信を自宅のサーバーまで転送します。

Cloudflareは、トンネルIDと確立された接続を紐付けて管理しているため、外部からのアクセスがあった時、CloudflareはトンネルIDを使って、どの接続にリクエストを流すべきかを正確に判断できます。

「どの利用者か分からない」という問題を、Cloudflare側で解決しているのです。

ユーザーがサイトにアクセスする際の流れ

さらに、この方式にはセキュリティ上の利点もあります。

従来の方式ではサーバーのIPアドレスが外部に露出していましたが、Cloudflare Tunnelでは完全に隠蔽されます。

また、Cloudflareの提供する様々なセキュリティ機能(WAF、DDoS防御など)も利用できるため、より安全なサーバー運用が可能になります。

そして、導入面でも大きな利点があります

cloudflaredというシンプルなソフトウェアを導入するだけで済み、複雑なネットワーク設定は不要です。

また、価格面でも、個人利用であれば無料プランで十分な機能が利用できるため、固定IPアドレスの契約やVPNサービスと比較してもコスト面で大きな優位性があります。

つまり、現代の複雑なインターネット環境下において、Cloudflare Tunnelは理想的なサーバー公開方法の一つであると言えるのです。

CGNATの制限に悩まされることなく、個人の環境でも手軽に、かつ安全にWebサービスを運用できる環境を提供してくれるのです。


解説パートが長くなってしまいましたね。すみません!

では、実際に手を動かして、Cloudflare Tunnelを設定していきましょう!


Cloudflare Tunnelの導入

Cloudflareとドメインの紐づけ

まず、以下のページからCloudflareのアカウントを作成します。

www.cloudflare.com

「サインアップ」をクリックします。

「Free」プランの「Webサイトを追加」をクリックします。

メールアドレスとパスワードを新しく決めます。

先程スタードメインで登録した自身のドメインをここで入力して、「続行」をクリック。

プラン選択画面に遷移するので、「Free」を選んで「続行」をクリックします。

DNSレコードの確認画面に遷移します。

特にここでは操作は必要なく、「アクティベーションに進む」を選択します。

「確認」をクリックします。

次に、手持ちサイトのネームサーバー変更が指示されます。

3の「割り当てられたCloudflareネームサーバー」をドメインと紐付けます。


Cloudflareのウィンドウは開いたまま、新しいウィンドウを立ち上げ、以下のURLからドメインの管理画面に遷移します。

secure.netowl.jp

紐付けたいドメインの「ドメイン管理ツール」をクリックします。

「ネームサーバーの確認・変更」をクリックします。

初期状態では、スタードメインのネームサーバーが登録されています。

こちらを、先程のCloudflareのネームサーバーに置き換えます。

「確認画面」をクリックします。

一番下の「設定する」ではないことに注意してください。

「確定する」をクリックします。

「ドメイン管理メニュー一覧へ戻る」をクリックします。

「現在、「スタードメイン専用」以外のネームサーバーが設定されています。」と表示されていれば成功です。

画面を閉じて、Cloudflareのウィンドウに戻ります。

「ネームサーバを今すぐ確認」をクリックすると、画像のように注釈が出ます。

レジストラがネームサーバーの変更を処理するまで時間がかかるため、メールが来るまでウィンドウを開いたまま気長に待ちましょう。(ちなみに私は5分程度で来ました)

完了すると以下のようなメールが届きます。

先程のCloudflareのページをリロードすると、以下のような画面になります。

これでドメインとCloudflareの紐付けは完了です。


Cloudflare Tunnelの設定

続いて、Cloudflare Tunnelの設定に移ります。

左のメニューから「Access」をクリックして、「Zero Trustを起動する」をクリックします。

自分のアカウントをクリックします。

Cloudflare Zero Trustのチーム名を決めて「Next」をクリックします。

プラン選択に移ります。

下に行って「Free」プランの「Select plan」をクリックします。

「Proceed to payment」をクリックします。

「Add payment method」をクリックします。

(Free Planの場合でも支払い登録が必要です。ただし自動的に課金されることはありません。)

住所と支払い方法を入力して「Next」をクリックします。

「Purchase」をクリックします。

支払い登録が終わり、こちらのページへ遷移したら、左のメニューの「Networks」→「Tunnels」をクリックします。

「Add a Tunnel」をクリックします。

「Select Cloudflared」をクリックします。

トンネル名を名付けて「Save tunnel」をクリックします。

(本記事ではmisskey-tunnelとします。)

「Debian」+お使いのアーキテクチャを選択して、下の「Install and run a connector」の「If you don’t have cloudflared installed on your machine:」の中に書かれているコードをコピーします。

(コピーボタンをクリックします。)


cloudflaredのインストールとCloudflareとの紐づけ

ターミナルを開いて、先ほどのCloudflareでコピーしたソースコードを右クリックで貼り付けてEnterを押します。

「Linux service for cloudflared installed successfully」と表示されればcloudflaredのインストールは成功です。

左上の「←Back to tunnels」をクリックします。

先程設定したトンネルの右のメニューをクリックして、「Configure」をクリックします。

「Public Hostname」タブを開き、「+ Add a public hostname」をクリックします。

ここで、SNSのドメインとサーバーのlocalhostの紐付けを設定します。

ドメインはスタードメインで契約したドメインですが、希望する場合はサブドメインをつけることができます。

例えば、SNSのドメインを「mi.example.com」にしたい場合は、Subdomainに「mi」を、Domainに「example.com」を入力します。

その下のTypeには「HTTP」を、URLには「localhost:3000」を入力します。

(これは、サーバーでmisskeyがlocalhost:3000番で立ち上がるためです。)

入力が終わったら、「Save hostname」をクリックします。

その後、ターミナルで

cloudflared login

と入力し、Enterを押します。

ブラウザが立ち上がるので、自分のドメインをクリックします。

「承認」をクリックします。

「成功」と表示されればCloudflare Tunnelの設定はおしまいです。

(ここで失敗する原因として、メールを認証していなかったり、ブラウザに広告ブロッカーを入れていることなどが挙げられます。

きちんと来ているメールを確認して 認証URLを踏んで、広告ブロッカーは削除してから認証に望みましょう。)

念の為、ターミナルの方でも

sudo systemctl status cloudflared

と入力してEnterを押し、状態を確認します。

active(running)と表示されていれば、無事にトンネリングが成功している証です。

おめでとうございます!


疎通確認

最後に、先程設定したSNSのドメインをブラウザに打ち込んでみましょう。

以下のような画面が表示されると思います。

これは、Cloudflareがきちんと設定されていて、残るはサーバーを立ち上げるだけの状態になっている証です。

(何もしなければ以下のような状態になるはずですからね)

いよいよSNS立ち上げの核心に迫ってきましたね…!


まとめ

ここまでお付き合いいただきありがとうございました。

この記事では、ドメインを取得する方法、現代の一般家庭のインターネット環境におけるポート開放の難解さの解説とCloudflare Tunnelによる解決法、そして実際の設定手順について述べました。

ネットワークの概念は初学者にとって理解が難しい分野ですが、今回は図解を多く取り入れることで、少しでも分かりやすい解説を心がけました。

この記事が、皆さんの理解の一助となれば幸いです。


次回は、これまで整えてきた環境を基盤として、いよいよMisskeyのインストールに着手していきます!

サーバーの構築はステップ・バイ・ステップで進めていけば、決して難しいものではありません。

皆さんも、ぜひ自分だけのSNSサーバーを作る体験を楽しんでいただければと思います。

ではまた明日お会いしましょう!



おわりに

最後まで読んでいただいた方に向けて、KENTEMの採用情報のご紹介です👇
KENTEMでは、様々な拠点でエンジニアを大募集しています!

・ICTの力で、建設業の「3K」を解決し、働く人に安心安全を届けたい。

・ KENTEMユーザーの現場の方々が、残業規制内に仕事が終わるようにして、18時には家族で食卓を囲めるようにしたい。

・建設業を支えることで、社会全体を「さまざまなリスクに強い安心・安全な場所」に変えていきたい。

このような理念を掲げて我々は働いております。

建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください!😺
recruit.kentem.jp career.kentem.jp


参考文献

seritude.com

zenn.dev

www.value-domain.com