樹莓派学Linux(三)------SSHポートで転送し、ローカルエリアネットワークから飛び出した樹莓派制御


前編で述べたSSHサービスによるベリーパイの接続は、ローカルエリアネットワーク内で実現されており、リモート制御はできません.例えば、ベリーパイは実験室で、携帯電話で4 Gネットワークの環境下でもベリーパイを操作する必要があります.SSHサービスのポート転送機能を使用して、本当のリモート制御を実現することを考慮する必要があります.本編で紹介した内容は、あなたが1つの公網IPを持っている上に構築されています.遠隔制御の実質は、携帯電話やノートパソコンからSSHコマンドを公網IPの指定ポートに送信し、公網IPは受け取った内容をあなたの実験室のローカルエリアネットワーク内にあるベリーパイに転送することです.
まずLinuxコマンドラインにおけるSSHに関するパラメータを紹介する
ssh -fCNRL -p
-f       
-C     
-N        
-R     ,                         
-L     ,                      
-p          

上記の順方向エージェントは逆方向エージェントとは正反対で、順方向エージェントは自分のホスト上の指定ポートから受け取った情報をリモートホストの指定ポートに転送し、自分のホストがSSHサービスを行うサーバであり、リモートホストがSSHのクライアントである.リバースエージェントは、リモートホストの指定ポートから受け取った情報を、転送した自分のホストの指定ポートに、自分のホストをクライアントに、リモートホストをサーバにします.もちろん,リモートホストのIPアドレスとポート番号を自機のipとポート番号に変更すると,自機のポートからポートへの転送が実現される.
次に、順方向エージェントと逆方向エージェントの標準的な方法について説明します.
    :ssh -fCNL [  IP(   )]:[    ]:[    IP]:[      ] [          @    IP]
    :ssh -fCNR [    IP(   )]:[      ]:[  IP]:[    ] [          @    IP]

基礎知識の説明が終わった後、私たちのベリーパイを例に、逆エージェントのSSHポート転送について話します.
ハードウェアの準備
  • ベリーパイ3 b+ルータネットワーク
  • パブリックIP 166.166.166.166.166(VPSを1つ買えばパブリックIPを1つ手に入れることができる)
  • ソフトウェアの準備
  • JuicesSH(携帯電話のSSHクライアントで、パソコンで接続するなら、puttyで直接使えばいい)
  • 操作フロー
  • VPSの9999ポートを使用して、受信した情報をベリーパイの20ポートに転送し、ベリーパイコマンド端末にログインし、ベリーパイに以下のコマンドを入力します.もちろん、この操作はリモートホストのパスワードに負けます.そうしないと、勝手にホストのポートをエージェントにすることができます.
  • ssh -fCNR 9999:localhost:22 [email protected]
  • このときVPSにログインしてポートの使用状況を確認すると、VPSの9999ポートはすでに傍受状態にあることがわかります.人柄が良ければ、この一歩でいいかもしれませんが、その上で、完璧な点がたくさんあります.
  • まず、ネットワークの変動が発生すると、ssh接続が中断されますが、Linuxにはautosshがあり、中断後に自動的に再接続できるので、sshの逆エージェントの代わりにautosshを使用します.あいにく、ベリーパイにはautosshがありません.
  • をインストールする必要があります.
    sudo apt-get install autossh
  • autossh命令はssh命令と似ているが、ツリーベリー派命令ライン端末に以下の命令を入力するだけで上記の同じ操作
  • を完了することができる.
    autossh -M 9998 -fCNR 9999:localhost:22 [email protected]
  • 以降の命令はすべて完全に同じで、1つのM-9998しかありません.このパラメータの意味は9999ポートが完全に転送できない場合、VPS上で9998ポート転送を再開することです.
  • 次にsshまたはautosshコマンドを入力するたびに、パスワードを先に入力する必要があります.私たちはまず秘密保護ログインを完了する必要があります.この後、私は単独で詳細を開きます.大体、今、ベリーパイに鍵を生成し、公開鍵をベリーパイに存在させ、秘密鍵をVPSにコピーすれば、秘密保護ログインを完了することができます.
  • その後、あるVPSホストのファイアウォールはとてもよく書かれていて、ファイアウォールは私たちがポート転送を担当するポートの受信情報を阻止する可能性があります.そのため、ファイアウォールに指定されたポートの受信情報を許可する必要があります.この部分は主にLinuxのファイアウォールについて話しています.この後、もう1編詳しく話します.
  • 最後に、ベリーパイはVPSのようにずっと機械をつけていないため、電源を切るたびにポートが自動的に閉じるので、ベリーパイに電源を入れて実行するスクリプトを書く必要があります.この部分はLinuxの自動化メンテナンス、systemctl、rcに関連しています.localとか、前にジェーンの本でいい文章を見て、勉強してからも詳しく詳しく書きます.