Amazon Lightsail で自宅サーバーを公開する
Published on 2024/02/08 , Last updated 2024/02/12Tags
概要
Amazon Lightsail と rathole を使用して Tunnel を構築し自宅のサーバーを公開します。
Tunnel を構築して自宅のサーバーを公開するその他の方法は こちら を参照してください。
前提条件
- AWS のアカウントが必要です。
- Docker, Docker Compose が使用できる必要があります。
手順
トンネルの構築
-
Amazon Lightsail を開き
インスタンスの作成ボタンを選択します。
-
インスタンスのイメージ、サイズなどを選択し
インスタンスの作成ボタンを選択します。
- インスタンスイメージの選択
- プラットフォームの選択:
Linux/Unixを選択します。 - 設計図の選択:
オペレーティングシステム (OS) のみからUbuntu22.04 LTSを選択します。
- プラットフォームの選択:

- サイズを選択:
$3.51 か月あたりの USDを選択します。

- インスタンスを確認: 任意のインスタンス名を入力します。
- インスタンスイメージの選択
-
インスタンスが
保留中から実行中になるまで待ちます。
-
インスタンスが
実行中になったらインスタンス名を選択し管理画面に進みます。 -
管理画面の
ネットワーキングタブ >IPv4 ファイアウォール>ルールを追加を選択し開放するポートを追加します。
- TCP/2333: rathole のポート番号です。
- TCP/80: 自宅サーバーのポート番号です。
-
インスタンスのコンソールアイコンを選択しインスタンスに接続します。以降の手順はインスタンス内で行います。

-
インスタンスのポートを開放します。
ufw を有効にします。
sudo ufw enable開放するポートを追加します。
2333は rathole 、80は自宅サーバーのポート番号です。sudo ufw allow ssh sudo ufw allow 2333 sudo ufw allow 80ufw をリロードします。
sudo ufw reload -
インスタンスに docker と docker-compose をインストールします。
-
rathole の設定ファイル
server.tomlを作成します。詳細は readme を参照してください。# server.toml [server] bind_addr = "0.0.0.0:2333" [server.services.home-server] token = "home-server-token" type = "tcp" bind_addr = "0.0.0.0:80" -
rathole の
docker-compose.yamlを作成します。2333は rathole 、80は自宅サーバーのポート番号です。version: "3.7" services: # https://github.com/rapiz1/rathole tunnel: image: rapiz1/rathole restart: unless-stopped command: ["--server", "/app/server.toml"] tty: true ports: # rathole - 2333:2333 # home server - 80:80 volumes: - ./server.toml:/app/server.toml -
インスタンスで rathole を起動します。
sudo docker-compose up -d
自宅サーバーの公開
-
rathole の設定ファイル
client.tomlを作成します。詳細は readme を参照してください。# client.toml [client] remote_addr = "myserver:2333" [client.services.home-server] token = "home-server-token" type = "tcp" local_addr = "home-sever:80" -
自宅サーバーと Tunnel の
docker-compose.yamlを作成します。今回の自宅サーバーは nginx を使用します。version: "3.7" services: # https://hub.docker.com/_/nginx home-sever: restart: unless-stopped image: nginx:latest ports: - "80:80" # https://github.com/rapiz1/rathole tunnel: restart: unless-stopped image: rapiz1/rathole:latest command: ["--client", "/app/client.toml"] volumes: - ./client.toml:/app/client.toml -
自宅サーバーと Tunnel を起動します。
docker-compose up -d停止する場合は次のコマンドを実行します。
docker-compose down削除する場合は次のコマンドを実行します。
docker-compose rm -
自宅サーバーにアクセスできることを確認します。
