cloud studio の frp 内網穿透#
グループの友人が cloud studio の高性能 GPU 基本型マシンで frp のデプロイが常に失敗するという話を聞き、どこが間違っているのかわからなかったので、著者も一度デプロイを試みて、成功するかどうかを見てみました。
必要な準備
- 公開 IP を持つ VPS
- CF にホスティングされていて、この公開 IP を指しているドメイン
小さな雲を必ずオフにすること
- frp のインストールパッケージをダウンロードまたは取得できること
では、始めましょう。
a. まず、自分の公開 VPS でダウンロードコマンドを実行します。
curl https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
b. 解凍します。
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
c. 名前を変更します。
mv frp_0.61.1_linux_amd64 frp
d. frp ディレクトリに入ります。
cd frp
e. 設定ファイルを変更します。
s が付いているのはサーバー側で、公開 IP を持つ VPS で実行する設定ファイルで、HTTP リクエストのリスニングポートを 8080 に指定します。
vim frps.toml
内容は以下の通りです:
bindPort = 7000
vhostHTTPPort = 8080
HTTPS プロキシを設定する必要がある場合は、vhostHTTPSPort も設定する必要があります。
詳細なパラメータについては、こちらを参照してください https://github.com/fatedier/frp?tab=readme-ov-file#expose-a-simple-http-file-server
私のここは 5678 です。
f. サーバーを実行します。
./frps -c frps.toml
cloud studio を開き、GPU 基本型を選択し、上記の手順 a-d を繰り返します。
この時、frpc.toml 設定ファイルを変更する必要があります。
c が付いているのはクライアント側で、内網サーバーを透過する必要があり、公開 IP を持っていません。
frpc.toml ファイルを変更します。
vim frpc.toml
内容は私のここでは:
serverAddr = "10x.xx.xx.xx"
serverPort = 7890
[[proxies]]
name = "web"
type = "http"
localPort = 81
customDomains = ["cf.xx.xx.xx"]
serverAddr はあなたの公開 VPS の IP アドレス、localPort はローカルでサービスを開始するポートです。例えば、私は Python で簡単に 81 の HTTP サービスを開始しました。customDomains は CF にホスティングされ、公開 VPS の IP を指しているドメインです。必ず小さな雲をオフにしてください。そうしないと失敗します。
変更が完了したら実行します。
./frpc -c frpc.toml
テストのために、cloud studio で Python を使って簡単に HTTP サービスを開始しました。
コマンドは:python -m http.server 81
CS が提供するプロキシサービスを通じて、81 ポートを開くことができます。
https://xxxxxx.ap-shanghai.cloudstudio.work/proxy/81
アクセスは正常で、次に frp で設定したドメインを通じてアクセステストを行います。
http://xxx.xxx.xxx:5678
cloudflare のスクリーンショットを添付します。
これで、本チュートリアルは終了です。具体的なパラメータについては、frp プロジェクトドキュメントでお会いしましょう。