私は自宅のデスクトップ (Linux) にノート PC (macOS) をバックアップしています。当然、ノート PC は自宅にあり、デスクトップと同じローカル ネットワーク上にあるときもあれば、そうでないときもあります。かなり長い間、ノート PC がデスクトップをパブリック URL で参照するようにしています。これは便利で、ノート PC がどこにあっても機能するためです。欠点は、バックアップ システムが、LAN 経由でアクセスする方が速い場合でも、インターネット経由でデスクトップにアクセスすることです。(自宅にいるときは、ルーターか ISP 側の何かが、私が自分の IP にアクセスしていることをすぐに認識してショートカットするだろうと思っていましたが、traceroute で 12 以上のホップが表示されるので、そうではないようです。)
可能な場合はラップトップが LAN 経由でデスクトップに自動的にアクセスし、そうでない場合はインターネット経由でアクセスするにはどうすればよいでしょうか。
私が思いつく最良の方法は、自宅にいるかどうかをチェックし、ホスト ファイルを変更するシェル スクリプトです。これは少々扱いにくく、複数のデバイス、特にモバイル デバイスでこれを行う場合は面倒になります。この問題に遭遇したのは私だけではないはずなので、もっと良い方法があるかどうか知りたいです。理想的には、実行可能プログラムまたは私が知らない小さなスクリプトを使用して URL 解決の動作をカスタマイズする方法が存在します。
これは過剰な調整のように思えるかもしれませんが、自宅のネットワークであってもバックアップにかなり時間がかかることがあり、非常に不便になることがあります。
私のルーターはArcher C7です。
私は住宅用インターネットサービスを利用しているので、IP は時々変わるかもしれませんが、非常にまれなようです。
2 台のコンピューターが同じローカル ネットワーク上にあるかどうかを検出できます。
答え1
1 つの解決策は、LAN 上にローカル DNS サーバーを設置することです。デスクトップの URL/ドメイン名を LAN 上のローカル IP に解決するローカル エントリを追加できます。この方法は次のとおりです。
- LANに接続しているとき:デスクトップのローカルIPを取得します
- WANに接続している場合:デスクトップのパブリックIPを取得します
残念ながら、これにはかなりの作業が必要になるでしょう。ほとんどのルーターにはローカルDNSが含まれていませんお使いのルーター (archer C7) にはそのような機能がないようです。