ServBayでのfrpリバースプロキシ設定ガイド
frp(Fast Reverse Proxy)は、高性能なリバースプロキシアプリケーションで、ローカルネットワークサービスを安全にインターネットへ公開できます。ServBayはfrpクライアント(frpc)機能を統合しており、ご自身が運用するfrpサーバー(frps)へ接続することで、ServBayでホストしているローカルサイトをカスタムドメイン経由で外部からアクセス可能にします。この方法により、トンネルサーバーに対する完全なコントロールを実現できます。
本ガイドでは、ServBayでのfrpクライアント設定と、ご自身のfrpsサーバーへの接続方法を詳しく解説します。
概要
ServBayで提供されている他のマネージドトンネルサービスと異なり、frpを利用する場合は、事前にご自身のサーバーでfrpsサーバーをセットアップ・設定しておく必要があります。ServBay側はfrpcクライアントとして機能し、ローカルサイトへのトラフィックをfrpsサーバー経由でインターネットに転送します。この運用は、より高いカスタマイズ性・コントロール性を求める開発者に特に適しています。
ユースケース
- トンネルサーバーの完全制御: frpsサーバーの構成・セキュリティ・パフォーマンスを自ら管理可能。
- カスタムドメイン/SSL利用: 所有する任意のドメイン名を柔軟にローカルプロジェクトへ紐付け、ACME SSL証明書をServBayから簡単統合。
- 高度なネットワーク構成: frpは多様なプロキシタイプと細かな設定ができ、複雑な要件にも対応。
- プライベート配備: サードパーティトンネルサービスを使わず自分で管理したい場合に最適。
前提条件
- ServBayのインストール: macOSへServBayがインストールされ正常に動作していることを確認してください。
- 自己ホストの
frps
サーバー:- インターネットからアクセス可能なサーバー上で、frpsサービスを構築・実行している必要があります。
- frpsサーバーのグローバルIPまたはドメイン名をメモしておきましょう。
- frpsサーバー構成ファイル(
frps.toml
またはfrps.ini
)で設定されたbindPort
(frpクライアントが通信するポート)およびtoken
(認証トークン)も控えておいてください。
- ドメイン・DNS設定:
- 公開用のドメイン名(例:
your-frp-server.com
)を所有し、そのDNS AレコードをfrpsサーバーのグローバルIPに向けましょう。以降はこのドメイン名でローカルサイトを外部公開できます。
- 公開用のドメイン名(例:
- ServBayのACME SSL証明書:
- 外部ドメインをHTTPSで公開する場合、ServBayのSSL証明書機能からACME証明書を事前発行しておく必要があります。例えば、
project.your-frp-server.com
でローカルサイトへアクセスしたい場合は、そのサブドメインで証明書を申請してください。
- 外部ドメインをHTTPSで公開する場合、ServBayのSSL証明書機能からACME証明書を事前発行しておく必要があります。例えば、
- 複数サブドメインおよびSSL証明書:
- 複数のサブドメインを利用し、Aレコードをいちいち個別追加したくない場合は、ワイルドカード(*)を活用できます。たとえば、
*.your-frp-server.com
のAレコードをfrpsサーバーIPに向け、ServBayのACME SSL証明書申請時にyour-frp-server.com, *.your-frp-server.com
(*は最後に、カンマ区切り)と入力します。これにより、ServBay上で好きなサブドメイン(例:company-project.your-frp-server.com
,personal.your-frp-server.com
,customer-1.your-frp-server.com
など)による公開アクセスが可能になり、Aレコード追加や証明書準備を簡素化できます。
- 複数のサブドメインを利用し、Aレコードをいちいち個別追加したくない場合は、ワイルドカード(*)を活用できます。たとえば、
手順
1. ServBayでfrpパッケージをインストール
- ServBayアプリケーションを起動します。
- 左側ナビゲーションバーから**パッケージ(Packages)**をクリック。
- パッケージ一覧から
frp
を見つけます。 frp
横のインストールボタンをクリック。- インストール後、まだ設定がされていないため、frpサービスを起動すると一時的に起動失敗するのは正常です。
2. frps
サーバーと設定内容を準備
ご自分のグローバルサーバーにfrpsをインストール・起動してください。ServBayは、frpの新しいバージョンに適応した、frps.toml
(設定ファイル)のテンプレート生成機能を備えています。
ServBayでTunnel → frpへ移動。
**frp server config (frps.toml)**の横にあるドロップダウンや展開アイコンをクリック。
ServBayは以下のような
frps.toml
サンプル設定を表示します。toml# ServBayによって自動生成されたfrps設定ファイルです # そのままサーバーでご利用いただけます。 # 必要に応じてパラメータを調整してください。 bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # 新しいfrpsバージョン(例:0.52.0+)では、Dashboard用にwebServer.port, webServer.addr, webServer.user, webServer.passwordを使用できます # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20重要な設定解説:
bindPort
: frpcとfrpsが通信するポート。サーバーのファイアウォールで開放してください。このポートに対して、アクセス元IPを制限するなど十分なセキュリティ対策を取ることを強く推奨します。auth.method = "token"
およびauth.token
: クライアント認証用。必ず自分だけの強力なパスワードへ変更しましょう。vhostHTTPPort = 80
,vhostHTTPSPort = 443
: frpsがHTTP/HTTPSリクエストを待ち受けるポート。- 【重要】ServBayは
frps
サーバーが80・443番を直接vhostHTTPPort
/vhostHTTPSPort
として利用するケースを最適化しています。 これにより、ServBayで発行したACME SSL証明書をfrps経由でシームレスに透過利用できます。 - もし
frps
サーバーが他サービス等の理由で80/443番を直接利用できない場合(例:8080/8443等を使う必要がある場合)、サーバーのフロントにリバースプロキシ(Nginx・Caddy等)を追加設置してください。リバースプロキシが80/443待ち受け、実際のvhost
ポートへトラフィックを転送します。この場合、ACME SSL証明書はFrontリバースプロキシ側で使用・管理します(ServBay側は透過できません)。
- 【重要】ServBayは
log.to
: frpsのログ保存先。- Dashboard関連(
webServer.port
等): frpsのWebダッシュボード用(任意設定)。
このサンプルをfrpsサーバー上の
frps.toml
(またはfrps.ini
)へコピーし、必要な項目を自身の運用方針に応じて編集します。frpsサービスを起動します。
3. ServBayでfrpクライアントを設定
ServBayアプリでfrpクライアント接続情報を入力します。
Tunnel → frpへ進みます。
frpsサーバー情報を入力します:
- Server Address(サーバーアドレス): frpsサーバーのグローバルドメイン名またはIPアドレス(例:
my.test.frp.server.host
)。 - Server Port(サーバーポート):
frps.toml
のbindPort
(例:12345
)。 - Auth Token(認証トークン):
frps.toml
で設定したauth.token
(例:myserverpassword
)。
- Server Address(サーバーアドレス): frpsサーバーのグローバルドメイン名またはIPアドレス(例:
トンネルマッピングの設定:
- Local Domain(ローカルサイト): プルダウンから公開したいServBay内ローカルサイトを選択(例:
servbay.demo
)。 - External Domain(外部ドメイン): 外部公開時に利用するドメイン名を入力(例:
test.ks.do
)。必ずDNS AレコードがfrpsサーバーIPに向いている必要あり。- 重要: ServBayが提供する他のトンネル構成(Ngrok、Cloudflared等)と異なり、ここでは完全なドメイン名を指定してください。
- ACME Certificates(ACME証明書): ServBayで取得済み、かつExternal Domainに対応したSSL証明書をドロップダウンから指定(例:
test.ks.do
用証明書)。- 重要: HTTPSで外部ドメイン公開したい場合は、正しい証明書を必ず選びましょう。ServBayはこの証明書情報をfrpcへ伝播し、frpsがHTTPSリクエストに対して利用します。この方式ならfrpsサーバーで追加のSSL構成は不要です—証明書管理をServBayへ一元化できます。
- Local Domain(ローカルサイト): プルダウンから公開したいServBay内ローカルサイトを選択(例:
トンネル追加:
- 複数のローカルサイト・外部ドメインへの公開が必要な場合、既存トンネル設定欄の右側にある「+」で追加していけます。
4. 設定保存とfrpサービスの起動
- 設定が完了したら、画面右下の**保存(Save)**ボタンをクリックします。
- ServBayがfrpc設定を保存し、frpサービスの起動を試みます。
- Tunnelリスト上で、
frp
項目のステータスランプを注視します。正しく設定されfrpsとの接続が成功すると、ランプが緑に点灯—サービス正常稼働を示します。 - 公開確認:
- 設定したExternal Domain(例:
https://test.ks.do
)で、外部環境からローカルサイトへアクセス可能かテストできます。 - ドメイン横のコピーアイコンまたはブラウザーアイコンで即座に検証も可能です。
- 設定したExternal Domain(例:
注意事項
- frpsサーバーの運用管理: frpsサーバーのインストール・構成・セキュリティ確保・日常保守は全てご自身で行います。
- frps
bindPort
保護: 強力なauth.token
必須。加えて、特定IPまたはIP範囲のみにfrpsbindPort
への接続を許可するなど、ファイアウォール設定を推奨します。 - vhostHTTPPort/vhostHTTPSPortの選定:
- 最もシンプルなのは
frps
を80と443で直接リッスンさせる方法。こうすればServBayからACME証明書透過利用が容易です。 - 80/443以外での仮想ホスト公開が必要な場合は、frpsサーバーの前段でNginxやCaddyなどリバースプロキシを配置し、フロントで証明書運用をしてください(この形式では証明書管理をServBayではなくリバースプロキシ側で行います)。
- 最もシンプルなのは
- ACME証明書の必要性: External DomainでHTTPS公開する場合、必ずServBayからACME証明書を取得し、frp設定で正しく紐付けてください。
- DNS伝播: External DomainのAレコードがfrpsサーバーIPへ正しく向き、各地へDNSが反映済みか確認しましょう。
よくある質問(FAQ)
- Q: ServBayのfrpサービスが起動失敗し、状態ランプが赤またはオレンジです。原因は?
- A: ServBay側のfrp構成(Server Address/Server Port/Auth Token)がfrps.tomlの
bindPort
/auth.token
と完全一致しているか確認。frpsサーバー自体が正常稼働中か、bindPort
がServBayマシンからのアクセス可能か(ファイアウォール含む)も要チェック。frpサービスのログを詳細確認してください。
- A: ServBay側のfrp構成(Server Address/Server Port/Auth Token)がfrps.tomlの
- Q: External Domainでアクセスできるが、HTTP接続しかできません。どうすれば?
- A: ServBayのfrp設定で、該当External Domainに適合するACME証明書を正確に選択しているか再確認。同時にfrps.toml側の
vhostHTTPSPort
が443等、HTTPS用実リッスンポートとして設定されているかチェック。
- A: ServBayのfrp設定で、該当External Domainに適合するACME証明書を正確に選択しているか再確認。同時にfrps.toml側の
- Q: frpsサーバーで80/443以外をvhostポートに使う場合、SSLはどう構成しますか?
- A: その場合、サーバー側でNginxやCaddy等のフロントリバースプロキシを設置して80/443を待ち受け、証明書を独自管理し、HTTPSトラフィックを実際のvhostHTTPSPortへ転送します。ServBayのfrp構成で「ACME Certificates」欄に指定された証明書は、この構成では直接外部HTTPS用に使われません—SSL関連の運用はリバースプロキシ側で行います。
- Q: ServBayが生成するfrps.tomlと既存のfrps.iniで書式が違う?
- A: frp設定ファイルの標準形式は
.ini
から.toml
へ変化しつつあります。ServBayで生成されるのは.toml
形式ですが、frpsバージョンが古い場合や.ini
形式を好む場合は、frp公式ドキュメントを参照のうえ書き換えてください。設定のコアパラメータは共通です。
- A: frp設定ファイルの標準形式は
まとめ
ServBayはfrpクライアント機能を統合し、内製・高度カスタマイズ可能なNAT越えソリューションを求めるmacOS開発者に最適なツールを提供します。frpsサーバーの自己構築運用と、ServBayの利便的なfrpc設定・ACME証明書管理を組み合わせることで、ローカル開発サイトを安全かつ柔軟にインターネット公開できます。frps・frpcの各パラメータ—特にポートとセキュリティ事項—の設定は慎重に行い、サービスの安定性と安全性を十分に確保してください。