Akses Laman Web & Servis Tempatan ServBay ke Internet Awam dengan Pinggy
Pinggy ialah alat penembusan NAT yang sangat mudah digunakan, memanfaatkan teknologi proksi terbalik untuk membolehkan servis web yang berjalan secara lokal (seperti dalam persekitaran ServBay) didedahkan secara selamat ke internet awam. Panduan ini membimbing anda langkah demi langkah cara menggunakan Pinggy dalam ServBay supaya anda boleh mengakses laman web tempatan dari internet dengan mudah, sesuai untuk demonstrasi jauh, kolaborasi pasukan atau menerima permintaan webhook.
Konsep Teknikal
Asas operasi Pinggy ialah membina terowong SSH yang selamat. Ia akan meneruskan port servis yang berjalan secara lokal (yang mungkin berada di belakang NAT atau firewall) ke pelayan awam Pinggy melalui sambungan SSH. Apabila pihak luar mengakses URL yang diberikan Pinggy, trafik dihantar secara selamat melalui terowong terus ke servis lokal anda.
Dalam konteks ServBay, ini bermakna anda boleh memetakan sebuah laman web tempatan anda di ServBay (contohnya: https://myproject.servbay.demo
) ke URL awam melalui Pinggy, tanpa perlu konfigurasi port forwarding atau perubahan firewall yang rumit.
Persediaan Persekitaran
Anda tidak perlu memasang sebarang klien tambahan untuk menggunakan Pinggy di komputer tempatan anda. Apa yang anda perlukan:
- ServBay telah dipasang dan berjalan: Pastikan ServBay telah dipasang dengan betul dan servis atau laman web yang ingin anda akses dari internet sedang aktif.
- Laman web berfungsi dalam ServBay: Telah tetapkan dan hidupkan sekurang-kurangnya satu laman web dalam ServBay. Biasanya laman web ServBay dihidangkan melalui pelayan Caddy atau Nginx yang terpasang, mendengar pada port 80 (HTTP) atau 443 (HTTPS).
- Terminal yang menyokong SSH: Terminal dalam macOS atau mana-mana terminal lain yang menyokong SSH.
- Pengetahuan asas SSH: Tahu bagaimana melaksanakan arahan SSH di terminal.
Praktikal Konfigurasi Terowong
Arahan Utama
Menubuhkan terowong dengan Pinggy amat mudah—hanya jalankan satu baris arahan SSH di terminal anda. Contoh di bawah menunjukkan cara mendedahkan laman web servbay.new
(yang boleh diakses secara lokal pada port 443) ke internet awam melalui Pinggy:
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
Nota Penting: Gantikan XXXXXXXXXXX
dengan nama pengguna anda yang diperolehi daripada laman web Pinggy (biasanya berupa rentetan aksara). Tukar servbay.new
kepada domain laman web tempatan ServBay yang anda ingin dedahkan (contohnya: myproject.servbay.demo
).
Penjelasan terperinci untuk parameter utama dalam arahan di atas adalah seperti berikut:
Komponen | Keterangan |
---|---|
-p 443 | Menetapkan port 443 sebagai port sambungan SSH ke pelayan Pinggy. Penggunaan port HTTPS ini memudahkan penembusan firewall. |
-R0:localhost:443 | Asas pemajuan port jauh. 0 bermaksud pelayan Pinggy akan pilih port rawak untuk pendedahan awam. localhost:443 bawa trafik dari port tersebut ke komputer lokal port 443. Biasanya Caddy atau Nginx ServBay mendengar di sini untuk permintaan HTTPS. |
-o StrictHostKeyChecking=no | Lumpuhkan pemeriksaan kunci hos SSH. Berguna untuk kali pertama sambungan; untuk keselamatan dalam jangka panjang, sebaiknya sahkan kunci hos secara manual. |
-o ServerAliveInterval=30 | Kirim mesej keep-alive setiap 30 saat bagi mengelak sambungan SSH terputus akibat tidak aktif. |
-t [email protected] | Nama pengguna Pinggy dan alamat pelayan mereka. Gantikan XXXXXXXXXXX dengan nama pengguna anda. |
x:localServerTls:servbay.new | Parameter khas Pinggy: nyatakan servis lokal menyokong TLS (HTTPS) dengan domain servbay.new (ubah kepada domain anda). Ini membolehkan Pinggy mengendalikan sambungan HTTPS dengan betul. |
"u:host:servbay.new" | Satu lagi parameter Pinggy—menetapkan nilai header HTTP Host kepada servbay.new (gantikan dengan domain anda sendiri). Penting untuk kes pelbagai laman dalam ServBay (virtual host) kerana ia memberitahu pelayan web ServBay laman mana yang patut dijawab. |
Jika arahan berjaya, Pinggy akan memaparkan URL awam untuk mengakses laman atau servis lokal anda, misalnya:
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
1
2
2
Pengesahan Servis
Selepas terowong didirikan, anda boleh sahkan akses awam berfungsi melalui kaedah berikut:
Sahkan dengan
curl
(Disyorkan): Gunakan arahancurl
beserta param-I
(hanya lihat header) untuk menguji URL awam (ganti dengan URL sebenar anda):bashcurl -I https://rnirh-172-188-50-148.a.free.pinggy.link
1Jika berjaya, anda akan melihat header HTTP yang menunjukkan respons dari pelayan web lokal anda (cth: Nginx atau Caddy):
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 # Tarikh mungkin berbeza Expires: Sun, 02 Jan 1990 00:00:00 GMT Pragma: no-cache Server: nginx # atau caddy dsb, bergantung pada konfigurasi ServBay Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/8.4.3 # atau info stack teknologi lain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Munculnya status
HTTP/1.1 200 OK
dan headerServer
yang betul biasanya menandakan anda berjaya berhubung dengan pelayan web ServBay lokal anda.Ujian dengan pelayar web: Buka URL HTTPS Pinggy pada mana-mana peranti—walaupun bukan dalam rangkaian lokal anda (contoh:
https://rnirh-172-188-50-148.a.free.pinggy.link
). Anda seharusnya melihat kandungan yang serupa seperti ketika melayari lokal melalui ServBay.Hasil Dijangka:
- Pengguna internet awam boleh melayari laman/servis tempatan ServBay anda melalui URL yang diberikan Pinggy.
- Jika servis lokal anda telah diaktifkan HTTPS (ServBay biasanya cipta sijil self-signed secara automatik), Pinggy juga menyokong HTTPS awam secara automatik dengan sijil percuma dari CA umum tanpa perlu konfigurasi tambahan.
- Kepantasan respons dan kestabilan tertakluk pada keadaan rangkaian lokal anda, sambungan ke pelayan Pinggy serta beban semasa pada servis Pinggy.
Petua Lanjutan
Dedahkan port atau servis lokal lain: Untuk servis selain web, atau jika aplikasi web anda terikat pada port selain default 80/443 dalam ServBay, ubah sahaja parameter
-R
. Contoh untuk pendedahan port 8000 (seperti aplikasi Python atau Node.js):bashssh -p 443 -R0:localhost:8000 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected]
1Untuk servis bukan web atau servis web yang tidak memproses header
Host
, anda tidak perlu parameterx:localServerTls
danu:host
.Gunakan domain khas sendiri (Pinggy Pro): Pengguna Pinggy Pro berhak tetapkan domain sendiri (custom domain) menggantikan subdomain rawak Pinggy, profesional untuk capaian pihak ketiga. Lihat dokumentasi rasmi Pinggy untuk butiran tetapan.
Terowong berterusan (guna
autossh
): Sambungan SSH mungkin terputus akibat gangguan rangkaian. Untuk kekalkan terowong lebih stabil, gunakanautossh
yang akan automatik cuba sambung semula jika terputus. Pasangautossh
(cth: di macOS,brew install autossh
), kemudian jalankan: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
memberitahuautossh
supaya tidak gunakan port tambahan untuk pemantauan, hanya bergantung pada keep-alive SSH (ServerAliveInterval
).Arahan tanpa token: Pinggy membolehkan penggunaan arahan tanpa menzahirkan nama pengguna atau token anda—dapatkan sahaja one-off command daripada laman mereka. Ini memudahkan perkongsian kepada orang lain tanpa risiko kebocoran token.
Senario Penggunaan Umum
- Demonstrasi jauh: Tunjuk hasil kerja atau web/app anda secara langsung kepada klien atau rakan sekerja tanpa perlu deploy ke staging/production.
- Ujian webhook: Terima dan debug permintaan dari servis pihak ketiga (seperti payment gateway, GitHub) terus dalam persekitaran lokal.
- Ujian rentas peranti: Uji ciri responsive/compatibility laman tempatan anda menggunakan telefon/tablet walaupun pelantar tidak berada dalam LAN yang sama.
- Kolaborasi pasukan: Permudahkan rakan sekerja untuk mengakses dan menguji servis yang dibangunkan di mesin tempatan anda menggunakan ServBay.
Troubleshooting / Penyelesaian Masalah
Simptom | Solusi |
---|---|
SSH gagal atau timeout | Periksa sambungan internet dan pastikan boleh akses a.pinggy.io . Pastikan firewall tempatan tidak menyekat sambungan keluar ke port 443. Sahkan nama pengguna Pinggy anda betul. |
URL Pinggy tidak boleh diakses atau ralat (cth: 502 Bad Gateway) | Pastikan laman atau servis ServBay tempatan berjalan, mendengar di localhost:443 (atau port lain seperti dalam parameter -R ). Pastikan konfigurasi pelayan web ServBay (Caddy/Nginx) betul. |
Akses URL Pinggy dapat 404 (Not Found) atau laman default ServBay | Jika guna pelbagai laman (virtual host) dalam ServBay, sangat penting memastikan parameter x:localServerTls & u:host dalam SSH tepat dengan domain laman web tempatan yang ingin dibuka (seperti myproject.servbay.demo ). |
Kerap terputus | Biasanya akibat rangkaian tidak stabil atau masa tamat SSH. Cuba naikkan nilai ServerAliveInterval atau gunakan autossh untuk auto-reconnect (lihat seksyen petua lanjutan). |
Ralat SSL/HTTPS | Pinggy biasanya menyediakan sijil CA awam untuk pengguna percuma. Jika anda guna sijil self-signed di lokal, browser mungkin beri amaran. Sijil CA awam Pinggy harusnya selesaikan isu ini untuk akses awam. Pastikan servis yang didedahkan sentiasa guna HTTPS (dengar di port 443). |
Rumusan Penyelesaian
Dengan Pinggy, pengguna ServBay boleh membina saluran akses awam kepada laman web dan aplikasi pembangunan tempatan dengan sangat pantas dan ringkas. Kelebihan menonjol kaedah ini termasuk:
- Tanpa pemasangan klien: Tidak perlu install perisian tambahan—setup lebih mudah.
- Hanya satu arahan: Mula-mula terowong dengan satu arahan SSH sahaja.
- Sokongan HTTPS automatik: Pinggy sediakan sijil CA percuma; masalah sijil HTTPS untuk akses awam dapat diselesaikan.
- Sokongan untuk HTTP & TCP tunnels: Memenuhi keperluan pendedahan pelbagai jenis servis.
- Integrasi tinggi dengan ServBay: Dengan seting header
Host
betul, mudah dedahkan laman lokal spesifik di dalam ServBay. - Pilihan arahan tanpa token: Lebih selamat ketika berkongsi cara capaian.
Dibanding alat penembusan NAT tradisional yang selalunya kompleks dan memerlukan pemasangan, Pinggy menawarkan solusi paling ringan dan cepat—sangat sesuai untuk pembangunan, ujian, demonstrasi, dan perkongsian sementara bagi pengguna ServBay. Untuk keperluan penggunaan jangka panjang atau domain khas, pertimbangkan pelan berbayar Pinggy. Gabungan persekitaran pembangunan lokal ServBay dan capaian awam segera melalui Pinggy akan meningkatkan produktiviti dan kerjasama anda ke tahap lebih tinggi.