ソフトウェア開発者として、さまざまなクラウドサーバーを利用してきた経験があります。大手プラットフォームはコストが高すぎ、小手プラットフォームは信頼性に欠けると感じています。その中で、雨雲はFRPサーバーとしてだけでなく、他の業務も処理できるため、非常に役立つプラットフォームだと感じています。
今回は、雨雲を利用してFRPを構築し、内網穿透を実現する方法を説明します。私の主な用途は、自宅から社内のリモートデスクトップにアクセスするため、その設定を中心に解説します。
1. サーバーの選定
1.1 雨雲への登録
雨雲の公式サイトにアクセスし、アカウントを登録します。新規ユーザー向けの割引クーポンが利用可能ですので、初めての方はぜひ活用してください。年間プランの場合はさらに割引があり、購入後にポイントも獲得できます。
1.2 購入手順
雨雲には複数のリージョンが用意されていますが、FRPの用途であれば国内リージョンのサーバーをおすすめします。
プランは以下の2種類があります:
- 流量叠加型:月間1TBのデータ量を提供し、帯域幅が大きいですが、データ量が上限に達すると別途購入が必要です。
- 流量無制限型:データ量に制限はありませんが、帯域幅は流量叠加型よりも小さくなります。
浙江标配版を例に挙げると、叠加型は帯域幅100Mbps、無制限型は10Mbpsです。
私の場合、Windowsサーバー上で他のサービスも稼働させたいため、4コア4GBのプランを選択しました。
サーバーのOSバージョンやパブリックIPの有無も選択可能です。パブリックIPを非選択の場合、雨雲のNAT機能を利用する必要があります。
2. FRPサーバーの構築
2.1 FRPサーバーのダウンロード
FRPのGitHubページにアクセスし、Windows用のインストーラーパッケージをダウンロードします。
Chromeブラウザを利用している場合、ダウンロードが制限されることがあります。その際はダウンロード履歴から「...」をクリックし、危険なファイルとしてダウンロードを許可します。
2.2 FRPサーバーの設定
ダウンロードしたZIPファイルを解凍し、中の「frps.exe」と「frps.toml」を開きます。
設定ファイル「frps.toml」のポート番号を確認し、雨雲のサーバー管理画面から該当のポートをファイアウォールルールに追加します。
2.3 FRPクライアントの設定
クライアントの設定ファイル「frpc.toml」を2つの用途に分けて編集します。
(社内サーバー側の設定例)
serverAddr = "x.x.x.x" # サーバーIP
serverPort = 7000 # サーバー側のポート番号
[[proxies]]
name = "my_remote_desktop" # 識別名
type = "xtcp"
secretKey = "secure123456" # 認証キー
localIP = "127.0.0.1"
localPort = 3389
(自宅クライアント側の設定例)
serverAddr = "x.x.x.x"
serverPort = 7000
[[visitors]]
name = "desktop_access" # 識別名
type = "xtcp"
serverName = "my_remote_desktop" # 識別名を一致させる
secretKey = "secure123456" # 同じ認証キーを使用
bindAddr = "127.0.0.1"
bindPort = 6000
詳細な設定は公式ドキュメントを参照してください。
2.4 FRPサーバーの起動
サーバーとクライアントの設定ができたら、それぞれのマシンでFRPを起動します。
サーバー側の起動例:
PS C:\Users\xxx\Desktop\frp> .\frps.exe -c .\frps.toml
2025-03-03 21:24:20.852 [I] [frps/root.go:105] frps uses config file: .\frps.toml
2025-03-03 21:24:20.953 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
2025-03-03 21:24:20.953 [I] [frps/root.go:114] frps started successfully
クライアント側の起動例:
PS C:\Users\xxx\Desktop\frp> .\frpc.exe -c .\frpc.toml
サーバーとクライアントの両方が起動したら、リモートデスクトップ接続が可能です。
2.5 補足
FRPの接続モードは「xtcp」をおすすめします。このモードはP2P通信を利用してポート打洞を行い、成功すれば通信トラフィックがFRPサーバーを経由せずに直接接続されます。
ただし、一部のネットワーク環境ではポート打洞ができない場合があります。その際は「stcp」モードに切り替えることを検討してください。
FRPサーバーを背景で稼働させたい場合は、nssmを活用し、サービス化しておくと便利です。