コンテクスト

コンテクスト

コンテクスト

作業ワークフローを改善しようとしています。

現在、デスクトップ(基本的には GPU 搭載)とノートパソコンを持っています。ノートパソコンをリモートで操作しているときでもデスクトップを活用したいです(どちらも Linux を実行しています)。

私の大学では、外部接続に対してポート 80 のみが開かれています。

現在のソリューション

wanaddr:80 -> localaddr:22私のデスクトップには SSH サーバーがあり、大学のネットワークの制限を回避するためにNAT でポート転送を行っています。

さらに、コードをデプロイし、IntelliJ IDE を使用してリモート インタープリターで実行していますが、うまく動作します。

問題

tensorboard、、などのさらに多くのサービスをリモートで使用する必要がありますMLFlow。WANjupyter側でポート 80 を使用する必要があるため、他のポートをポート転送することができないという問題が発生します。

試みられた解決策

私のデスクトップのドメイン名が であると仮定しますdesktop.dev

特定のサブアドレスを正しいサービスにリダイレクトしようとしています。例:

ssh.desktop.dev:80 -> <?> -> localhost:22
tensorboard.desktop.dev:80 -> <?> -> localhost:8888
jupyter.desktop.dev:80 -> <?> -> localhost:8000

Caddy を使用しようとしましたが、後で HTTP リクエストのみをサポートしていることがわかりました。Traefik を調べていますが、簡単に実行する方法がよくわかりません。

正しい方向を指し示してもらえますか?

答え1

SSH ポート転送 (-L オプション) を使用します。自宅のマシンでは、ssh のみを公開します。どのポートに接続するかは関係ありません。80 が許容されます。自宅のマシンでは、ループバック デバイスでサービスを実行するか、少なくともループバックからサービスが利用できるようにします。

次に、ローミング ステーションから次のように接続します: ssh -p home-port home.address -L 8888:localhost:8888 -L 8000:localhost:8000 など。

(Windows の場合は putty でこれを行うことができます)

次に、ローミング ステーションで localhost に接続します。SSH クライアントは、トラフィックをホーム マシンの該当ポートにトンネルします。ローミング ステーションで localhost:8888 に TCP 接続すると、SSH クライアントはそれを受け入れ、ホーム マシンで localhost:8888 に接続してパケットをプロキシし、ローミング ステーションにホーム サービスが表示されるようになります。

-R オプションを使用して逆転送を行うこともできます。転送先が localhost ではなく、自宅からアクセス可能な他の場所である場合、ローミング ステーションから直接アクセスできない場所にアクセスできます: -L 7777:some.irc.server:6666、localhost:7777 への接続は some.irc.server:6666 に接続した場合と同じになります。

何をしても、有線経由では自宅とローミング ステーション間の SSH トラフィックのみが表示されます。

関連情報