Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新(準備中)

Jan 20, 2021 - コメント - 日記

ngrokに飽きたらFRPもね!〜FRP実践編その2 sshトンネルを作る

前回、FRPを使ってサーバを外部に晒す方法を説明しました 。今回は、FRP実践編その2として拠点間のSSHを扱います。FRP の主要な使い方はこの2点なので、このシリーズはこれで最終回となります。さて、タイトルのお正月ネタが尽きないうちに記事を書いてしまいましょう。

今回ファイアーウォール内にあるコンピューターをSSHでつなぐ例を説明します。図で描くと以下のようになります。

SSH tunnel by FRP

このように拠点間に特別なネットワークルートを作ることを俗に「トンネルを掘る」というような言い方をします。

今回、SSHサーバ側をSSH_SERVER・クライアント側をSSH_VISITORと呼びます。今回はこの両端にそれぞれFPRCをインストールして動作させます。設定ファイルはそれぞれ以下の通りです。

frpc.ini - SSH_SERVER

[common]
server_addr = frps.example.com
server_port = 7000
token = t0k3n

[example_ssh]
type = stcp
sk = h1mitu
local_ip = 127.0.0.1
local_port = 22

frpc.ini - SSH_VISITOR

[common]
server_addr = frps.example.com
server_port = 7000
token = t0k3n

[example_ssh_visitor]
type = stcp
sk = h1mitu
role = visitor
server_name = example_ssh
bind_addr = 127.0.0.1
bind_port = 60022

sk, token には何か推測不可能なものを設定しておきます。

起動コマンドは同じで以下の通りです。

$ frpc -c frpc.ini

これで無事トンネルは開通したはずです。ローカル(127.0.0.1)の6022に接続するとトンネルをとおって相手先のSSHに到達するはずです。以下のコマンドで到着を確認してください。

$ ssh -p 6022 127.0.0.1

3回にわたってFRPの基本的な説明をしてきました。FRP公式サイト にはほかにも様々な利用方法が紹介されていますので参考にして下さい。