-
Notifications
You must be signed in to change notification settings - Fork 72
ngrok の導入手順・使い方
ローカル環境を一時的に外部へ公開できるサービスです
OGPなど外部からのアクセスが必要な機能を開発環境下でも確認できるようになります
下記の流れで説明を記載しています
- インストール
- アクセストークンの設定
- 動作確認
各OS毎のインストール方法は以下のようになります
最新情報が更新されている可能性もあるので、上手くいかない場合は 公式サイト を確認して下さい
- For MacOS, use HomeBrew:
brew install ngrok/ngrok/ngrok
- For Linux, use Apt:
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
sudo tee /etc/apt/sources.list.d/ngrok.list && \
sudo apt update && sudo apt install ngrok
- For Windows, use Chocolatey:
choco install ngrok
コマンドでバージョン情報が表示できればインストール成功です
$ ngrok -v
grok version 3.2.2
ngrok を利用するにはアクセストークンが必要ですので、公式のアカウント登録ページ からアカウント登録を行って下さい
![](https://private-user-images.githubusercontent.com/95903475/241692725-f968713b-e1b4-497e-a707-977829f6516d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDUyMTcsIm5iZiI6MTczODk0NDkxNywicGF0aCI6Ii85NTkwMzQ3NS8yNDE2OTI3MjUtZjk2ODcxM2ItZTFiNC00OTdlLWE3MDctOTc3ODI5ZjY1MTZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2MTUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWViZDQwMGQwN2Y4YTA4NGFmNGEwNzZjMzUxMjcyMWNjYmRhZTcxNmU1MzczOTBkMzg5Nzc1ODk0MjFkMmZhNzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.urdcICF_Gdpp6j_scx145Wix-QnZMJRJ5miMuRT0Srg)
Your Authtoken にアクセスして、アクセストークンをコピーして下さい
![](https://private-user-images.githubusercontent.com/95903475/241711539-a439d6be-0a8b-424f-9213-baa16ccf16a1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDUyMTcsIm5iZiI6MTczODk0NDkxNywicGF0aCI6Ii85NTkwMzQ3NS8yNDE3MTE1MzktYTQzOWQ2YmUtMGE4Yi00MjRmLTkyMTMtYmFhMTZjY2YxNmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2MTUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjMzBjYTQ4ZWMxNzUyNmNlZWNlZmRlMWYyZmRiZjgzY2Q5YjA1MjRhYzRlMDkwOWY2YjI3YjhlMGQ2NWMzZWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FWOOW8dt5JniuSTgiDnodpl5oxIkRxuTa1IC0qXQSi4)
ターミナルを起動し、ホームで以下のコマンドを実行してアクセストークンの設定ファイル生成してください
$ cd ~
$ ngrok config add-authtoken [取得した個人トークンをペースト]
Authtoken saved to configuration file: /home/ymmtd0x0b/.config/ngrok/ngrok.yml]
ターミナル上で ngrok を起動して外部アクセス用の URL を確認します( Forwading の行。※このURLは ngrok を起動する度に変わるので注意!! )
$ ngrok http 3000
ngrok (Ctrl+C to quit)
Announcing ngrok-rs: The ngrok agent as a Rust crate: https://ngrok.com/rust
Session Status online
Account ymmtd0x0b@gmail.com (Plan: Free)
Version 3.2.2
Region Japan (jp)
Latency 71ms
Web Interface http://127.0.0.1:4040
Forwarding https://d345-69-6-76-165.ngrok-free.app -> http://localhos
Connections ttl opn rt1 rt5 p50 p90
※起動コマンドの 3000 は Rails のデフォルトポート番号の 3000 です。ポート番号が異なる(変更する)場合は適宜合わせて下さい
ngrok から開発環境にアクセスできるように許可を与えます
ngrok 起動画面の Forwarding と表示されている部分のドメイン名( ⬆の場合は https://d345-69-6-76-165.ngrok-free.app
)を環境設定に組み込みます
# config/environments/development.rb
Rails.application.configure do
#...略
config.hosts << "d345-69-6-76-165.ngrok-free.app"
end
通常通り、開発環境を立ち上げます
ngrok とは別にターミナルを起動すると都合が良いのでオススメです( VSCode上なら Ctr + Shift + 0
で簡単に増やせます )
$ bin/rails s
ブラウザを立ち上げてアドレスバーに ngrok が生成した外部アクセス用の URL を入力して Enter を押して下さい ( この例ではhttps://d345-69-6-76-165.ngrok-free.app
)
下の画面になるので、Visit Siteボタン
をクリックしてください
![](https://private-user-images.githubusercontent.com/95903475/241695544-c9ad56e1-6a7c-426f-8068-3ab5defa31cb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDUyMTcsIm5iZiI6MTczODk0NDkxNywicGF0aCI6Ii85NTkwMzQ3NS8yNDE2OTU1NDQtYzlhZDU2ZTEtNmE3Yy00MjZmLTgwNjgtM2FiNWRlZmEzMWNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2MTUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI5MmRkMDhiY2VkYjI3MjgzZGZlNDAzODhiOWM4ZDQ5NTQ1MzFiY2VhMmEzZWNiNDVkYjNiZTU1NjhjM2RlMjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.7G2pqpFqO_X4dx76np-nkbAuJafIERgI6mBL2z_dYWM)
開発環境の画面が表示されれば、設定完了です🎉🎉🎉
![](https://private-user-images.githubusercontent.com/95903475/241698749-ad83605f-e2f6-4cd2-ab9f-f8e58b92dfac.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDUyMTcsIm5iZiI6MTczODk0NDkxNywicGF0aCI6Ii85NTkwMzQ3NS8yNDE2OTg3NDktYWQ4MzYwNWYtZTJmNi00Y2QyLWFiOWYtZjhlNThiOTJkZmFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2MTUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhMmRmY2Y5NDI0N2U3ZWNkNTUyZjY3YzkwZjM2YTU5Mjg0MjA1NzU0MDYwMzZjNGM1NTA1MzY4NzE3ZWY0NmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xhUQ2_qo8F0PlFfJbuCHZ-QEO5NOABFnqlkVDn9apCg)
下記手順で外部からアクセスと確認が可能です
-
ngrok http [ポート番号]
で ngrok を起動 - config/environments/development.rb でドメインのアクセス設定を更新
-
bin/rails s
を実行 - ブラウザからアクセス
下図のエラーが表示される場合は、アカウント登録していないかアクセストークンの設定が上手くいっていない可能性が考えられるので確認してみて下さい
![](https://private-user-images.githubusercontent.com/95903475/241699627-760e4f44-aed6-4ac5-8292-86c982b43589.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDUyMTcsIm5iZiI6MTczODk0NDkxNywicGF0aCI6Ii85NTkwMzQ3NS8yNDE2OTk2MjctNzYwZTRmNDQtYWVkNi00YWM1LTgyOTItODZjOTgyYjQzNTg5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2MTUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNkZTY5YjFmOTY1NmQ5Njg0Mjc1ZjkzMzY2ODFlNmQyNWEwODg3MzdiYjNhZDlmZjdkNDU4NDU1MzJhN2JlOTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.v2ashsoRrFEej3hhplnUTW57A0iWoUFlQYQCbl53_9c)