はじめ
にfrpのフルネームであるFastReverse Proxyは、イントラネットの浸透に使用できる高性能のリバースプロキシアプリケーションです。主に、一部のイントラネットサービスにパブリックIPがないが、外部ネットワークを提供する必要があるという問題を解決するために使用されます。アクセス。frpを使用すると、イントラネット内のTCP、UDP、HTTP、HTTPS、およびその他のプロトコルサービスをパブリックネットワークに公開し、ドメイン名に従ってルーティングおよび転送するためのWebサービスをサポートできます。
利点:小さくて便利で、展開が簡単
この記事の完成時点で、frpの最新バージョンはv0.36.1であり、この記事では最新バージョンを使用しています。
事前準備
-
1つのクラウドサーバー(またはパブリックネットワークIPを備えたマシン);
-
1つのイントラネットサーバー。
-
Frpスクリプトファイル;
-
1つのドメイン名(オプション)。
-
基本的なLinux操作コマンド。
スクリプト展開ファイルをダウンロードする
ダウンロードリンク:https://github.com/fatedier/frp/releases
注:
1)サーバー側と内部ネットワークマシン側からダウンロードしたバージョンは同じである必要があります。同じでない場合、内部ネットワークの浸透に影響を与える可能性があります
。2)サーバーシステムに応じて適切なスクリプトを選択します。
Frpの構造は非常に単純で、frps / frpcという2つの実行可能プログラムに分かれています。パブリックネットワークアドレスを使用してVPSでfrpsを実行してから、ホームネットワークでfrpcを実行します。
1.結果を確認します。「X86_64」の場合は、「amd64」を選択できます。
2.次のコマンドを実行し、対応するバージョンを選択し
て、さまざまなアーキテクチャに従ってダウンロードします。SSHがVPSに接続した後、次のコマンドを実行してプロセッサアーキテクチャを表示し、アーキテクチャに従ってさまざまなバージョンのfrpをダウンロードします(次の2つ)。コマンドは受け入れられます)
arch
uname -m
3.新しいディレクトリ mkdir-p / usr / local / frpを作成し、frp_0.36.1_linux_amd64.tar.gzをLinuxサーバーのこのディレクトリにアップロードします。
4. tar -zxvffrp_0.36.1_linux_amd64.tar.gzを解凍します
5.名前を変更しますcp-r frp_0.36.1_linux_amd64 frp
6.解凍ディレクトリcdfrp_0.36.1_linux_amd64を入力します。ここでは、主に4つのファイルfrpc、frpc.iniとfrps、frps.iniがあり、最初の2つのファイル(sの終わりはサーバーを表します)はそれぞれサーバープログラムとサーバーです。構成ファイル。最後の2つのファイル(最後のcはクライアントを表します)は、クライアントプログラムとクライアント構成ファイルです。
スクリプトは主にサーバーファイルとクライアントファイルに分けられます
1.サーバーはFrpsとFrps.iniを
使用します2.クライアントはFrpcとFrpc.iniを使用します
1.外部ネットワークサーバーの構成
たとえば、ホームサーバーのsshポート22を外部ネットワークvps 202.115.8.1:221にプロキシする場合は、vpsのfrps.ini構成ファイルを編集します。vimfrps.ini
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
#该端口就是以后访问web服务需要用到的端口
vhost_http_port = 10080
vhost_https_port = 10443
必要がない場合は、ポートでデフォルト値を使用できます。トークン、ユーザー、およびパスワードの項目は自分で設定する必要があります。
- 「Bind_port」は、クライアントとサーバー間の接続に使用されるポートを示します。このポート番号は、後でクライアントを構成するときに使用されます。
- 「Dashboard_port」はサーバーダッシュボードのポートです。ポート7500を使用している場合は、ブラウザーからxxxx:7500(xxxxはVPS IP)にアクセスして、構成が完了し、サービスを開始します。
- 「トークン」は、クライアントとサーバー間の接続に使用されるパスワードです。自分で設定して記録してください。後で使用します。
- 「Dashboard_user」と「dashboard_pwd」は、ダッシュボードページにログインするためのユーザー名とパスワードを表します。これらは自分で設定できます。
- 「Vhost_http_port」および「vhost_https_port」は、HTTPホストをリバースプロキシするときに使用されます。
個人構成は以下の通りです
ポートの自己構成、変更後にfrpsを開始
注:ファイルディレクトリに切り替える必要があります
./frps -c frps.ini
画面にこのような出力部分が表示されている場合は、正常に動作していることを意味します。エラーメッセージが表示された場合は、上記の手順を確認してください。
このとき、xxxx:7500にアクセスし、設定したユーザー名とパスワードでログインすると、ダッシュボードのインターフェースが表示されます。
バックグラウンドで実行されているサーバー
これまでのところ、サーバーはフォアグラウンドでのみ実行されます。Ctrl+ CでSSHウィンドウを停止または閉じると、frpsの実行が停止するため、nohupコマンドを使用 してバックグラウンドで実行します。
バックグラウンド起動:nohup ./frps -c ./frps.ini&
この種のエラーがある場合:nohupコマンドを使用する場合、nohup.outの出力パスに書き込み権限がないため、nohupを使用できないことがよくあります。
これは、Linuxリダイレクトを使用して、nohup.outを書き込み権限のあるパスにリダイレクトしたり、/ dev / nullに直接スローしたりできるメソッドです。
nohup ./program> / dev / null 2> / dev / null&programはプロジェクトファイルです
このチュートリアルでは、次のステートメントを直接実行します
nohup ./frps </dev/null &>/dev/null &
次に、上記のバックグラウンド開始コマンドを実行します
これはバックグラウンドで開始されます
2.イントラネットクライアントの構成
同様に、クライアントデバイスの状況に応じてダウンロードする対応するfrpプログラムを選択します。Windowsでのダウンロードと解凍の手順については説明しません。(ここではcentosのみが紹介されています)
[common]
#外网-服务器端ip
server_addr = xx.xx.xx.xx
#外网-服务器端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000 #与服务端bind_port一致
公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = 192.168.40.128 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 6000 #自定义的访问内部ssh端口号
[web]
#配置类型为http协议
type = http
#内网机器的IP
local_ip = 127.0.0.1
#内网需要监听的端口
local_port = 80
#公网服务器的IP或者已解析的域名 这里如果你填了域名 请千万记得解析
custom_domains = xxx.xxxx.xxxx
上記のコードでcustom_domainsに入力されたドメイン名が解決されない場合、次の状況が発生します。!!
したがって、ドメイン名は対応するサーバーに解決する必要があることを忘れないでください
以下は私の個人的な構成です。
開始コマンド:./ frpc -cfrpc.ini これはフォアグラウンドスタートです
クライアントはバックグラウンドで実行されます
バックグラウンド起動コマンド:nohup ./frpc -c ./frpc.ini&
それでも問題が解決しない場合は、ローカル仮想マシンで次のコマンドが実行されます。
nohup:入力を無視し、「nohup.out」に出力を追加します
サーバーはバックグラウンドで正常に起動し、上記のことが表示される場合があります。ペネトレーションが成功したかどうかを確認してください。!
参照URL: