Mengakses Situs dan Layanan Lokal di ServBay ke Publik Internet dengan Pinggy
Pinggy adalah alat penetrasi jaringan lokal yang sangat mudah digunakan. Dengan teknologi reverse proxy, Pinggy memungkinkan Anda mengekspos layanan Web yang berjalan di lokal (seperti di lingkungan ServBay) ke internet dengan cara yang aman. Panduan ini akan menjelaskan secara detail cara menggunakan Pinggy di lingkungan ServBay agar para pengembang dapat dengan cepat membuka akses internet ke layanan Web lokal mereka—cocok untuk demo jarak jauh, kolaborasi tim, atau menerima request Webhook dari luar.
Prinsip Teknologi
Prinsip utama Pinggy adalah membangun tunnel SSH yang aman. Layanan yang berjalan di lokal (bahkan di balik NAT atau firewall) dapat diteruskan ke server Pinggy di internet melalui koneksi SSH. Ketika pengguna publik mengunjungi URL yang diberikan oleh Pinggy, permintaan tersebut akan dengan aman diteruskan melalui tunnel ke layanan lokal Anda.
Dalam kasus penggunaan ServBay, ini berarti situs website lokal yang berjalan di ServBay (misal: https://myproject.servbay.demo
) dapat dipetakan ke URL publik melalui Pinggy, tanpa konfigurasi port mapping atau firewall yang rumit.
Persiapan Lingkungan
Menggunakan Pinggy tidak memerlukan instalasi software client tambahan di lokal. Anda hanya membutuhkan:
- ServBay sudah terinstal dan berjalan: Pastikan lingkungan ServBay Anda sudah benar-benar siap dan situs/layanan lokal yang ingin diekspos sedang berjalan normal.
- Situs ServBay yang aktif: Anda harus mengatur dan menjalankan satu atau lebih website di dalam ServBay. Biasanya, website ini akan mendengarkan permintaan di port 80 (HTTP) atau 443 (HTTPS) melalui Caddy atau Nginx bawaan ServBay.
- Terminal yang mendukung SSH: Terminal bawaan macOS atau emulator terminal lain yang Anda gunakan harus mendukung SSH.
- Pengetahuan dasar SSH: Pahami cara menjalankan perintah SSH di terminal.
Praktik Konfigurasi Tunnel
Perintah Inti
Membangun tunnel dengan Pinggy sangatlah sederhana; cukup jalankan satu perintah SSH di terminal. Contoh perintah di bawah ini menunjukkan cara mengekspos situs servbay.new
yang berjalan di port 443 lokal pada ServBay ke internet:
bash
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
1
Catatan Penting: Gantilah XXXXXXXXXXX
dalam perintah di atas dengan username yang Anda dapatkan di situs Pinggy (biasanya berupa kombinasi karakter unik). servbay.new
juga harus diganti dengan domain website lokal yang ingin Anda ekspos ke internet melalui Pinggy di ServBay (misal: myproject.servbay.demo
).
Berikut penjelasan detail mengenai parameter utama pada perintah ini:
Komponen Parameter | Penjelasan Fungsionalitas |
---|---|
-p 443 | Mengarahkan SSH agar terkoneksi ke server Pinggy melalui port 443. Penggunaan port default HTTPS dapat meningkatkan keberhasilan menembus firewall. |
-R0:localhost:443 | Kunci forward port remote. 0 berarti biarkan server Pinggy memilih port publik random. localhost:443 berarti semua trafik ke port publik Pinggy diteruskan ke port 443 di komputer lokal Anda. (Web server Caddy/Nginx ServBay biasanya listening di sini untuk HTTPS.) |
-o StrictHostKeyChecking=no | Menonaktifkan pengecekan kunci host SSH. Praktis untuk koneksi pertama atau sekadar uji coba, tetapi di lingkungan produksi lebih baik mengaktifkan dan memverifikasi kunci host demi keamanan. |
-o ServerAliveInterval=30 | Mengirim pesan keep-alive setiap 30 detik agar koneksi SSH tidak terputus akibat inaktivitas. |
-t [email protected] | Username Pinggy dan alamat server. XXXXXXXXXXX adalah username Pinggy Anda. |
x:localServerTls:servbay.new | Parameter khusus Pinggy, memberitahukan Pinggy bahwa layanan lokal Anda mendukung TLS (HTTPS) dan domain aslinya servbay.new (ganti sesuai domain website ServBay Anda). Membantu Pinggy memproses koneksi HTTPS dengan benar. |
"u:host:servbay.new" | Parameter kustom Pinggy lain untuk mengubah header HTTP Host pada request yang diteruskan. Memastikan web server ServBay merespon domain website lokal tertentu. Kritikal untuk multi-website (virtual host) pada ServBay. |
Setelah perintah berhasil dijalankan, Pinggy akan menampilkan di terminal URL publik yang dapat digunakan untuk mengakses layanan lokal Anda. Biasanya akan tersedia URL versi HTTP dan HTTPS, misal:
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
1
2
2
Verifikasi Layanan
Setelah tunnel berhasil dibuat, Anda bisa memverifikasi akses publik dengan beberapa cara berikut:
Verifikasi menggunakan
curl
(disarankan): Jalankan perintahcurl
dengan parameter-I
(hanya mengambil header) untuk mengetes URL publik yang didapat dari Pinggy. Ganti URL sample dengan URL aktual dari output Pinggy.bashcurl -I https://rnirh-172-188-50-148.a.free.pinggy.link
1Jika semuanya berjalan dengan baik, Anda akan melihat output header HTTP seperti di bawah ini, yang berisi respon server web lokal (Caddy/Nginx):
HTTP/1.1 200 OK Connection: close Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Origin: * Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private Connection: keep-alive Content-Type: text/html; charset=UTF-8 Date: Tue, 18 Feb 2025 11:51:48 GMT # (tanggal bisa berbeda) Expires: Sun, 02 Jan 1990 00:00:00 GMT Pragma: no-cache Server: nginx # atau caddy, tergantung konfigurasi ServBay Anda Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/8.4.3 # atau teknologi stack lainnya
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Melihat status code
HTTP/1.1 200 OK
dan headerServer
yang benar biasanya menandakan koneksi Anda berhasil dan respon berasal dari web server ServBay lokal.Akses via browser: Buka URL HTTPS yang diberikan oleh Pinggy (contoh
https://rnirh-172-188-50-148.a.free.pinggy.link
) di browser perangkat mana pun (tak terbatas jaringan lokal). Anda seharusnya melihat tampilan website yang sama seperti saat mengaksesnya dari ServBay secara lokal.Hasil yang diharapkan:
- Pengguna internet bisa mengakses website atau layanan ServBay lokal Anda melalui URL dari Pinggy.
- Jika servis lokal Anda menggunakan HTTPS (ServBay secara default menghasilkan sertifikat self-signed untuk situs lokal), Pinggy juga mendukung akses HTTPS secara otomatis dan memberikan sertifikat dari CA publik gratis tanpa konfigurasi tambahan.
- Waktu respon dan stabilitas tergantung pada jaringan lokal Anda, koneksi ke server Pinggy, serta beban layanan Pinggy.
Tips Lanjutan
Ekspos port/layanan lokal lain: Jika layanan Anda bukan web, atau web server Anda tidak berjalan di port default 80/443, modifikasi parameter
-R
. Contoh, untuk mengekspos port 8000 lokal (misal aplikasi Python/Node.js):bashssh -p 443 -R0:localhost:8000 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected]
1Untuk jenis layanan ini (non-web atau web yang tidak butuh header
Host
), tidak perlu menyertakan parameterx:localServerTls
danu:host
.Custom domain (Pinggy Pro): Pengguna Pinggy Pro dapat menggunakan domain kustom sendiri, bukan subdomain acak dari Pinggy, untuk akses yang lebih profesional. Silakan cek dokumentasi resmi Pinggy untuk pengaturan lebih detail.
Tunnel tetap (menggunakan
autossh
): Koneksi SSH bisa terputus akibat instabilitas jaringan. Untuk tunnel yang awet, gunakan toolautossh
yang akan memonitor dan otomatis reconnect SSH jika terputus. Installautossh
(misal melalui Homebrew di macOS:brew install autossh
), lalu gunakan seperti ini:bashautossh -M 0 -t "ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new \"u:host:servbay.new\""
1Parameter
-M 0
menyuruhautossh
untuk tidak menggunakan port monitoring tambahan dan hanya mengandalkan keep-alive bawaan SSH.Perintah tanpa token: Pinggy juga mendukung mode sekali pakai tanpa perlu menyertakan username/token Anda di perintah. Cukup kunjungi situs Pinggy untuk mendapatkan perintah instan ini, cocok untuk dibagikan tanpa khawatir terhadap kebocoran token.
Kasus Penggunaan Umum
- Demo jarak jauh: Menunjukkan website/aplikasi yang sedang Anda kembangkan di lingkungan lokal ServBay ke klien atau rekan setim tanpa harus deploy ke environment staging/produksi.
- Debug webhook: Menerima request webhook dari layanan pihak ketiga (misal payment gateway, GitHub, dsb) dan melakukan debugging langsung di lokal.
- Uji lintas perangkat: Menguji desain responsive dan kompatibilitas di berbagai perangkat (mobile/tablet) bahkan jika tidak berada di jaringan yang sama.
- Kolaborasi tim: Memudahkan tim untuk saling mengakses dan mengetes layanan lokal satu sama lain di ServBay.
Troubleshooting
Masalah | Solusi |
---|---|
Koneksi SSH timeout/gagal | Periksa koneksi internet Anda, pastikan dapat mengakses a.pinggy.io . Cek pengaturan firewall lokal apakah menghambat koneksi outbound ke port 443. Pastikan username Pinggy benar. |
URL Pinggy tidak bisa diakses/502 Bad Gateway | Cek apakah website/layanan lokal di ServBay sudah running dan sedang listening di localhost:443 (atau port yang Anda tentukan di parameter -R ). Pastikan konfigurasi web server (Caddy/Nginx) ServBay sudah tepat. |
Akses Pinggy URL mendapat 404/halaman default ServBay | Jika Anda menggunakan multi-website (virtual host) di ServBay, pastikan parameter x:localServerTls dan u:host pada perintah SSH sudah benar-benar diatur sesuai domain tujuan (misal myproject.servbay.demo ). Ini penting agar web server ServBay tahu harus menjawab host virtual mana. |
Koneksi terputus sesekali | Bisa disebabkan oleh instabilitas jaringan atau timeout SSH. Coba tingkatkan nilai ServerAliveInterval atau gunakan autossh untuk otomatis reconnect (lihat pada bagian "Tips Lanjutan"). |
Masalah sertifikat HTTPS pada akses publik | Pinggy biasanya memberikan sertifikat CA publik gratis untuk pengguna gratis. Jika Anda menggunakan sertifikat self-signed lokal di ServBay, browser bisa menampilkan warning. Sertifikat CA publik Pinggy seharusnya mengatasi masalah pada akses publik. Pastikan pula bahwa layanan ServBay Anda memang berjalan di HTTPS (port 443). |
Ringkasan Solusi
Dengan Pinggy, pengguna ServBay sangat mudah dan cepat membangun saluran akses publik yang aman untuk mengekspos website dan aplikasi pengembangan lokal mereka ke dunia luar. Kelebihan utama solusi ini:
- Tanpa perlu install client: Proses konfigurasi dan penggunaan jauh lebih simpel.
- Operasi satu klik: Tunnel langsung aktif hanya dengan satu perintah SSH sederhana.
- HTTPS otomatis: Pinggy memberikan sertifikat CA publik gratis, menghilangkan masalah sertifikat pada akses internet.
- Dukungan tunnel HTTP dan TCP: Menyesuaikan kebutuhan publikasikan layanan apapun.
- Sangat kompatibel dengan ServBay: Lewat pengaturan header
Host
, Anda bisa ekspos situs ServBay lokal yang spesifik dengan mudah. - Pilihan perintah tanpa token: Aman saat membagikan perintah pada orang lain.
Dibandingkan tool penetrasi jaringan lokal lain yang perlu klien/instalasi rumit, Pinggy menawarkan alternatif yang jauh lebih ringan dan praktis—khususnya bagi developer ServBay untuk uji coba, demo, dan sharing layanan lokal secara cepat atau sementara. Untuk kebutuhan komersial berbasis produksi (runtime lama/domain custom), Anda bisa mempertimbangkan paket berbayar Pinggy. Kombinasi lingkungan pengembangan kuat dari ServBay dan kemudahan akses publik dari Pinggy pasti akan meningkatkan efisiensi pengembangan dan kolaborasi Anda.