インターネットを介した2台のUbuntu20.04デバイス間のリモートデスクトップアクセス
私はホームオフィスにUbuntu20.04(つまりリモート)を実行しているワークステーションを持っています。これはイーサネットケーブルでインターネットに接続されています。旅行中、私は通常、より軽いデバイスを持ち歩きます。ラップトップもUbuntu 20.04(つまりクライアント)を実行しています。
私の目標は、インターネットを介してラップトップからワークステーションにリモートデスクトップアクセス(つまり、ファイル、端末などにアクセス)することです。
私の最初の試みは、ここで説明するようにRemminaを使用してVNCをセットアップすることでした。これは機能し、両方のデバイスが同じネットワークに接続されている場合、ラップトップからワークステーションにアクセスできるようになりました。私は、デバイスが同じネットワークに接続されていない時にVNCを使用する方法を検索し、私はでそれを行うことができることが分かった「リモートのUbuntuシステムとネットワーク上の仮想プライベートネットワーク(VPN)サーバーを設定します」。
そのため、VyprVPNから30日間の返金保証付きのVPNサービスを購入しました。ここで説明するように、リモートとクライアントの両方でVPN接続を構成しました。これで、両方のデバイスがVPNに接続し、問題なくWebを閲覧できるようになりましたが、VNCを使用できなくなりました。
VPNプロバイダーへの説明を求められたとき、カスタマーサービス(ボット)は「リモートアクセスは現在VyprVPNでサポートされていません」と通知し、ルーターにアプリをインストールするよう提案しました。私の知る限り、私のホームルーターはVPNプロバイダーの要件を満たしていません。VyprVPNの要件を満たすために新しいルーターを購入することは私には問題ありませんが、これで問題が解決するかどうか、また私の場合に最適な解決策であるかどうかはわかりません。あるデバイスから別のデバイスへのリモートデスクトップアクセスを確立することを単に目指していることを考えると、少しやり過ぎのようです。
インターネットを介して1台のラップトップ(Ubuntu 20.04)から1台のワークステーション(Ubuntu 20.04)にリモートデスクトップアクセスするために、どのソリューションをお勧めしますか?オープンソースソリューションが推奨されます。
よろしくお願いします!
回答
VPNの2つの使用法
1.エンタープライズVPN
VPNは、企業(企業)がリモートユーザーにオフィスネットワークとコンピューターリソースへのアクセスを許可するために使用されます。たとえば、企業のリモート従業員は、VPNを使用してオフィスの内部ネットワークドライブにアクセスできます。このコンテキストでは、リモートユーザーが企業VPNサーバーにログインすると、リモートコンピューターはオフィスのローカルネットワークの一部になります。次に、リモートの従業員はVNCを使用してオフィスのデスクトップコンピューターにアクセスできます。
これはあなたが想像したようなVPNの使用法だと思います。ただし、旅行中はリモートコンピュータが自宅にあり、個人用VPNサーバーをセットアップするIT部門がありません。自分で設定することもできますが、ホームネットワークのコンテキストで1台のリモートコンピュータを安全に接続するには面倒だと思います。
2.コンシューマーVPN
VyperVPNなどのコンシューマーVPNサービスプロバイダーは、同じテクノロジーを使用してホームユーザーにわずかに異なる種類のサービスを提供します。これらのサービスプロバイダーは、さまざまな場所や国にVPNサーバーをセットアップし、ホームユーザーがこれらのサーバーにログインできるようにします。
これにより、ホームユーザーは自分のインターネット活動を自分のインターネットサービスプロバイダーや政府などから隠すことができます。また、ホームユーザーは別の国にいるふりをしてビデオストリーミングサービスを「だます」ことができます。
コンシューマーグレードのVPNサービスプロバイダーは、ホームネットワークにVPNサーバーをセットアップしません。実際、自宅のデスクトップでVyperVPNなどのVPNクライアントを使用している場合、旅行中にそのデスクトップにリモート接続できない場合があります。これは、VPNサービスによって、デスクトップが別の場所にあるように「ふり」するためです。したがって、VNCを使用してリモート接続する前に、旅行中に自宅のデスクトップでVPNサービスをオフにする必要があります。
なぜVNCを使用しないのですか?
安全ではありません。VNCはかなり古いプロトコルであり、そのセキュリティは最新の標準に達していません。ホームデスクトップにVNCサーバーを設定して、ホームネットワークの外部からの接続を受け入れることができます。ただし、インターネットの誰もが簡単にホームデスクトップに侵入する可能性があるため、これを行うことはお勧めしません。
SSH経由のVNC
ssh
まず、自宅のデスクトップコンピューターにサーバーをセットアップする必要があります。これを行う方法については、ホームLANでSSHを使用して2台のコンピューターを接続するを参照してください。
あなたがしたらssh
あなたができるホームネットワーク内での作業とssh
の両方がホームネットワークに接続されている自宅のデスクトップにノートパソコンから、あなたはSSHを介してVNCを使用するように設定Remminaにする必要があります。
ラップトップで作成済みのRemminaデスクトップ設定ウィンドウを開き、ホームネットワーク内からデスクトップにVNCで接続します。

[サーバー]フィールドには、上記のLANIPアドレスが入力されていることに注意してください。あなたのものは異なります。[ SSHトンネル]タブに移動します。

