ngrok の代替になりそうなソフトウェアを探していたらFRPというすごいのを見つけたのでご紹介します。
FRPとngrok
とても便利で人気なngrok
手軽に開発機上のサービスをネットに晒すのにngrokというサービスが便利です。私も5年くらい費用を払って使っています。
ngrokについてはたくさんの方が記事を投稿されているので興味のある方は以下を参考にしてください。
FRPとは?
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. https://github.com/fatedier/frp
FRP配布サイト によると「NATやファイアーウォールの内側にあるサーバをインターネットに晒すリバースプロキシー」となります。
FRPを使えば自家版のngrokを建てることができます。
FRPにできること
- 手元のPCをネットに晒す(ngrok的な使い方)
- 別々のNATやfirewallの中にある2点間の通信
ざっとこんな感じです。
FRPのインストール
早速インストールしてみましょう。
Linux
FRPはfrps(サーバー), frpc(クライアント)に分かれています。Goで書かれていますので、GitHubで配布されているコンパイル済みのバイナリー を持ってくるのが簡単でしょう。
Mac
Macの場合はHomeBrewでインストールできます。
$ brew install frpc
FRPの設定
frpsはfrpcから7,000番ポート(default)で接続できるところに建てる必要があります。frps, frpcそれぞれに設定ファイルが必要でそれぞれ frps.ini, frpc.iniという名前にしておきます。
設定ファイル
frps.ini
[common]
bind_port = 7000
token = t0k3n
frpc.ini
[common]
server_addr = frps.example.com
server_port = 7000
token = t0k3n
tokenにはfrpsとfrpcでなにか共通のものを設定しておきます。
起動と接続確認
まず以下のようにしてサーバを立ち上げます。
サーバ側にて
$ frps -c frps.ini
クライアント側にて
$ frpc -c frpc.ini
クライアント側に以下のようなメッセージが出たらとりあえずインストール完了です。
2021/01/11 16:18:51 [I] [service.go:288] [06845eb1e7aa771a] login to server success, get run id [06845eb1e7aa771a], server udp port [0]