Saya memiliki server, bernama gamma
, terus-menerus beroperasi di tempat kerja. Kadang-kadang saya menghubungkannya dari di rumah, dalam hal ini saya menggunakan alamat IP publik 55.22.33.99
. Terkadang, saya terhubung ketika saya sedang bekerja, dan bukannya memantulkan paket saya ke tempat yang tidak perlu, saya terhubung melalui alamat IP lokal 192.168.1.100
,.
Saat ini, saya membaginya menjadi dua entri yang berbeda ~/.ssh/conf
Host gamma-local
HostName 192.168.1.100
Port 22
User andreas
Host gamma-remote
HostName 55.22.33.99
Port 12345
User andreas
Jadi, jika saya sedang bekerja, yang harus saya ketik adalah ssh gamma-local
dan saya masuk; jika saya di rumah (atau di mana pun di dunia), saya lari ssh gamma-remote
.
Saat menghubungkan ke server, saya lebih suka tidak harus mengetik nama yang berbeda tergantung di mana saya berada, saya lebih suka bagian itu dilakukan secara otomatis; misalnya, dalam beberapa kasus saya memiliki skrip otomatis yang menghubungkan yang tidak tahu keberadaan saya.
Ada pertanyaan yang memecahkan masalah ini dengan menggunakan skrip Bash untuk "mencoba" menyambung ke lokal terlebih dahulu, dan jika tidak terhubung, coba sambungkan ke alamat IP jarak jauh. Ini bagus, tetapi (1) tampaknya tidak efisien (terutama karena kadang-kadang Anda harus "menunggu" koneksi ke time out karena mereka tidak selalu mengirim kesalahan segera kembali) dan (2) membutuhkan Bash dan menyeret skrip.
Apakah ada cara alternatif untuk mencapai hal ini yang tidak bergantung pada penggunaan skrip Bash, atau "pengujian" untuk melihat apakah koneksi berfungsi terlebih dahulu?
/etc/hosts
atau file konfigurasi SSH untuk mencapai ini? Atau mungkin beberapa cara "mendeteksi" LAN mana yang saat ini terhubung?