上の図のようにすべてのチェックボックスをオンにします。ポート22はのデフォルトポートですssh
。簡単にするために、このポートを使用します。デフォルトを他のポートに変更し、後で別の方法で設定する方法について読むことができます。
セットアップ中に公開鍵をセットアップしたことに注意してくださいssh
。その場合は、認証方法として公開鍵を選択してください。
それ以外の場合は、パスワードを選択します。
試してみて、両方のコンピューターがホームネットワークに接続されているときに、SSHトンネルを使用してラップトップからデスクトップにVNCできることを確認してください。
旅行中
家の外にいるときにSSH経由でVNCを使用する場合は、2つのことを理解する必要があります。
- ポートフォワーディング
- ダイナミックドメインネームシステム(DDNS)
1.ポートフォワーディング
これはルーター設定の一部です。要求がポート22を経由するときに、リモート接続要求がどのデバイスに送信されるかをルーターに指示する必要があります。
上の写真では、私のホームデスクトップのIPアドレスは192.168.0.101です。これは私のホームネットワーク内のローカルIPアドレスです。私のホームネットワークの外では意味がありません。ルーターはこのIPアドレスを自宅のデスクトップに割り当てます。
ポート22を介して送信されたすべてのパッケージをホームデスクトップのローカルIPアドレスのポート22に転送するようにルーターを設定する必要があります。
正確なプロセスはルーターごとに異なり、Ubuntuとは関係がないため、これを正確に行う方法はこのサイトの範囲を超えています。
2.ダイナミックドメインネームシステム(DDNS)
ほとんどの家庭用インターネットサービスは、インターネットサービスプロバイダー(ISP)から静的IPアドレスを取得しません。ISPによって静的IPアドレスが割り当てられている場合は、このセクションを無視してください。
Remminaのリモートデスクトップ設定を新しいものにコピーし、サーバーIPアドレスをISPが提供する静的IPアドレスに変更できます。
ISPが自宅にIPアドレスを動的に割り当てる場合、自宅(外部)のIPアドレスは随時変更される可能性があります。ホームネットワークに接続しているときに私のIPアドレスをグーグルで検索すると、外部IPアドレスを見つけることができます。
問題は、旅行中にISPが外部IPアドレスを変更した場合、それが何であるかを知る方法がないことです。したがって、ホームデスクトップに接続することはできません。
DDNSサービスプロバイダーを使用する必要があります。duckdns.orgのように、無料のものがいくつかあります。そのうちの1つにアカウントを作成する必要があります。アカウントを取得したら、選択したDDNSサービスプロバイダーと定期的に通信し、ホームIPアドレスへの変更を更新するようにホームデスクトップをセットアップする必要があります。DDNSサービスプロバイダーは、ivapshome.duckdns.orgなどの自宅のインターネットアドレスを作成しivanpshome
ます。ここで、ここから選択します。
ホームデスクトップにDDNSクライアントを設定する正確な方法は、DDNSサービスプロバイダーによって異なります。DDNSの設定に問題がある場合は、このサイトを検索し、(必要に応じて)別の質問をしてください。
注:一部のルーターは、特定のDDNSサービスを更新できます。ルーターと使用する特定のDDNSサービスを確認する必要があります。正確な方法はさまざまであり、このサイトの範囲を超えています。
Remminaの[サーバー]フィールドに、DDNSが提供するインターネットアドレス(など)を入力しivapshome.duckdns.org
ます。
これで、旅行中にラップトップから自宅のデスクトップコンピューターに接続できるようになります。
お役に立てれば
あるネットワークのデバイスから別のネットワークのデバイスにリモート接続するためにVPNを使用する必要はありません。あなたがする必要があるのは、ターゲットマシンが配置されているルーターにポートフォワーディングを設定することです(正確にそれを行う方法はルーターによって異なります。ルーターのマニュアルを確認する必要があります)。
ターゲットマシンのポート5900でVNCサーバーを使用している場合は、そのマシンの内部IPアドレスのポート5900からルーターの外部インターフェイスのポート5900(またはその他のポート)へのポート転送を設定するだけです。
次に、他のシステムから、Remminaを使用して、ターゲットルーターのパブリックIPアドレスであるポート5900(または設定した別のポート番号)に接続します。
これは、ISPが着信接続をファイアウォールで保護していない場合に機能するはずです。
以下のコメントに関して、VNCプロトコルは安全ではありません。そうです、そうではありません。ここでは、最も簡単な解決策についてのみ説明しました。
すでに述べたように、sshを介してVNCトラフィックをトンネリングできます。つまり、ターゲットマシンにsshサーバーをインストールし、ポート5900ではなくポート22(sshポート)を転送します。
もう一方のマシンでは、sshを介してパブリックIPアドレスと転送ポートに接続し、sshにターゲットマシンのポート5900を、たとえばローカルマシン(接続元のマシン)のポート5901にトンネリングするように指示します。これは、次のコマンドで実行できます。
ssh -L 5901:localhost:5900 -l <username> <ip_address>
ここで、<username>
はターゲットマシンのユーザー名であり(ローカルマシンと同じ場合は、その-l <username>
部分をスキップできます)、<ip_address>
はターゲットルーターのパブリックIPアドレスです。
(ターゲットマシンのポート22をルーターの22以外のポートに転送した場合-p <port>
は、上記のコマンドにその部分を追加で含める必要があります)。
sshセッションを確立したら、Remminaを使用してローカルマシンのポート5901に接続します。ローカルマシンのポート5901は、sshを介してターゲットマシンのポート5900に安全に接続されます。
Remminaには、最初にsshセッションを手動で確立せずに、内部でsshトンネリングを使用するオプションがありますが、ここで示したように、特定のアプリケーションがどのように構成され、どのパラメーターが設定されているかを解読するよりも、明示的にトンネリングを行う方が常に簡単です。入力する必要があります:)