このプロジェクトについて
frpは、NATやファイアウォールの背後に位置するローカルサーバーをインターネットに公開するために設計された高速なリバースプロキシである。プロジェクトは2つのコンポーネントで構成される:公開IPを持つマシンにデプロイされる`frps`(サーバー)と、内部マシンにデプロイされる`frpc`(クライアント)。
対応プロトコルにはTCP、UDP、HTTP、HTTPSが含まれ、frpはカスタムドメイン名を介して内部サービスへのリクエスト転送が可能であり、さらにクライアント間の直接データ送信のためのP2P接続モード(`xtcp`)も提供する。
主な機能:
- **プロトコル対応**:TCP、UDP、HTTP、HTTPS、P2P(xtcp)
- **設定形式**:TOML、YAML、JSON(INIはv0.52.0以降非推奨)
- **認証**:トークンベースおよびOIDC(Client Credentials Grant)
- **暗号化**:クライアント-サーバー通信のTLS対応
- **サーバーダッシュボード**:プロキシ統計とステータスを表示する設定可能なポートのWebインターフェース
- **クライアントAdmin UI**:frpcの設定とプロキシをランタイムで確認・管理するためのWebインターフェース
- **動的プロキシ管理**:Store機能によりfrpcを再起動せずにプロキシの作成・更新・削除が可能
- **マルチプレクシング**:TCPストリームマルチプレクシングおよびTCPポートマルチプレクシング
- **トランスポートプロトコル**:KCPおよびQUICプロトコルに対応
- **コネクションプール**
- **ロードバランシングとヘルスチェック**
- **プロキシごとの帯域幅制限**
- **HTTP機能**:Hostヘッダー書き換え、カスタムヘッダー、URLルーティング、Basic Auth、リアルIP取得(X-Forwarded-For、Proxy Protocol)
- **ポート再利用**
- **frpc設定のホットリロード**
- **クライアントプラグイン**:unix_domain_socket、static_file、https2httpなど
- **SSHトンネルゲートウェイ**
- **仮想ネットワーク(VirtualNet)**
- **設定テンプレートでの環境変数サポート**
- **includesによる複数ファイルへの設定分割**
- **Prometheusモニタリングエンドポイント**
一般的なユースケースとしては、SSH経由でLAN内のコンピュータへアクセス、カスタムドメインで内部Webサービスを公開、DNSクエリの転送、Unixドメインソケット(例:Docker)の公開、tcpmux/HTTP Connectによる同一ポートでの複数サービス共有、事前共有キーを用いたSTCP(Secret TCP)モードでのプライベートサービス公開などがある。
本プロジェクトはGoで積極的に保守されており、クラウドネイティブおよびServiceMeshのコンセプトに基づくv2の開発が進められているが、v2はv1とは互換性がない。
ウェブサイト:https://github.com/fatedier/frp
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.