冗長な記憶の断片

Web技術のメモをほぼ毎日更新(準備中)

Jan 12, 2021 - コメント - 日記

ngrokに飽きたらFRPもね!〜紹介とインストール編

ngrok の代替になりそうなソフトウェアを探していたらFRPというすごいのを見つけたのでご紹介します。

FRPとngrok

とても便利で人気なngrok

手軽に開発機上のサービスをネットに晒すのにngrokというサービスが便利です。私も5年くらい費用を払って使っています。

ngrokについてはたくさんの方が記事を投稿されているので興味のある方は以下を参考にしてください。

Qiita tags/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の設定

frpsfrpcから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にはfrpsfrpcでなにか共通のものを設定しておきます。

起動と接続確認

まず以下のようにしてサーバを立ち上げます。

サーバ側にて

$ 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]

次回につづく