Kalian punya file project yang ada di komputer rumah? namun tidak punya IP publik sendiri. Solusinya bisa kalian tunneling. Saya lakukan hal ini dengan biaya yang sangat murah. Cukup langganan VPS yang murah saja, karena kita butuh VPS tersebut sebagai relay. Lebih jelasnya kalian bisa baca Remote PC dengan SSH Reverse Port Forward dan Tunneling Melalui via VPS
Topologi jaringan sebagai berikut
-
PC rumah (user_server) → sebagai host/server
-
VPS (user_vps) → sebagai relay / tunneling dengan IP publik nya 111.111.111.111
-
PC kantor (user_kantor) → sebagai client
Kita atur dulu reverse SSH user_server dengan port defaultnya 22 yang akan membuka port di relay 8082
autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -R 8082:localhost:22 user_vps@111.111.111.111
Remote PC Rumah (server) dari luar
Misalkan kita akan menggunakan PC kantor untuk remote PC Rumah, maka cukup lakukan jump ssh. Buka terminal di PC kantor, lalu ketikan berikut
ssh -J user_vps@111.111.111.111 -p 8082 user_server@localhost
maka dengan cara diatas, kita sudah masuk ke PC rumah melalui tunneling VPS sebagai relay. Nanti pas masuk akan dimintai password 2 kali yaitu user_vps dilanjut ke user_server
SFTP
Sedangkan untuk download dan upload pun cara nya juga mudah, kalian bisa menggunakan sftp berbasis terminal. Awas jangan sampai salah ketik menggunakan -P bukan -p ya!
sftp -J user_server@111.121.111.111 -P 8082 user_server@localhost
dengan cara itu, kalian sudah bisa download file dan subdirektory secara mudah. Secara umum ketika masuk pertama kali melalui sftp, maka current directory nya di /home/user_server/. Misalkan dengan perintah berikut untuk me download folder yang berada di /home/user_server/dataset-recognition
sftp> get -r "/home/user_server/dataset-recognition"
maka akan men download folder dan subfolder dari dataset-recognition dan akan langsung terdownload dilokasi ketika kalian memasukan perintah diatas pertama kali. Misalkan ketika membuka terminal di PC kantor C:\ maka akan di download pada lokasi tersebut.
Kalau untuk resume download
sftp> reget -r dataset-recognition
Saya biasa menggunakan cara diatas untuk share project yang sangat besar ke client secara mudah
alternatif selain sftp
ada alternatif selain sftp yaitu rsync
rsync -avz --progress -e "ssh -J user_server@xxx.xxx.xxx.xxx -p 8082" "user_rumah@localhost:/home/user1/projects/test/" .
tapi harus hati-hati ketika folder asal mengandung spasi, maka akan error. jangan lupa kasih tanda . sebagai current directory tujuan