banner
keney

keney

remain optimistic
twitter

frpを使用してリモートデスクトップ接続を実現します。

Frp は高性能なリバースプロキシアプリケーションであり、内部ネットワークのサービスを簡単に管理し、これらのサービスをパブリックネットワークに公開することができます。Frp の主な目的は、内部ネットワークのトンネリングを実現し、外部ネットワークのユーザーが内部ネットワークのサービスにアクセスできるようにすることです。以下は、Frp のアプリケーションシナリオのいくつかです:

  1. トンネリング:Frp を使用すると、Web サーバー、FTP サーバー、SSH サーバーなど、内部ネットワークのサービスをパブリックネットワークに公開できます。
  2. 内部リモートデスクトップ:Frp を使用すると、外部ネットワークから内部ネットワークのコンピュータにリモートデスクトップ接続でき、リモート管理やメンテナンスが容易になります。
  3. クラウドコンピューティングプラットフォームの構築:Frp を使用すると、企業はプライベートクラウド環境を構築し、仮想マシン、ストレージ、計算リソースなどのサービスを提供できます。
  4. ネットワークモニタリング:Frp を使用してネットワークモニタリングシステムを構築し、ポートフォワーディングを使用してモニタリングサービスをパブリックネットワークに公開し、管理者がリモートで表示できるようにします。
    要するに、Frp は非常に便利なツールであり、企業や個人が内部ネットワークのサービスを簡単に管理およびアクセスできるようにサポートします。

公式ウェブサイト:https://github.com/fatedier/frp/releases/tag/v0.48.0
公式ドキュメント:https://gofrp.org/docs/setup/systemd/

背景#

todesk の個人版(無料)を使用してリモートデスクトップ(Win10、Win11)に接続する場合、ネットワーク環境が悪い場合には使用が非常に不便です。そのため、frp というツールを使用することを考えました。

前提条件#

サーバーにはセキュリティグループルールを開放する必要があります。

例えば、私の Alibaba Cloud サーバーを使用します。

image
具体的な設定方法は次のとおりです:

frp の実装アイデア:#

まず、サーバーとクライアントが何であるかを明確にしましょう。

FRP のサーバー(Server)とクライアント(Client)は、FRP ツールの 2 つの異なる役割を指します。
サーバーは、FRP のリモートサーバーであり、パブリックネットワーク上で実行され、通常は内部ネットワークトンネリング機能を提供するために使用されます。外部ネットワークから内部ネットワークのデバイスにアクセスする必要がある場合は、パブリックネットワークに FRP サーバーをデプロイし、適切なマッピングルールを設定して、パブリックネットワークからのリクエストを内部デバイスに転送します。
クライアントは、FRP ツールのローカルコンポーネントであり、アクセスされる内部ネットワークデバイス上で実行され、リモートサーバーと接続します。クライアントは自分自身の ID 情報をサーバーに登録し、定期的にハートビートパケットをサーバーに送信して接続を維持します。クライアントがサーバーに正常に接続すると、外部ネットワークはクライアントが存在する内部ネットワークデバイスにサーバーを介してアクセスできるようになります。

環境のインストール#

Linux システムで systemd を使用して frps とその設定の起動時に実行する方法

ここでは、Linux サーバー(CentOS)を使用します。

systemdのインストール#

yum install systemd

frps.serviceファイルの作成と編集(vim エディタを使用)#

vim /etc/systemd/system/frps.service

コンテンツの記入#

[Unit]
# サービス名、カスタマイズ可能
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# frpsを起動するコマンド、frpsのインストールパスを変更する必要があります
# 例えば、私の解凍されたfrpパッケージはこのパスにあります /root/frp/frps
# ExecStart = /root/frp/frps/frps -c /root/frp/frps/frps.ini
ExecStart = /path/to/frps -c /path/to/frps.ini

[Install]
WantedBy = multi-user.target

以下の図を参照してください:
frps.service ファイルの例
上記の 3 つのステップは次を参照してください:https://gofrp.org/docs/setup/systemd/

ダウンロードと解凍#

方法 1:
すでに作成された /root/frp ディレクトリに移動し、次のコマンドを実行して frp パッケージをダウンロードします:

wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_arm64.tar.gz

