GNU/Linux >> Linux の 問題 >  >> Linux

ポートフォワーディングなしでルーター経由のssh

あなたがしたいことは、あなたの「Linux サーバー」から「my_other_server」などの外側の何か、または両方のサーバーが到達できる何かに ssh することです。

ssh リモート ポート フォワーディングを使用します。
[[email protected]_server]$ ssh -R8022:localhost:22 my_other_server.com
説明:my_other_server に接続し、そこでポート 8022 を開くと、ポート 22 で私に転送されます。

my_other_server.com から、ポート 8022 で localhost に SSH 接続し、トラフィックを linux_server にピギーバックして linux_server に転送することができます -> my_other_server トンネル[[email protected]_server]$ ssh -p8022 localhost
説明:linux_server に転送されるポート 8022 で自分自身に接続します

最初の linux_server -> my_other_server トンネルがドロップアウトする問題がある場合は、スクリプトを作成してトンネルを開いたままにするか、キープアライブ設定を調整するか、autossh を使用することができます。


この回答は受け入れられたものに基づいていますが、詳細を追加して、それを完了することができました。これは私の専門知識のすべてではないので、歩行者の説明で申し訳ありません.

A という 2 台のコンピューターがあるとします。 そして B . ssh したい A から Bまで 、それらに接続されたルーターでポート転送を行うことはできません。

受け入れられた回答が述べているように、サーバー S が必要です これを行うには:コンピューター B で 、あなたは ssh を許可します S からの接続;およびコンピュータ A から 、S でそのトンネルにアクセスします Bに到達する .

しかし、どうやってそのサーバー S を取得するのですか? ? serveo を見つけました (リンク:https://serveo.net/)。使い方はとても簡単です。何もインストールしたり登録したりする必要はなく、無料です。 Web サイトによると、従うべき手順は次のとおりです。

<オール>
  • コンピュータ B のエイリアスを考えてみましょう .例:computer_B_alias .

  • コンピュータ内 Bssh -R computer_B_alias:22:localhost:22 serveo.net を実行 .

  • これで、コンピュータ B にアクセスできます コンピュータ A から コンピューター A で以下を実行することにより :ssh -J serveo.net [email protected]_B_alias 、ここで user を置き換える必要があります コンピュータ B のユーザーの名前で .

  • P.S.:もちろん、コンピューターの起動時にポイント 2 を自動タスクにします B .

    P.S.S.:これを試す前に、ssh であることを確認してください。 両方のコンピュータにインストールされています。 Ubuntu の場合、sudo apt-get install ssh


    ある種のVPNを使用してこれを機能させることができますが、アクセスできないサーバーがアクセスできるサーバーが必要になります.次に、サーバー、PC、およびファイアウォール サーバーで OpenVPN をセットアップし、client-to-client を有効にします。 、これで完了です。 http://openvpn.net/howto.html


    Linux
    1. LinuxでSSHポートを変更する方法

    2. SSHトンネリングを設定する方法

    3. Linux – Sshを介したX11転送?

    1. CWPのSSHポートを変更する

    2. Ssh ポート フォワーディング Google コンピューティング エンジン

    3. .bashrc をソースにしない SSH

    1. Ssh –複数のホストを介したScp?

    2. 追加のサーバーを介して SSH X11 転送を有効にする方法は?

    3. SSH トンネルを介して SSH を転送する