web-dev-qa-db-ja.com

ポート転送なしのルーターを介したSSH

Linuxサーバーがあり、ルーターの背後にあるホームネットワークに配置したいと考えています。外部からこのサーバーにSSH接続する必要がありますが、ルーターにアクセスできないため、ポート転送を設定したくありません。ルーターのIPもわかりません。

私ができることは、Linuxサーバーにプログラムを配置することです。そのため、インターネットに接続しているときは、他のサーバーに常にデータをオンラインで送信するので、そのIPアドレスがわかります。しかし、外部からルーターの背後にあるサーバーにsshする方法はありますか? NATまたはネットワーク接続を維持するソケットのようなものですか?

どうもありがとう

11
Jiechao Li

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

Sshリモートポートフォワーディングを使用します。
[user@linux_server]$ ssh -R8022:localhost:22 my_other_server.com
説明:my_other_serverに接続し、ポート8022を開いてポート22で転送します。

My_other_server.comからsshでポート8022のlocalhostにアクセスし、トラフィックをlinux_server-> my_other_serverトンネルでlinux_server piggybackingに転送することができます[user@linux_server]$ ssh -p8022 localhost
説明:linux_serverに転送されるポート8022で自分に接続します

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

24
MattPark

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

3
Nathan C

答えるのに長い時間がかかります。

NAT=の背後にあるサーバーにアクセスする必要があり、コードを記述したくない場合は、以下のツールを使用して、ニーズに合ったものを使用できます。

上記のツールはどちらも、クライアントをインストールするためのLinuxマシンへのアクセス権があることを前提としています。これらの利点のいくつかは次のとおりです。

  • どちらもWebインターフェイスを使用してターミナルにアクセスできます
  • 中間のリバースSSHホストは必要ありません。
  • インストールが非常に簡単
  • どちらもオープンソースです

tmate server を自分の中間サーバー(reverse sshの場合)でホストできるので、個人的にはtmateの方が好きです。

1
Ankit Kulkarni

ngrok を使用できます。プロセスは簡単です:

  1. 彼らのサイトに登録する
  2. wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-AMD64.Zip
  3. ngrok-stable-linux-AMD64.Zipを解凍します
  4. ./ngrok authtoken <ngrokアカウントの一意のキー>
  5. ./ngrok tcp 22
  6. リモートPCでは、次のように接続できます:
    1. sshユーザー名@ 0.tcp.ngrok.io -p 11000
1
bkbilly