方法 2:
ダウンロードリンク:https://github.com/fatedier/frp/releases
Linux 版(CentOS)をダウンロードします。次の図のバージョンをダウンロードします:
frp のダウンロードリンク

frp の Linux パッケージをカスタムディレクトリにアップロードします。

例:
/root/frp/ ディレクトリ(フォルダ)に配置し、次にこのファイルを解凍します frp_0.48.0_linux_amd64.tar.gz

tar -zxvf frp_0.48.0_linux_amd64.tar.gz

次に、名前を変更します:
mv 元のファイル名変更後のファイル名

mv frp_0.48.0_linux_amd64 frps

または、解凍してから直接名前を変更します。

サーバー(サーバー)の設定#

frp パッケージを解凍した後のディレクトリでファイルを設定します:

例:frp を解凍した場所は /root/frp/frps/ です

frps.ini ファイルを設定します

vim frps.ini

以下の内容を入力します:

[common]
# サーバーポート
bind_port = 7000
binf_addr = 0.0.0.0
bind_udp_port = 7000

authentication_method = token
# 認証トークンの値には、大文字小文字のアルファベット、数字などが含まれます
token = カスタムトークン

# ダッシュボード
dashboard_user = admin
# ダッシュボードのパスワード
dashboard_pwd = 123456
dashboard_port = 7500 

設定を保存して終了します

systemdコマンドを使用して frps を管理します。

# frpを起動する
systemctl start frps
# frpを停止する
systemctl stop frps
# frpを再起動する
systemctl restart frps
# frpのステータスを確認する
systemctl status frps

frps を起動時に自動的に実行するように設定します:

systemctl enable frps

以下は、ダッシュボードのスクリーンショットです:
frp ダッシュボードのスクリーンショット

クライアント frp の設定#

ダウンロードリンク:https://github.com/fatedier/frp/releases

次の図のように、カスタムフォルダに解凍します。

クライアントの設定(ローカルの Win10)#

frp パッケージを解凍した後、frpc.ini 設定ファイルを見つけてテキストエディタで開きます。
次の図のように:
frpc.ini ファイルの例
以下のように設定します:

# グローバル設定
[common]
# サーバーのパブリックIPアドレス
server_addr = あなたのサーバーのパブリックIPアドレス、適宜変更してください
# サーバーポート
server_port = 7000

authentication_method = token
token = カスタムトークン

# リバースプロキシの名前、任意の名前を設定できます
[RDP] 
# RDPはTCPプロトコルです
type = tcp
# ローカルIP
local_ip = 127.0.0.1
# リモートデスクトップのデフォルトポート
local_port = 3389
# 外部ネットワークへのポート
remote_port = 7001

注意:サーバーの設定のトークンとクライアントの設定のトークンは同じである必要があります。
参考:https://cloud.tencent.com/developer/article/1710141

ディレクトリで cmd を入力し、frpc.exe を実行します。
以下のスクリーンショットを参照してください:
frpc.exe の実行例
frpc.exe の実行例 2
これで設定は完了です。

次に、リモートデスクトップに接続します。

リモートデスクトップへの接続#

次のスクリーンショットのように、コンピュータにはサーバーの IP アドレスにポートを追加します。

例:139.224.12.12:7001(外部ネットワークへのポート)
リモートデスクトップへの接続例

私のコンピュータは Microsoft のメールアドレスを使用しているため、ユーザー名は[email protected]であり、パスワードは Microsoft のメールアドレスのパスワードに対応します。
また、ローカルアカウントでログインしている場合は、ユーザー名はローカルのユーザー名であり、パスワードは起動時のパスワードです。

IP アドレスを入力するのが面倒な場合は、IP アドレスをドメインにバインドするか、ポートを入力せずにリバースプロキシを使用することもできます。

結論#

要するに、frp はリモートデスクトップだけでなく、内部ネットワークトンネリング、侵入テストなど、さまざまな用途に使用できます。

添付ファイル#

参考 1:https://cloud.tencent.com/developer/article/1710141
参考 2:https://www.cnblogs.com/zhanggaoxing/p/9221705.html
Alibaba Cloud 公式サイト:https://account.aliyun.com/login/login.htm

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。