Cloudflare Tunnelって知ってる?

こんにちは、Shinsinです。
私の家のネットは親が契約してて、ポート開放ができないので、疑似開放サービスを探してたんですけど、独自ドメインが設定できなかったり、マインクラフトしかポート開放できなかったり、お金がかかったりするので、おすすめのサービスを


Cloudflare Tunnelとは?

ポートを疑似開放するためのサービスではないんですよね、細かくいうと、サーバーとクライアントのアクセスを安全にするようのサービス見たいです。
その性質を利用して、ポート開放&独自ドメインの設定をしていきます。


対応OSは
Linux
Windows
Mac
Docker

Cloudflare Docsより

5分クッキング始めましょうか

準備

Cloudflareのアカウント・・・・一つ
サーバー  ・・・・・・・・・・適量
インターネット  ・・・・・・・適量
ApacheかNginx   ・・・・・・・適量
Cloudflareに紐づけたドメイン ・適量(なくてもいい)

サーバーとのSSH接続をしておいてください

環境の準備

私はLinuxのArm64で進めますの環境で進めます(WindowsやMacの環境はいつか書きます)

sudo apt-get update | sudo apt-get upgrade -y #アップデート
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb #Cloudflareのダウンロード
sudo apt-get install ./cloudflared-linux-arm64.deb

Linux
Arm   Arm64    x86(32bit)   amd64 / x86-64
Windows
32bit   64bit
Mac

brew install cloudflare/cloudflare/cloudflared

Cloudflareのログイン

Cloudflareでログインします。ドメインがなくてもできるはず
ドメインあり版

cloudflared login #URLが出てくると思うので、ログインしてください
cloudflared tunnel route dns <名前> <ドメイン> #ドメインを登録

ドメインなし版

Cloudflare login #URLが出てくると思うので、ログインしてください
cloudflared tunnel route dns <名前> <名前>

ポートを指定

ドメインありなし共通版

cd /home/<ユーザー名>/.cloudflared/ #Cloudflareの設定ファイルを開く
ls #~~~~.jsonの名前をメモ帳とかにコピペしててください
nano ./config.yaml #Configを開く

ドメインあり版

tunnel: <~~~~.jsonの.jsonを消した部分>
credentials-file: /home/<ユーザー名>/.cloudflared/~~~~.json #ここでjsonを

ingress:
  - hostname: <ドメイン>
    service: http://localhost:80 #これは80ポート
  - hostname: <ドメイン>
    service: http://localhost:8080 #8080port
  - service: http_status:404

ドメインなし版

url: http://localhost:8080 #8080port 
tunnel: <~~~~.jsonの.jsonを消した部分>
credentials-file: /home/<ユーザー名>/.cloudflared/~~~~.json #ここでjsonを

起動

cloudflared tunnel --config /home/shen/.cloudflared/config.yaml run

簡単だったでしょ?
この後NginxとApacheを共存させて遊んでみようかなぁ~

最後に

Softbank airはごみー
(ポート開放もできんし、速度も遅いし)

この記事が気に入ったらサポートをしてみませんか?