ServBayにおけるFRP逆プロキシサービス設定ガイド
FRPは高性能な逆プロキシツールであり、クライアント-サーバーアーキテクチャを通じて内ネット越えを実現します。このガイドでは、ServBayユーザーがfrpcクライアントを使用して安全なトンネルを構成し、ローカルサービスへのパブリックアクセスを可能にする方法について説明します。
技術原理
FRPはサーバー(frps)とクライアント(frpc)間で暗号化通信トンネルを確立し、内ネットサービスをパブリックサーバーにマッピングします。このソリューションは、TCP/UDP/HTTP/HTTPSなど、さまざまなプロトコルをサポートし、ServBayの開発環境におけるリモートデバッグやAPIテストなどのシナリオに適しています。
環境準備
1. FRPクライアントのインストール
以下の手順でfrpcクライアントを展開します:
- GitHubリリースページにアクセスし、適切なバージョンをダウンロードします。
- 解凍してシステムPATHに展開します(macOS ARMアーキテクチャの場合の例):bash
tar -zxvf frp_0.61.1_darwin_arm64.tar.gz sudo cp frp_0.61.1_darwin_arm64/frpc /usr/local/bin/
1
2 - インストールを確認します:bash
frpc -v # frpc version 0.61.1
1
2
トンネル設定の実践
設定ファイルの説明
frpc.toml
設定ファイルを作成し、基本構造は以下の通りです:
toml
serverAddr = your-frps-server.com
serverPort = 7000
auth.method = token
auth.token = your_authentication_token
[[proxies]]
name = "test_web"
type = "http"
localPort = 80
customDomains = servbay.your-domain.com
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
設定項目 | 機能説明 |
---|---|
serverAddr | FRPサーバーのパブリックアドレス |
serverPort | FRPサーバーの通信ポート(デフォルト7000) |
auth.method | サーバー認証方式 |
auth.token | サーバー認証トークン |
type | プロキシタイプ(http/https/tcpなど) |
localPort | ローカルサービスポート |
customDomains | 外部アクセス用のドメイン |
典型的な設定例
ローカルのServBay HTTPSサービスをパブリックにマッピングします:
具体例:
- frpサーバーのアドレスは
frps.servbay.demo
- ローカルServBayに設定されたドメインは
servbay.test
- パブリック向けサービスのドメインは
test-frp.servbay.app
(ドメインはFRPサーバーにDNSで解決される必要があります)
toml
serverAddr = frps.servbay.demo
serverPort = 7000
auth.method = "token"
auth.token = servbay
[[proxies]]
name = "servbay-frpc-demo"
type = "https"
customDomains = ["test-frp.servbay.app"]
[proxies.plugin]
type = "https2https"
localAddr = "127.0.0.1:443"
crtPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.crt"
keyPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.key"
hostHeaderRewrite = "servbay.test"
requestHeaders.set.x-from-where = "frp"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
サービスを起動します:
bash
frpc -c frpc.toml
1
サービス検証
- ブラウザでマッピングされたドメインにアクセスします:
https://test-frp.servbay.app
1 - 検証指標をチェックします:
- HTTP 200ステータスコードが返されます
- 応答内容がローカルサービスと一致します
- SSL証明書の有効性が確認されます
ログ診断
bash
frpc -c frpc.toml --log_level debug # デバッグログを有効にします
tail -f /var/log/frpc.log # ログをリアルタイムで監視します
1
2
2
障害排除ガイド
現象 | 解決策 |
---|---|
接続認証に失敗した | auth.tokenの設定がサーバーと一致するか確認します |
ドメイン解決に問題がある | DNSが正しくFRPサーバーのIPに解決されているか確認します |
ポートの競合 | lsof -i :PORT でポートの使用状況を確認します |
トンネルが頻繁に切断される | ハートビートパラメータを調整します:heartbeat_timeout = 30 |
ソリューションの利点
FRPソリューションはServBayユーザーに以下のコアバリューを提供します:
- 複雑なビジネスシナリオに対応する多プロトコルサポート
- サービスを再起動せずに構成のホット更新が可能
- ネイティブ級のカスケードプロキシが多層の内ネット越えをサポート
- オープンソースアーキテクチャがデータの安全性と制御を保証
本番環境の展開時にはTLS暗号化通信を有効にし、tls_enable = true
で強制的に暗号化されたトランスファーを施すことをお勧めします。