frpラップ——Centos 7とUbuntu 16.04にfrpを配置してイントラネットを貫通する

5384 ワード

まずfrpプロジェクトのトップページ:frpのGithubプロジェクトページに行きます.
コープ!frpって何?
frpは自分の人(国人)が作ったソフトです(だから中国語のドキュメントはまだ完璧で、基本的に何か分からないことがあったら直接上で調べればいいです).frpと1台のパブリックネットワークipを持つホストを組み合わせることで、パブリックネットワークipのないホスト(例えば、イントラネットのホスト)にポート転送などのサービスを提供することができ、これにより、ユーザーが外部ネットワークからイントラネットのホストに直接接続することができる(具体的な例を挙げると、家で会社のパソコンに接続してプロジェクト管理を行う).
設定!戦火を越えた信使(サービス側frp配置)
実はもっと宿場か仲介者が怒らせたような..サービス側のシステムはcentosです.
frpの配置はやはり簡単で、貧僧の方法はプロジェクトページから発表した圧縮パッケージを直接ホストにダウンロードし(自分のシステムが何であるかを見て、貧僧は64ビットのlinuxシステムなので、名前の中にlinux_amd 64がある)をダウンロードして、それから解凍して、実行を追加して、読み書き権限はそのまま使えます(chmod命令の使い方はここでは言いません).ポイントはfrps.iniに記入し、必要なサービスに対応して対応する内容を記入することです(具体的には中国語のドキュメントや貧僧の次の例を参照してください).例えば、貧僧が必要とするのはvncとsshであり、そうする必要があります.
[common]
bind_port = 7000

[vnc]
type = tcp
auth_token = xxx

[ssh]
type = tcp
auth_token = xxx

これでいいです.次のコマンドでサービスを開始します(加圧されたディレクトリに入ったと仮定します):
./frps -c ./frps.ini

プロセスを守る勇者
上記のコマンドを入力すると対応するサービスが開始されますが、苦労して開始したプロセスは、ユーザーがホストからログインしたり端末を閉じたりして暴死する可能性があるので、勇者を呼び出して彼女を守らなければなりません.そこで必要なのはsupervisorです.pythonで開発されたソフトウェアで、プロセスが突然中止されたときにプロセスを再活性化することができます.
注意するのは、centos上で直接yum install supervisorになることができなくて、さもなくばunix:///var/run/supervisor.sock no such fileの間違いが現れて、正しい取り付け方法は:pip install supervisorで、具体的な原因は貧僧は深く研究していませんが、ここを見て説明することができます.ubuntuでaptをインストールすると問題になるそうですが、貧僧はcentosでしかこの問題に遭遇しませんでした.
そして勇者召喚開始:/etc/supervisor/conf.dにファイルfrp.confを新規作成し、内容:
[program:frp]
command = / frp      /frps -c / frp      /frps.ini
autostart = true

貧僧が遭遇した場合、上記の操作はubuntuでしか機能しません.centosでは、上記の内容を/etc/supervisord.confファイルの一番後ろに直接コピーして貼り付け、supervisorプロセスを再起動する必要があります.ここでまた一つの状況が出てきました.ubuntuではsudo systemctl restart supervisorで再起動できます.centosではだめです.必ずkillを落とす必要があります(まずps -ef | grep supervisorで対応するプロセスを見つけますが、探しているプロセスの名前はパスのような/bin/python /bin/supervisord -c /etc/supervisord.confで、grep --color=auto supervisorではありません.kill pidではありません.その後、再起動します(supervisord -c /etc/supervisord.confなので、/etc/supervisord.confにコンテンツを追加します).
ubuntuとcentosの下でfrpが実行されているかどうかを見ることができます.
sudo supervisorctl status

実行するとfrpが出力されます(ファイルの最初の行が[program:frp]なので、別の名前に変更してもいいです).
待機している故人(クライアント配置)
クライアントもfrpプロジェクトで公開された圧縮パッケージをダウンロードし、解凍してfrpcを編集します.ini:
[common]
server_addr = x.x.x.x
server_port = 7000

[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remotep_port = 5910

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

一番上のx.x.x.xは、サービス側のipアドレスを記入します.次にサービスを開始します(加圧されたディレクトリに入ったとします):
./frpc -c ./frpc.ini

注意:通常は、サービス側を開いてからクライアントを開きます.そうしないと、クライアントが自分でオフになる可能性があります.
そして楽しく使えます!
手紙を書くあなたは
ここではsshの例を挙げるだけですが、どうせvncなどの差は多くありません.Windowsを使用していると仮定すると、puttyのipに直接記入できるサーバーアドレスx.x.x.x、ポート記入6000(サーバーに6000を傍受させる構成なので、最終的には22ポートに転送されると言っていますが)、通常のsshと変わらないです.
直接sshでつながっている場合:
ssh -oPort=6000 test@x.x.x.x

貧僧はsshを直接使ってみたことがありません(上は公式ドキュメントから).すべてputtyを使用しているので、上記のコマンドは参考にしてください.
参照先:
frpによるイントラネット透過の容易な解決unix:///var/run/supervisor.sockNo such fileのメソッドpython supervisorがプロセスを管理する際に発生する問題